Extract prettier config to dedicated package for proper extensions

This commit is contained in:
Edvin CANDON 2025-09-04 10:07:45 +02:00 committed by MargeBot
parent 35d0fcb11b
commit ff4acfa61f
8 changed files with 84 additions and 48 deletions

View file

@ -37,6 +37,7 @@
},
"dependencies": {
"@proton/eslint-config-proton": "workspace:^",
"@proton/prettier-config-proton": "workspace:^",
"@proton/stylelint-config-proton": "workspace:^",
"is-ci": "^4.1.0",
"stylelint-config-standard-scss": "^10.0.0",

4
packages/prettier-config/config.d.ts vendored Normal file
View file

@ -0,0 +1,4 @@
import type { Config } from 'prettier';
declare const config: Config;
export = config;

View file

@ -0,0 +1,48 @@
export default {
printWidth: 120,
arrowParens: 'always',
singleQuote: true,
// Default in prettier 3 is 'all', but since that'd require a large migration keeping it es5 for now
trailingComma: 'es5',
tabWidth: 4,
proseWrap: 'never',
overrides: [
{
files: '*.scss',
options: {
tabWidth: 2,
useTabs: true,
singleQuote: true,
},
},
{
files: '*.ts',
options: {
importOrderParserPlugins: ['typescript'],
},
},
{
files: '*.svg',
options: {
parser: 'html',
},
},
],
importOrder: [
'^react(.*)$',
'^react-dom(.*)$',
'^react-router-dom(.*)$',
'<THIRD_PARTY_MODULES>',
'^codemirror(?!.*\\.(?:css|scss)$).*$',
'^@proton/(?!.*\\.(?:css|scss)$).*$',
'^proton-mail(?!.*\\.(?:css|scss)$).*$',
'^[./].*(?<!\\.(css|scss))$',
'^@proton/.*\\.(css|scss)$',
'^proton-mail/.*\\.(css|scss)$',
'^codemirror/.*\\.(css|scss)$',
'^[./].*\\.(css|scss)$',
],
importOrderSeparation: true,
importOrderSortSpecifiers: true,
plugins: ['@trivago/prettier-plugin-sort-imports'],
};

View file

@ -0,0 +1,5 @@
import { defineConfig, globalIgnores } from 'eslint/config';
import defaultConfig from '@proton/eslint-config-proton/all';
export default defineConfig([defaultConfig, globalIgnores(['dist'])]);

View file

@ -0,0 +1,9 @@
{
"name": "@proton/prettier-config-proton",
"main": "config.mjs",
"types": "config.d.ts",
"devDependencies": {
"eslint": "^9.34.0",
"prettier": "^3.6.2"
}
}

View file

@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.base.json"
}

View file

@ -1,48 +1,3 @@
export default {
printWidth: 120,
arrowParens: 'always',
singleQuote: true,
// Default in prettier 3 is 'all', but since that'd require a large migration keeping it es5 for now
trailingComma: 'es5',
tabWidth: 4,
proseWrap: 'never',
overrides: [
{
files: '*.scss',
options: {
tabWidth: 2,
useTabs: true,
singleQuote: true,
},
},
{
files: '*.ts',
options: {
importOrderParserPlugins: ['typescript'],
},
},
{
files: '*.svg',
options: {
parser: 'html',
},
},
],
importOrder: [
'^react(.*)$',
'^react-dom(.*)$',
'^react-router-dom(.*)$',
'<THIRD_PARTY_MODULES>',
'^codemirror(?!.*\\.(?:css|scss)$).*$',
'^@proton/(?!.*\\.(?:css|scss)$).*$',
'^proton-mail(?!.*\\.(?:css|scss)$).*$',
'^[./].*(?<!\\.(css|scss))$',
'^@proton/.*\\.(css|scss)$',
'^proton-mail/.*\\.(css|scss)$',
'^codemirror/.*\\.(css|scss)$',
'^[./].*\\.(css|scss)$',
],
importOrderSeparation: true,
importOrderSortSpecifiers: true,
plugins: ['@trivago/prettier-plugin-sort-imports'],
};
import config from '@proton/prettier-config-proton';
export default config;

View file

@ -9084,6 +9084,15 @@ __metadata:
languageName: unknown
linkType: soft
"@proton/prettier-config-proton@workspace:^, @proton/prettier-config-proton@workspace:packages/prettier-config":
version: 0.0.0-use.local
resolution: "@proton/prettier-config-proton@workspace:packages/prettier-config"
dependencies:
eslint: "npm:^9.34.0"
prettier: "npm:^3.6.2"
languageName: unknown
linkType: soft
"@proton/raw-images@workspace:^, @proton/raw-images@workspace:packages/raw-images":
version: 0.0.0-use.local
resolution: "@proton/raw-images@workspace:packages/raw-images"
@ -36885,6 +36894,7 @@ __metadata:
"@proton/crypto": "workspace:^"
"@proton/eslint-config-proton": "workspace:^"
"@proton/payments": "workspace:^"
"@proton/prettier-config-proton": "workspace:^"
"@proton/shared": "workspace:^"
"@proton/srp": "workspace:^"
"@proton/utils": "workspace:^"
@ -40166,6 +40176,7 @@ __metadata:
resolution: "root@workspace:."
dependencies:
"@proton/eslint-config-proton": "workspace:^"
"@proton/prettier-config-proton": "workspace:^"
"@proton/stylelint-config-proton": "workspace:^"
"@trivago/prettier-plugin-sort-imports": "npm:^5.2.2"
"@types/jest-when": "npm:^3.5.5"