@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 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.4.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.2.1"
40
+ "@bfra.me/prettier-plugins": "0.3.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "prettier": "3.3.3",
44
- "@bfra.me/tsconfig": "0.5.0",
45
- "@bfra.me/prettier-config": "0.4.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
@@ -0,0 +1,10 @@
1
+ import type {Plugin} from 'prettier'
2
+ export type InteropDefault<T> = T extends {
3
+ default: infer U
4
+ }
5
+ ? U
6
+ : T
7
+ export declare const resolve: <T extends Plugin>(
8
+ resolver: (id: string) => string,
9
+ plugin: string,
10
+ ) => string | T
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
+ }
@@ -1,5 +1,7 @@
1
+ import {resolve} from './plugins.js'
1
2
  import {createRequire} from 'module'
2
- const {resolve} = createRequire(import.meta.url)
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
- 'yarn.lock',
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(plugin => resolve(plugin)),
71
+ plugins: ['@bfra.me/prettier-plugins/package-json'].map(resolvePlugin),
63
72
  }
64
73
  export default config
@@ -1,7 +1,10 @@
1
- import {createRequire} from 'module'
1
+ import {resolve} from './plugins.js'
2
2
  import type {Config} from 'prettier'
3
3
 
4
- const {resolve} = createRequire(import.meta.url)
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
- 'package-lock.json',
62
- 'pnpm-lock.yaml',
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(plugin => resolve(plugin)),
80
+ plugins: ['@bfra.me/prettier-plugins/package-json'].map(resolvePlugin),
72
81
  }
73
82
 
74
83
  export default config