@bfra.me/prettier-config 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/120-proof.d.ts +2 -35
- package/120-proof.ts +2 -1
- package/package.json +4 -4
- package/plugins.d.ts +10 -0
- package/plugins.js +17 -0
- package/plugins.ts +26 -0
- package/prettier.config.js +32 -23
- package/prettier.config.ts +36 -27
package/120-proof.d.ts
CHANGED
@@ -1,39 +1,6 @@
|
|
1
|
+
import type {Config} from 'prettier'
|
1
2
|
/**
|
2
3
|
* Shared Prettier configuration for bfra.me projects with `printWidth` set to 120 characters.
|
3
4
|
*/
|
4
|
-
declare const config:
|
5
|
-
printWidth: number
|
6
|
-
overrides?: Array<{
|
7
|
-
files: string | string[]
|
8
|
-
excludeFiles?: string | string[]
|
9
|
-
options?: import('prettier').Options
|
10
|
-
}>
|
11
|
-
semi?: boolean
|
12
|
-
singleQuote?: boolean
|
13
|
-
jsxSingleQuote?: boolean
|
14
|
-
trailingComma?: 'none' | 'es5' | 'all'
|
15
|
-
bracketSpacing?: boolean
|
16
|
-
bracketSameLine?: boolean
|
17
|
-
rangeStart?: number
|
18
|
-
rangeEnd?: number
|
19
|
-
parser?: import('prettier').LiteralUnion<import('prettier').BuiltInParserName>
|
20
|
-
filepath?: string
|
21
|
-
requirePragma?: boolean
|
22
|
-
insertPragma?: boolean
|
23
|
-
proseWrap?: 'always' | 'never' | 'preserve'
|
24
|
-
arrowParens?: 'avoid' | 'always'
|
25
|
-
plugins?: Array<string | import('prettier').Plugin>
|
26
|
-
htmlWhitespaceSensitivity?: 'css' | 'strict' | 'ignore'
|
27
|
-
endOfLine?: 'auto' | 'lf' | 'crlf' | 'cr'
|
28
|
-
quoteProps?: 'as-needed' | 'consistent' | 'preserve'
|
29
|
-
vueIndentScriptAndStyle?: boolean
|
30
|
-
embeddedLanguageFormatting?: 'auto' | 'off'
|
31
|
-
singleAttributePerLine?: boolean
|
32
|
-
experimentalTernaries?: boolean
|
33
|
-
jsxBracketSameLine?: boolean
|
34
|
-
tabWidth?: number
|
35
|
-
useTabs?: boolean
|
36
|
-
parentParser?: string | undefined
|
37
|
-
__embeddedInHtml?: boolean | undefined
|
38
|
-
}
|
5
|
+
declare const config: Config
|
39
6
|
export default config
|
package/120-proof.ts
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
import prettierConfig from '@bfra.me/prettier-config'
|
2
|
+
import type {Config} from 'prettier'
|
2
3
|
|
3
4
|
/**
|
4
5
|
* Shared Prettier configuration for bfra.me projects with `printWidth` set to 120 characters.
|
5
6
|
*/
|
6
|
-
const config = {
|
7
|
+
const config: Config = {
|
7
8
|
...prettierConfig,
|
8
9
|
printWidth: 120,
|
9
10
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@bfra.me/prettier-config",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.5.0",
|
4
4
|
"description": "Shared Prettier configuration for bfra.me",
|
5
5
|
"keywords": [
|
6
6
|
"bfra.me",
|
@@ -37,12 +37,12 @@
|
|
37
37
|
"!*.map"
|
38
38
|
],
|
39
39
|
"dependencies": {
|
40
|
-
"@bfra.me/prettier-plugins": "0.
|
40
|
+
"@bfra.me/prettier-plugins": "0.3.0"
|
41
41
|
},
|
42
42
|
"devDependencies": {
|
43
43
|
"prettier": "3.3.3",
|
44
|
-
"@bfra.me/tsconfig": "0.
|
45
|
-
"@bfra.me/prettier-config": "0.
|
44
|
+
"@bfra.me/tsconfig": "0.6.0",
|
45
|
+
"@bfra.me/prettier-config": "0.5.0"
|
46
46
|
},
|
47
47
|
"peerDependencies": {
|
48
48
|
"prettier": "^3.0.0"
|
package/plugins.d.ts
ADDED
package/plugins.js
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
function interopDefault(m) {
|
2
|
+
return m.default || m
|
3
|
+
}
|
4
|
+
import {default as pluginPackageJson} from '@bfra.me/prettier-plugins/package-json'
|
5
|
+
const resolvedPlugins = {
|
6
|
+
'@bfra.me/prettier-plugins/package-json': interopDefault(pluginPackageJson),
|
7
|
+
}
|
8
|
+
export const resolve = (resolver, plugin) => {
|
9
|
+
try {
|
10
|
+
if (resolvedPlugins[plugin]) {
|
11
|
+
return resolvedPlugins[plugin]
|
12
|
+
}
|
13
|
+
return resolver(plugin)
|
14
|
+
} finally {
|
15
|
+
return plugin
|
16
|
+
}
|
17
|
+
}
|
package/plugins.ts
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
import type {Plugin} from 'prettier'
|
2
|
+
|
3
|
+
export type InteropDefault<T> = T extends {default: infer U} ? U : T
|
4
|
+
|
5
|
+
function interopDefault<T>(m: T): InteropDefault<T> {
|
6
|
+
return (m as any).default || m
|
7
|
+
}
|
8
|
+
|
9
|
+
import {default as pluginPackageJson} from '@bfra.me/prettier-plugins/package-json'
|
10
|
+
const resolvedPlugins: Record<string, Plugin> = {
|
11
|
+
'@bfra.me/prettier-plugins/package-json': interopDefault(pluginPackageJson),
|
12
|
+
}
|
13
|
+
|
14
|
+
export const resolve = <T extends Plugin>(
|
15
|
+
resolver: (id: string) => string,
|
16
|
+
plugin: string,
|
17
|
+
): string | T => {
|
18
|
+
try {
|
19
|
+
if (resolvedPlugins[plugin]) {
|
20
|
+
return resolvedPlugins[plugin] as unknown as T
|
21
|
+
}
|
22
|
+
return resolver(plugin)
|
23
|
+
} finally {
|
24
|
+
return plugin
|
25
|
+
}
|
26
|
+
}
|
package/prettier.config.js
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
import {resolve} from './plugins.js'
|
1
2
|
import {createRequire} from 'module'
|
2
|
-
const
|
3
|
+
const require = createRequire(import.meta.url)
|
4
|
+
const resolvePlugin = resolve.bind(null, require.resolve)
|
3
5
|
/**
|
4
6
|
* Shared Prettier configuration for bfra.me projects.
|
5
7
|
*/
|
@@ -11,24 +13,6 @@ const config = {
|
|
11
13
|
semi: false,
|
12
14
|
singleQuote: true,
|
13
15
|
overrides: [
|
14
|
-
// VS Code configuration files:
|
15
|
-
// Use 4 spaces for indentation to match the default VS Code settings.
|
16
|
-
{
|
17
|
-
files: ['.vscode/*.json'],
|
18
|
-
options: {
|
19
|
-
tabWidth: 4,
|
20
|
-
},
|
21
|
-
},
|
22
|
-
// Markdown:
|
23
|
-
// - Disable single quotes for Markdown files.
|
24
|
-
// - Disable `proseWrap` to avoid wrapping prose.
|
25
|
-
{
|
26
|
-
files: ['*.md'],
|
27
|
-
options: {
|
28
|
-
proseWrap: 'never',
|
29
|
-
singleQuote: false,
|
30
|
-
},
|
31
|
-
},
|
32
16
|
// Adapted from https://github.com/sxzz/prettier-config/blob/1e5cc3021e5816aceebe0b90af1d530239442ecf/index.js.
|
33
17
|
// Require a pragma for paths typically not under version control or written by build tools.
|
34
18
|
{
|
@@ -38,27 +22,52 @@ const config = {
|
|
38
22
|
'**/lib/**',
|
39
23
|
'**/coverage/**',
|
40
24
|
'**/out/**',
|
25
|
+
'**/temp/**',
|
41
26
|
'**/.idea/**',
|
27
|
+
'**/.next/**',
|
42
28
|
'**/.nuxt/**',
|
29
|
+
'**/.output/**',
|
43
30
|
'**/.vercel/**',
|
44
31
|
'**/.vitepress/cache/**',
|
45
32
|
'**/.vite-inspect/**',
|
46
33
|
'**/__snapshots__/**',
|
34
|
+
'**/auto-import?(s).d.ts',
|
47
35
|
'**/.changeset/*.md',
|
48
36
|
'**/CHANGELOG*.md',
|
49
37
|
'**/changelog*.md',
|
38
|
+
'**/components.d.ts',
|
39
|
+
'**/devcontainer-lock.json',
|
50
40
|
'**/LICENSE*',
|
51
41
|
'**/license*',
|
52
42
|
'**/*.min.*',
|
53
|
-
'package-lock.json',
|
54
|
-
'pnpm-lock.yaml',
|
55
|
-
'
|
43
|
+
'**/package-lock.json',
|
44
|
+
'**/pnpm-lock.yaml',
|
45
|
+
'**/typed-router.d.ts',
|
46
|
+
'**/yarn.lock',
|
56
47
|
],
|
57
48
|
options: {
|
58
49
|
requirePragma: true,
|
59
50
|
},
|
60
51
|
},
|
52
|
+
// VS Code configuration files:
|
53
|
+
// Use 4 spaces for indentation to match the default VS Code settings.
|
54
|
+
{
|
55
|
+
files: ['.vscode/*.json', '.devcontainer/**/devcontainer*.json'],
|
56
|
+
options: {
|
57
|
+
tabWidth: 4,
|
58
|
+
},
|
59
|
+
},
|
60
|
+
// Markdown:
|
61
|
+
// - Disable single quotes for Markdown files.
|
62
|
+
// - Disable `proseWrap` to avoid wrapping prose.
|
63
|
+
{
|
64
|
+
files: ['*.md'],
|
65
|
+
options: {
|
66
|
+
proseWrap: 'never',
|
67
|
+
singleQuote: false,
|
68
|
+
},
|
69
|
+
},
|
61
70
|
],
|
62
|
-
plugins: ['@bfra.me/prettier-plugins/package-json'].map(
|
71
|
+
plugins: ['@bfra.me/prettier-plugins/package-json'].map(resolvePlugin),
|
63
72
|
}
|
64
73
|
export default config
|
package/prettier.config.ts
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
-
import {
|
1
|
+
import {resolve} from './plugins.js'
|
2
2
|
import type {Config} from 'prettier'
|
3
3
|
|
4
|
-
|
4
|
+
import {createRequire} from 'module'
|
5
|
+
|
6
|
+
const require = createRequire(import.meta.url)
|
7
|
+
const resolvePlugin = resolve.bind(null, require.resolve)
|
5
8
|
|
6
9
|
/**
|
7
10
|
* Shared Prettier configuration for bfra.me projects.
|
@@ -15,26 +18,6 @@ const config: Config = {
|
|
15
18
|
singleQuote: true,
|
16
19
|
|
17
20
|
overrides: [
|
18
|
-
// VS Code configuration files:
|
19
|
-
// Use 4 spaces for indentation to match the default VS Code settings.
|
20
|
-
{
|
21
|
-
files: ['.vscode/*.json'],
|
22
|
-
options: {
|
23
|
-
tabWidth: 4,
|
24
|
-
},
|
25
|
-
},
|
26
|
-
|
27
|
-
// Markdown:
|
28
|
-
// - Disable single quotes for Markdown files.
|
29
|
-
// - Disable `proseWrap` to avoid wrapping prose.
|
30
|
-
{
|
31
|
-
files: ['*.md'],
|
32
|
-
options: {
|
33
|
-
proseWrap: 'never',
|
34
|
-
singleQuote: false,
|
35
|
-
},
|
36
|
-
},
|
37
|
-
|
38
21
|
// Adapted from https://github.com/sxzz/prettier-config/blob/1e5cc3021e5816aceebe0b90af1d530239442ecf/index.js.
|
39
22
|
// Require a pragma for paths typically not under version control or written by build tools.
|
40
23
|
{
|
@@ -44,31 +27,57 @@ const config: Config = {
|
|
44
27
|
'**/lib/**',
|
45
28
|
'**/coverage/**',
|
46
29
|
'**/out/**',
|
30
|
+
'**/temp/**',
|
47
31
|
'**/.idea/**',
|
32
|
+
'**/.next/**',
|
48
33
|
'**/.nuxt/**',
|
34
|
+
'**/.output/**',
|
49
35
|
'**/.vercel/**',
|
50
36
|
'**/.vitepress/cache/**',
|
51
37
|
'**/.vite-inspect/**',
|
52
38
|
'**/__snapshots__/**',
|
53
39
|
|
40
|
+
'**/auto-import?(s).d.ts',
|
54
41
|
'**/.changeset/*.md',
|
55
42
|
'**/CHANGELOG*.md',
|
56
43
|
'**/changelog*.md',
|
44
|
+
'**/components.d.ts',
|
45
|
+
'**/devcontainer-lock.json',
|
57
46
|
'**/LICENSE*',
|
58
47
|
'**/license*',
|
59
48
|
'**/*.min.*',
|
60
|
-
|
61
|
-
'
|
62
|
-
'
|
63
|
-
'yarn.lock',
|
49
|
+
'**/package-lock.json',
|
50
|
+
'**/pnpm-lock.yaml',
|
51
|
+
'**/typed-router.d.ts',
|
52
|
+
'**/yarn.lock',
|
64
53
|
],
|
65
54
|
options: {
|
66
55
|
requirePragma: true,
|
67
56
|
},
|
68
57
|
},
|
58
|
+
|
59
|
+
// VS Code configuration files:
|
60
|
+
// Use 4 spaces for indentation to match the default VS Code settings.
|
61
|
+
{
|
62
|
+
files: ['.vscode/*.json', '.devcontainer/**/devcontainer*.json'],
|
63
|
+
options: {
|
64
|
+
tabWidth: 4,
|
65
|
+
},
|
66
|
+
},
|
67
|
+
|
68
|
+
// Markdown:
|
69
|
+
// - Disable single quotes for Markdown files.
|
70
|
+
// - Disable `proseWrap` to avoid wrapping prose.
|
71
|
+
{
|
72
|
+
files: ['*.md'],
|
73
|
+
options: {
|
74
|
+
proseWrap: 'never',
|
75
|
+
singleQuote: false,
|
76
|
+
},
|
77
|
+
},
|
69
78
|
],
|
70
79
|
|
71
|
-
plugins: ['@bfra.me/prettier-plugins/package-json'].map(
|
80
|
+
plugins: ['@bfra.me/prettier-plugins/package-json'].map(resolvePlugin),
|
72
81
|
}
|
73
82
|
|
74
83
|
export default config
|