prettier-config-nick2bad4u 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -49,17 +49,77 @@ export default {
49
49
  };
50
50
  ```
51
51
 
52
+ ### Option 4: create config with extensionless file customization
53
+
54
+ Use `createConfig` when you want to add or replace extensionless JSON/INI files
55
+ without duplicating override internals.
56
+
57
+ #### Merge your files with package defaults
58
+
59
+ ```js
60
+ import { createConfig } from "prettier-config-nick2bad4u";
61
+
62
+ export default createConfig({
63
+ extensionlessJsonFiles: ["**/.my-json-rc"],
64
+ extensionlessIniFiles: ["**/.my-ini-rc"],
65
+ });
66
+ ```
67
+
68
+ #### Replace package defaults with your own lists
69
+
70
+ ```js
71
+ import { createConfig } from "prettier-config-nick2bad4u";
72
+
73
+ export default createConfig({
74
+ extensionlessJsonFiles: ["**/.custom-json-rc"],
75
+ extensionlessIniFiles: ["**/.custom-ini-rc"],
76
+ replaceDefaultExtensionlessJsonFiles: true,
77
+ replaceDefaultExtensionlessIniFiles: true,
78
+ });
79
+ ```
80
+
81
+ #### Reuse exported default lists/options
82
+
83
+ ```js
84
+ import {
85
+ createConfig,
86
+ defaultExtensionlessIniFiles,
87
+ defaultExtensionlessJsonFiles,
88
+ extensionlessIniOptions,
89
+ extensionlessJsonOptions,
90
+ } from "prettier-config-nick2bad4u";
91
+
92
+ const myJsonFiles = [
93
+ ...defaultExtensionlessJsonFiles,
94
+ "**/.my-extra-json-rc",
95
+ ];
96
+
97
+ export default createConfig({
98
+ extensionlessJsonFiles: myJsonFiles,
99
+ replaceDefaultExtensionlessJsonFiles: true,
100
+ });
101
+
102
+ // You can also spread option presets if you build your own override blocks:
103
+ void extensionlessIniOptions;
104
+ void extensionlessJsonOptions;
105
+ ```
106
+
107
+ > `.editorconfig` and `.gitconfig` are treated as INI-like files.
108
+ > `.browserlistrc` is **not** INI/properties syntax, so it is not included in
109
+ > the extensionless INI defaults.
110
+
52
111
  ## What this config includes
53
112
 
54
113
  - Base formatting options (quotes, semicolons, trailing commas, tab width, etc.)
55
- - File-specific overrides for JS/TS, Markdown, JSON, TOML, HTML, INI, SQL, shell, and properties files
114
+ - File-specific overrides for JS/TS, Markdown, JSON, TOML, HTML, XML, PowerShell, INI, SQL, shell, and properties files
56
115
  - Plugin-backed formatting for JSDoc, sorted JSON/package.json, and additional language formats
57
116
 
58
117
  ## Package surface
59
118
 
60
119
  - Default export: the shared Prettier config object
61
120
  - Named export: `config`
62
- - Published files: `.prettierrc`, `.prettierrc.json`, `preset.mjs`, and `index.d.ts`
121
+ - Named exports: `createConfig`, `defaultExtensionlessJsonFiles`, `defaultExtensionlessIniFiles`, `extensionlessJsonOptions`, `extensionlessIniOptions`
122
+ - Published files: `prettier.config.mjs`, `preset.mjs`, and `index.d.ts`
63
123
 
64
124
  ## Development checks
65
125
 
package/index.d.ts CHANGED
@@ -1,8 +1,34 @@
1
1
  import type { Config } from "prettier";
2
2
 
3
+ /** Options for building a customized shared Prettier configuration. */
4
+ export interface CreateConfigOptions {
5
+ /** Additional extensionless INI-like file globs to include. */
6
+ extensionlessIniFiles?: readonly string[];
7
+ /** Additional extensionless JSON-like file globs to include. */
8
+ extensionlessJsonFiles?: readonly string[];
9
+ /** Replace default INI-like globs instead of merging with them. */
10
+ replaceDefaultExtensionlessIniFiles?: boolean;
11
+ /** Replace default JSON-like globs instead of merging with them. */
12
+ replaceDefaultExtensionlessJsonFiles?: boolean;
13
+ }
14
+
3
15
  /** Named export — use when you want to spread or inspect individual options. */
4
16
  export declare const config: Readonly<Config>;
5
17
 
18
+ /** Default extensionless INI-like globs used by this shared configuration. */
19
+ export declare const defaultExtensionlessIniFiles: readonly string[];
20
+ /** Default extensionless JSON-like globs used by this shared configuration. */
21
+ export declare const defaultExtensionlessJsonFiles: readonly string[];
22
+ /** Shared option preset used for extensionless INI-like override blocks. */
23
+ export declare const extensionlessIniOptions: Readonly<Partial<Config>>;
24
+ /** Shared option preset used for extensionless JSON-like override blocks. */
25
+ export declare const extensionlessJsonOptions: Readonly<Partial<Config>>;
26
+
27
+ /** Build a shared config with merged or replaced extensionless override globs. */
28
+ export declare function createConfig(
29
+ options?: Readonly<CreateConfigOptions>
30
+ ): Config;
31
+
6
32
  /**
7
33
  * Default export (bound as `prettierConfig`) — use this form to avoid
8
34
  * triggering `import-x/no-named-as-default` in consuming projects:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://www.schemastore.org/package.json",
3
3
  "name": "prettier-config-nick2bad4u",
4
- "version": "1.0.7",
4
+ "version": "1.0.9",
5
5
  "private": false,
6
6
  "description": "Shared Prettier config for Nick2bad4u projects.",
7
7
  "keywords": [
@@ -41,9 +41,8 @@
41
41
  "main": "./preset.mjs",
42
42
  "types": "./index.d.ts",
43
43
  "files": [
44
- ".prettierrc",
45
- ".prettierrc.json",
46
44
  "index.d.ts",
45
+ "prettier.config.mjs",
47
46
  "preset.mjs"
48
47
  ],
49
48
  "scripts": {
@@ -66,12 +65,12 @@
66
65
  "lint:prettier": "prettier . --log-level warn --cache --cache-location=.cache/.prettier-cache --cache-strategy=content --check",
67
66
  "lint:prettier:fix": "prettier . --log-level warn --cache --cache-location=.cache/.prettier-cache --cache-strategy=content --write",
68
67
  "lint:publint": "publint",
69
- "lint:secretlint": "secretlint --secretlintrc .secretlintrc.json --secretlintignore .gitignore \"**/*\"",
68
+ "lint:secretlint": "secretlint --secretlintrc .secretlintrc.cjs --secretlintignore .gitignore \"**/*\"",
70
69
  "lint:yaml": "eslint --cache --cache-strategy content --cache-location .cache/.eslintcache \"**/*.{yml,yaml}\"",
71
70
  "lint:yaml:fix": "npm run lint:yaml -- --fix",
72
71
  "package:check": "npm pack --dry-run",
73
72
  "release:check": "npm run release:verify",
74
- "release:verify": "npm run build && npm run lint:all && npm run lint:package-check",
73
+ "release:verify": "npm run build && npm run lint:all:fix && npm run lint:package:fix && npm run test:coverage",
75
74
  "sync:node-version-files": "node scripts/sync-node-version-files.mjs",
76
75
  "sync:peer-prettier-range": "node scripts/sync-peer-prettier-range.mjs",
77
76
  "test": "vitest run",
@@ -83,13 +82,18 @@
83
82
  "verify": "npm run release:verify"
84
83
  },
85
84
  "dependencies": {
85
+ "@prettier/plugin-php": "^0.25.0",
86
+ "@prettier/plugin-xml": "^3.4.2",
86
87
  "@softonus/prettier-plugin-duplicate-remover": "^1.1.2",
88
+ "npm-check-updates": "^22.1.0",
89
+ "prettier-plugin-codeowners": "^0.1.1",
87
90
  "prettier-plugin-ini": "^1.3.0",
88
91
  "prettier-plugin-interpolated-html-tags": "^2.0.1",
89
92
  "prettier-plugin-jsdoc": "^1.8.0",
90
93
  "prettier-plugin-merge": "^0.10.1",
91
94
  "prettier-plugin-multiline-arrays": "^4.1.7",
92
95
  "prettier-plugin-packagejson": "^3.0.2",
96
+ "prettier-plugin-powershell": "^2.1.0",
93
97
  "prettier-plugin-properties": "^0.3.1",
94
98
  "prettier-plugin-sh": "^0.18.1",
95
99
  "prettier-plugin-sort-json": "^4.2.0",
@@ -98,29 +102,18 @@
98
102
  },
99
103
  "devDependencies": {
100
104
  "@arethetypeswrong/cli": "^0.18.2",
101
- "@secretlint/secretlint-rule-anthropic": "^12.3.1",
102
- "@secretlint/secretlint-rule-aws": "^12.3.1",
103
- "@secretlint/secretlint-rule-database-connection-string": "^12.3.1",
104
- "@secretlint/secretlint-rule-gcp": "^12.3.1",
105
- "@secretlint/secretlint-rule-github": "^12.3.1",
106
- "@secretlint/secretlint-rule-no-dotenv": "^12.3.1",
107
- "@secretlint/secretlint-rule-no-homedir": "^12.3.1",
108
- "@secretlint/secretlint-rule-npm": "^12.3.1",
109
- "@secretlint/secretlint-rule-openai": "^12.3.1",
110
- "@secretlint/secretlint-rule-pattern": "^12.3.1",
111
- "@secretlint/secretlint-rule-privatekey": "^12.3.1",
112
- "@secretlint/secretlint-rule-secp256k1-privatekey": "^12.3.1",
113
105
  "@types/node": "^25.6.0",
114
106
  "@vitest/coverage-v8": "^4.1.5",
115
107
  "cross-env": "^10.1.0",
116
108
  "eslint": "^10.3.0",
117
- "eslint-config-nick2bad4u": "^1.0.5",
109
+ "eslint-config-nick2bad4u": "^1.0.11",
118
110
  "git-cliff": "^2.13.1",
119
- "npm-package-json-lint": "^10.3.0",
111
+ "npm-package-json-lint": "^10.4.0",
120
112
  "picocolors": "^1.1.1",
121
113
  "prettier": "^3.8.3",
122
114
  "publint": "^0.3.18",
123
115
  "secretlint": "^12.3.1",
116
+ "secretlint-config-nick2bad4u": "^1.0.3",
124
117
  "sort-package-json": "^3.6.1",
125
118
  "typescript": "^6.0.3",
126
119
  "vite": "^8.0.10",
package/preset.mjs CHANGED
@@ -1,8 +1,49 @@
1
- import sharedPrettierConfig from "./.prettierrc.json" with { type: "json" };
1
+ import sharedPrettierConfig, {
2
+ createConfig as createConfigInternal,
3
+ defaultExtensionlessIniFiles as defaultExtensionlessIniFilesInternal,
4
+ defaultExtensionlessJsonFiles as defaultExtensionlessJsonFilesInternal,
5
+ extensionlessIniOptions as extensionlessIniOptionsInternal,
6
+ extensionlessJsonOptions as extensionlessJsonOptionsInternal,
7
+ } from "./prettier.config.mjs";
2
8
 
3
9
  /** Named export — use when you want to spread or inspect individual options. */
4
10
  export const config = Object.freeze(sharedPrettierConfig);
5
11
 
12
+ /**
13
+ * Build a config with merged/replaced extensionless JSON/INI override globs.
14
+ *
15
+ * @type {(
16
+ * options?: Readonly<{
17
+ * extensionlessIniFiles?: readonly string[];
18
+ * extensionlessJsonFiles?: readonly string[];
19
+ * replaceDefaultExtensionlessIniFiles?: boolean;
20
+ * replaceDefaultExtensionlessJsonFiles?: boolean;
21
+ * }>
22
+ * ) => import("prettier").Config}
23
+ */
24
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types -- JS file uses explicit JSDoc function typing.
25
+ export const createConfig = (options = {}) => createConfigInternal(options);
26
+
27
+ /** Default extensionless INI-like globs used by this shared configuration. */
28
+ export const defaultExtensionlessIniFiles = Object.freeze([
29
+ ...defaultExtensionlessIniFilesInternal,
30
+ ]);
31
+
32
+ /** Default extensionless JSON-like globs used by this shared configuration. */
33
+ export const defaultExtensionlessJsonFiles = Object.freeze([
34
+ ...defaultExtensionlessJsonFilesInternal,
35
+ ]);
36
+
37
+ /** Shared option preset used for extensionless INI-like override blocks. */
38
+ export const extensionlessIniOptions = Object.freeze({
39
+ ...extensionlessIniOptionsInternal,
40
+ });
41
+
42
+ /** Shared option preset used for extensionless JSON-like override blocks. */
43
+ export const extensionlessJsonOptions = Object.freeze({
44
+ ...extensionlessJsonOptionsInternal,
45
+ });
46
+
6
47
  /**
7
48
  * Default export — distinct binding so consuming projects don't trigger
8
49
  * `import-x/no-named-as-default` when they write `import prettierConfig from
@@ -0,0 +1,357 @@
1
+ /**
2
+ * Prettier configuration for Nick2Bad4U's projects
3
+ *
4
+ * @see https://prettier.io/docs/en/configuration.html
5
+ * @see https://www.schemastore.org/prettierrc/
6
+ */
7
+
8
+ /**
9
+ * @typedef {{
10
+ * extensionlessIniFiles?: readonly string[];
11
+ * extensionlessJsonFiles?: readonly string[];
12
+ * replaceDefaultExtensionlessIniFiles?: boolean;
13
+ * replaceDefaultExtensionlessJsonFiles?: boolean;
14
+ * }} CreateConfigOptions
15
+ */
16
+
17
+ /** @type {ReadonlyArray<string>} */
18
+ export const defaultExtensionlessJsonFiles = Object.freeze([
19
+ "**/.all-contributorsrc",
20
+ "**/.djlintrc",
21
+ "**/.hintrc",
22
+ "**/.htmlhintrc",
23
+ "**/.madgerc",
24
+ ]);
25
+
26
+ /** @type {ReadonlyArray<string>} */
27
+ export const defaultExtensionlessIniFiles = Object.freeze([
28
+ "**/.editorconfig",
29
+ "**/.gitconfig",
30
+ ]);
31
+
32
+ /** @type {Readonly<Partial<import("prettier").Config>>} */
33
+ export const extensionlessJsonOptions = Object.freeze({
34
+ endOfLine: "lf",
35
+ jsonRecursiveSort: false,
36
+ jsonSortOrder: '{"*": "numeric"}',
37
+ multilineArraysWrapThreshold: 2,
38
+ parser: "json",
39
+ plugins: ["prettier-plugin-sort-json", "prettier-plugin-multiline-arrays"],
40
+ useTabs: false,
41
+ });
42
+
43
+ /** @type {Readonly<Partial<import("prettier").Config>>} */
44
+ export const extensionlessIniOptions = Object.freeze({
45
+ endOfLine: "lf",
46
+ iniSpaceAroundEquals: true,
47
+ parser: "ini",
48
+ plugins: ["prettier-plugin-ini"],
49
+ useTabs: false,
50
+ });
51
+
52
+ /**
53
+ * Build a Prettier config with optional extensionless JSON and INI file
54
+ * overrides.
55
+ *
56
+ * @type {(
57
+ * options?: Readonly<CreateConfigOptions>
58
+ * ) => import("prettier").Config}
59
+ */
60
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types -- JS file uses JSDoc function typing instead of TS annotations.
61
+ export const createConfig = (options = {}) => {
62
+ const {
63
+ extensionlessIniFiles = [],
64
+ extensionlessJsonFiles = [],
65
+ replaceDefaultExtensionlessIniFiles = false,
66
+ replaceDefaultExtensionlessJsonFiles = false,
67
+ } = options;
68
+
69
+ const mergedExtensionlessIniFiles = [
70
+ ...new Set(
71
+ replaceDefaultExtensionlessIniFiles
72
+ ? extensionlessIniFiles
73
+ : [...defaultExtensionlessIniFiles, ...extensionlessIniFiles]
74
+ ),
75
+ ];
76
+ const mergedExtensionlessJsonFiles = [
77
+ ...new Set(
78
+ replaceDefaultExtensionlessJsonFiles
79
+ ? extensionlessJsonFiles
80
+ : [...defaultExtensionlessJsonFiles, ...extensionlessJsonFiles]
81
+ ),
82
+ ];
83
+
84
+ return {
85
+ $schema: "https://www.schemastore.org/prettierrc.json",
86
+ arrowParens: "always",
87
+ bracketSameLine: false,
88
+ bracketSpacing: true,
89
+ checkIgnorePragma: false,
90
+ cursorOffset: -1,
91
+ embeddedLanguageFormatting: "auto",
92
+ endOfLine: "auto",
93
+ experimentalOperatorPosition: "end",
94
+ experimentalTernaries: false,
95
+ htmlWhitespaceSensitivity: "css",
96
+ insertPragma: false,
97
+ jsxSingleQuote: false,
98
+ objectWrap: "preserve",
99
+ overrides: [
100
+ {
101
+ files: [
102
+ "*.js",
103
+ "*.jsx",
104
+ "*.ts",
105
+ "*.tsx",
106
+ "*.mjs",
107
+ "*.cjs",
108
+ ],
109
+ options: {
110
+ endOfLine: "lf",
111
+ jsdocBracketSpacing: false,
112
+ jsdocCapitalizeDescription: true,
113
+ jsdocCommentLineStrategy: "keep",
114
+ jsdocDescriptionTag: false,
115
+ jsdocDescriptionWithDot: false,
116
+ jsdocEmptyCommentStrategy: "keep",
117
+ jsdocKeepUnParseAbleExampleIndent: false,
118
+ jsdocLineWrappingStyle: "greedy",
119
+ jsdocPreferCodeFences: true,
120
+ jsdocPrintWidth: 80,
121
+ jsdocSeparateReturnsFromParam: true,
122
+ jsdocSeparateTagGroups: true,
123
+ jsdocSpaces: 1,
124
+ jsdocVerticalAlignment: false,
125
+ multilineArraysWrapThreshold: 2,
126
+ plugins: [
127
+ "@softonus/prettier-plugin-duplicate-remover",
128
+ "prettier-plugin-multiline-arrays",
129
+ "prettier-plugin-jsdoc",
130
+ "prettier-plugin-interpolated-html-tags",
131
+ "prettier-plugin-merge",
132
+ ],
133
+ tsdoc: true,
134
+ useTabs: false,
135
+ },
136
+ },
137
+ {
138
+ files: "tsconfig.*",
139
+ options: {
140
+ endOfLine: "lf",
141
+ jsonRecursiveSort: false,
142
+ jsonSortOrder: '{"*": "numeric"}',
143
+ multilineArraysWrapThreshold: 2,
144
+ plugins: [
145
+ "prettier-plugin-sort-json",
146
+ "prettier-plugin-multiline-arrays",
147
+ ],
148
+ useTabs: false,
149
+ },
150
+ },
151
+ {
152
+ files: "*.html",
153
+ options: {
154
+ htmlWhitespaceSensitivity: "strict",
155
+ plugins: ["@softonus/prettier-plugin-duplicate-remover"],
156
+ printWidth: 80,
157
+ singleAttributePerLine: true,
158
+ useTabs: false,
159
+ },
160
+ },
161
+ {
162
+ files: "*.user.js",
163
+ options: {
164
+ endOfLine: "lf",
165
+ printWidth: 80,
166
+ useTabs: false,
167
+ },
168
+ },
169
+ {
170
+ files: "*.md",
171
+ options: {
172
+ endOfLine: "lf",
173
+ jsdocBracketSpacing: false,
174
+ jsdocCapitalizeDescription: true,
175
+ jsdocCommentLineStrategy: "keep",
176
+ jsdocDescriptionTag: false,
177
+ jsdocDescriptionWithDot: false,
178
+ jsdocEmptyCommentStrategy: "keep",
179
+ jsdocKeepUnParseAbleExampleIndent: false,
180
+ jsdocLineWrappingStyle: "greedy",
181
+ jsdocPreferCodeFences: true,
182
+ jsdocPrintWidth: 80,
183
+ jsdocSeparateReturnsFromParam: true,
184
+ jsdocSeparateTagGroups: true,
185
+ jsdocSpaces: 1,
186
+ jsdocVerticalAlignment: false,
187
+ plugins: ["prettier-plugin-jsdoc"],
188
+ tabWidth: 1,
189
+ useTabs: false,
190
+ },
191
+ },
192
+ {
193
+ files: "*.mdx",
194
+ options: {
195
+ endOfLine: "lf",
196
+ jsdocBracketSpacing: false,
197
+ jsdocCapitalizeDescription: true,
198
+ jsdocCommentLineStrategy: "keep",
199
+ jsdocDescriptionTag: false,
200
+ jsdocDescriptionWithDot: false,
201
+ jsdocEmptyCommentStrategy: "keep",
202
+ jsdocKeepUnParseAbleExampleIndent: false,
203
+ jsdocLineWrappingStyle: "greedy",
204
+ jsdocPreferCodeFences: true,
205
+ jsdocPrintWidth: 80,
206
+ jsdocSeparateReturnsFromParam: true,
207
+ jsdocSeparateTagGroups: true,
208
+ jsdocSpaces: 1,
209
+ jsdocVerticalAlignment: false,
210
+ plugins: ["prettier-plugin-jsdoc"],
211
+ printWidth: 100,
212
+ tabWidth: 2,
213
+ useTabs: false,
214
+ },
215
+ },
216
+ {
217
+ files: "*.toml",
218
+ options: {
219
+ endOfLine: "lf",
220
+ plugins: ["prettier-plugin-toml"],
221
+ printWidth: 120,
222
+ tabWidth: 4,
223
+ useTabs: false,
224
+ },
225
+ },
226
+ {
227
+ files: [
228
+ "*.xml",
229
+ "*.xsd",
230
+ "*.xsl",
231
+ "*.xaml",
232
+ ],
233
+ options: {
234
+ endOfLine: "lf",
235
+ plugins: ["@prettier/plugin-xml"],
236
+ tabWidth: 2,
237
+ useTabs: false,
238
+ },
239
+ },
240
+ {
241
+ files: "*.php",
242
+ options: {
243
+ endOfLine: "lf",
244
+ phpVersion: "auto",
245
+ plugins: ["@prettier/plugin-php"],
246
+ useTabs: false,
247
+ },
248
+ },
249
+ {
250
+ files: mergedExtensionlessJsonFiles,
251
+ options: extensionlessJsonOptions,
252
+ },
253
+ {
254
+ excludeFiles: ["**/package.json", "**/package-lock.json"],
255
+ files: "*.json",
256
+ options: {
257
+ endOfLine: "lf",
258
+ jsonRecursiveSort: false,
259
+ jsonSortOrder: '{"*": "numeric"}',
260
+ multilineArraysWrapThreshold: 2,
261
+ plugins: [
262
+ "prettier-plugin-sort-json",
263
+ "prettier-plugin-multiline-arrays",
264
+ ],
265
+ useTabs: false,
266
+ },
267
+ },
268
+ {
269
+ files: "*.sql",
270
+ options: {
271
+ endOfLine: "lf",
272
+ language: "sqlite",
273
+ plugins: ["prettier-plugin-sql"],
274
+ useTabs: false,
275
+ },
276
+ },
277
+ {
278
+ files: [
279
+ "*.ps1",
280
+ "*.psm1",
281
+ "*.psd1",
282
+ ],
283
+ options: {
284
+ endOfLine: "lf",
285
+ plugins: ["prettier-plugin-powershell"],
286
+ useTabs: false,
287
+ },
288
+ },
289
+ {
290
+ files: ["CODEOWNERS", "**/CODEOWNERS"],
291
+ options: {
292
+ endOfLine: "lf",
293
+ plugins: ["prettier-plugin-codeowners"],
294
+ useTabs: false,
295
+ },
296
+ },
297
+ {
298
+ files: "*.sh",
299
+ options: {
300
+ endOfLine: "lf",
301
+ plugins: ["prettier-plugin-sh"],
302
+ useTabs: false,
303
+ },
304
+ },
305
+ {
306
+ files: "*.properties",
307
+ options: {
308
+ endOfLine: "lf",
309
+ escapeNonLatin1: false,
310
+ plugins: ["prettier-plugin-properties"],
311
+ useTabs: false,
312
+ },
313
+ },
314
+ {
315
+ files: mergedExtensionlessIniFiles,
316
+ options: extensionlessIniOptions,
317
+ },
318
+ {
319
+ files: "*.ini",
320
+ options: {
321
+ endOfLine: "lf",
322
+ iniSpaceAroundEquals: true,
323
+ plugins: ["prettier-plugin-ini"],
324
+ useTabs: false,
325
+ },
326
+ },
327
+ {
328
+ files: ["**/package.json", "**/package-lock.json"],
329
+ options: {
330
+ endOfLine: "lf",
331
+ multilineArraysWrapThreshold: 2,
332
+ plugins: [
333
+ "prettier-plugin-packagejson",
334
+ "prettier-plugin-multiline-arrays",
335
+ ],
336
+ tabWidth: 4,
337
+ useTabs: false,
338
+ },
339
+ },
340
+ ],
341
+ printWidth: 80,
342
+ proseWrap: "preserve",
343
+ quoteProps: "as-needed",
344
+ requirePragma: false,
345
+ semi: true,
346
+ singleAttributePerLine: false,
347
+ singleQuote: false,
348
+ tabWidth: 4,
349
+ trailingComma: "es5",
350
+ useTabs: false,
351
+ vueIndentScriptAndStyle: false,
352
+ };
353
+ };
354
+
355
+ const sharedPrettierConfig = createConfig();
356
+
357
+ export default sharedPrettierConfig;
package/.prettierrc DELETED
@@ -1,246 +0,0 @@
1
- {
2
- "$schema": "https://www.schemastore.org/prettierrc.json",
3
- "arrowParens": "always",
4
- "bracketSameLine": false,
5
- "bracketSpacing": true,
6
- "checkIgnorePragma": false,
7
- "cursorOffset": -1,
8
- "embeddedLanguageFormatting": "auto",
9
- "endOfLine": "auto",
10
- "experimentalOperatorPosition": "end",
11
- "experimentalTernaries": false,
12
- "htmlWhitespaceSensitivity": "css",
13
- "insertPragma": false,
14
- "jsxSingleQuote": false,
15
- "multilineArraysWrapThreshold": 2,
16
- "objectWrap": "preserve",
17
- "overrides": [
18
- {
19
- "files": [
20
- "*.js",
21
- "*.jsx",
22
- "*.ts",
23
- "*.tsx",
24
- "*.mjs",
25
- "*.cjs"
26
- ],
27
- "options": {
28
- "endOfLine": "lf",
29
- "jsdocBracketSpacing": false,
30
- "jsdocCapitalizeDescription": true,
31
- "jsdocCommentLineStrategy": "keep",
32
- "jsdocDescriptionTag": false,
33
- "jsdocDescriptionWithDot": false,
34
- "jsdocEmptyCommentStrategy": "keep",
35
- "jsdocKeepUnParseAbleExampleIndent": false,
36
- "jsdocLineWrappingStyle": "greedy",
37
- "jsdocPreferCodeFences": true,
38
- "jsdocPrintWidth": 80,
39
- "jsdocSeparateReturnsFromParam": true,
40
- "jsdocSeparateTagGroups": true,
41
- "jsdocSpaces": 1,
42
- "jsdocVerticalAlignment": false,
43
- "plugins": [
44
- "prettier-plugin-jsdoc",
45
- "prettier-plugin-interpolated-html-tags",
46
- "@softonus/prettier-plugin-duplicate-remover",
47
- "prettier-plugin-multiline-arrays",
48
- "prettier-plugin-merge"
49
- ],
50
- "tsdoc": true,
51
- "useTabs": false
52
- }
53
- },
54
- {
55
- "files": "tsconfig.*",
56
- "options": {
57
- "endOfLine": "lf",
58
- "jsonRecursiveSort": false,
59
- "jsonSortOrder": "{\"*\": \"numeric\"}",
60
- "plugins": [
61
- "prettier-plugin-multiline-arrays",
62
- "prettier-plugin-sort-json"
63
- ],
64
- "useTabs": false
65
- }
66
- },
67
- {
68
- "files": "*.html",
69
- "options": {
70
- "htmlWhitespaceSensitivity": "strict",
71
- "plugins": [
72
- "prettier-plugin-multiline-arrays",
73
- "@softonus/prettier-plugin-duplicate-remover"
74
- ],
75
- "printWidth": 80,
76
- "singleAttributePerLine": true,
77
- "useTabs": false
78
- }
79
- },
80
- {
81
- "files": "*.user.js",
82
- "options": {
83
- "endOfLine": "lf",
84
- "printWidth": 80,
85
- "useTabs": false
86
- }
87
- },
88
- {
89
- "files": "*.md",
90
- "options": {
91
- "endOfLine": "lf",
92
- "jsdocBracketSpacing": false,
93
- "jsdocCapitalizeDescription": true,
94
- "jsdocCommentLineStrategy": "keep",
95
- "jsdocDescriptionTag": false,
96
- "jsdocDescriptionWithDot": false,
97
- "jsdocEmptyCommentStrategy": "keep",
98
- "jsdocKeepUnParseAbleExampleIndent": false,
99
- "jsdocLineWrappingStyle": "greedy",
100
- "jsdocPreferCodeFences": true,
101
- "jsdocPrintWidth": 80,
102
- "jsdocSeparateReturnsFromParam": true,
103
- "jsdocSeparateTagGroups": true,
104
- "jsdocSpaces": 1,
105
- "jsdocVerticalAlignment": false,
106
- "plugins": [
107
- "prettier-plugin-multiline-arrays",
108
- "prettier-plugin-jsdoc"
109
- ],
110
- "tabWidth": 1,
111
- "useTabs": false
112
- }
113
- },
114
- {
115
- "files": "*.mdx",
116
- "options": {
117
- "endOfLine": "lf",
118
- "jsdocBracketSpacing": false,
119
- "jsdocCapitalizeDescription": true,
120
- "jsdocCommentLineStrategy": "keep",
121
- "jsdocDescriptionTag": false,
122
- "jsdocDescriptionWithDot": false,
123
- "jsdocEmptyCommentStrategy": "keep",
124
- "jsdocKeepUnParseAbleExampleIndent": false,
125
- "jsdocLineWrappingStyle": "greedy",
126
- "jsdocPreferCodeFences": true,
127
- "jsdocPrintWidth": 80,
128
- "jsdocSeparateReturnsFromParam": true,
129
- "jsdocSeparateTagGroups": true,
130
- "jsdocSpaces": 1,
131
- "jsdocVerticalAlignment": false,
132
- "plugins": [
133
- "prettier-plugin-multiline-arrays",
134
- "prettier-plugin-jsdoc"
135
- ],
136
- "printWidth": 100,
137
- "tabWidth": 2,
138
- "useTabs": false
139
- }
140
- },
141
- {
142
- "files": "*.toml",
143
- "options": {
144
- "endOfLine": "lf",
145
- "plugins": [
146
- "prettier-plugin-multiline-arrays",
147
- "prettier-plugin-toml"
148
- ],
149
- "printWidth": 120,
150
- "tabWidth": 4,
151
- "useTabs": false
152
- }
153
- },
154
- {
155
- "files": [
156
- "*.json",
157
- "**/.prettierrc",
158
- "**/.htmlhintrc"
159
- ],
160
- "options": {
161
- "endOfLine": "lf",
162
- "jsonRecursiveSort": false,
163
- "jsonSortOrder": "{\"*\": \"numeric\"}",
164
- "plugins": [
165
- "prettier-plugin-sort-json",
166
- "prettier-plugin-multiline-arrays"
167
- ],
168
- "useTabs": false
169
- }
170
- },
171
- {
172
- "files": "*.sql",
173
- "options": {
174
- "endOfLine": "lf",
175
- "language": "sqlite",
176
- "plugins": [
177
- "prettier-plugin-multiline-arrays",
178
- "prettier-plugin-sql"
179
- ],
180
- "useTabs": false
181
- }
182
- },
183
- {
184
- "files": "*.sh",
185
- "options": {
186
- "endOfLine": "lf",
187
- "plugins": [
188
- "prettier-plugin-multiline-arrays",
189
- "prettier-plugin-sh"
190
- ],
191
- "useTabs": false
192
- }
193
- },
194
- {
195
- "files": "*.properties",
196
- "options": {
197
- "endOfLine": "lf",
198
- "escapeNonLatin1": false,
199
- "plugins": [
200
- "prettier-plugin-multiline-arrays",
201
- "prettier-plugin-properties"
202
- ],
203
- "useTabs": false
204
- }
205
- },
206
- {
207
- "files": "*.ini",
208
- "options": {
209
- "endOfLine": "lf",
210
- "iniSpaceAroundEquals": true,
211
- "keySeparator": " = ",
212
- "plugins": [
213
- "prettier-plugin-multiline-arrays",
214
- "prettier-plugin-ini"
215
- ],
216
- "useTabs": false
217
- }
218
- },
219
- {
220
- "files": "**/package.json, **/package-lock.json",
221
- "options": {
222
- "endOfLine": "lf",
223
- "plugins": [
224
- "prettier-plugin-multiline-arrays",
225
- "prettier-plugin-packagejson"
226
- ],
227
- "tabWidth": 2,
228
- "useTabs": false
229
- }
230
- }
231
- ],
232
- "plugins": [
233
- "prettier-plugin-multiline-arrays"
234
- ],
235
- "printWidth": 80,
236
- "proseWrap": "preserve",
237
- "quoteProps": "as-needed",
238
- "requirePragma": false,
239
- "semi": true,
240
- "singleAttributePerLine": false,
241
- "singleQuote": false,
242
- "tabWidth": 4,
243
- "trailingComma": "es5",
244
- "useTabs": false,
245
- "vueIndentScriptAndStyle": false
246
- }
package/.prettierrc.json DELETED
@@ -1,246 +0,0 @@
1
- {
2
- "$schema": "https://www.schemastore.org/prettierrc.json",
3
- "arrowParens": "always",
4
- "bracketSameLine": false,
5
- "bracketSpacing": true,
6
- "checkIgnorePragma": false,
7
- "cursorOffset": -1,
8
- "embeddedLanguageFormatting": "auto",
9
- "endOfLine": "auto",
10
- "experimentalOperatorPosition": "end",
11
- "experimentalTernaries": false,
12
- "htmlWhitespaceSensitivity": "css",
13
- "insertPragma": false,
14
- "jsxSingleQuote": false,
15
- "multilineArraysWrapThreshold": 2,
16
- "objectWrap": "preserve",
17
- "overrides": [
18
- {
19
- "files": [
20
- "*.js",
21
- "*.jsx",
22
- "*.ts",
23
- "*.tsx",
24
- "*.mjs",
25
- "*.cjs"
26
- ],
27
- "options": {
28
- "endOfLine": "lf",
29
- "jsdocBracketSpacing": false,
30
- "jsdocCapitalizeDescription": true,
31
- "jsdocCommentLineStrategy": "keep",
32
- "jsdocDescriptionTag": false,
33
- "jsdocDescriptionWithDot": false,
34
- "jsdocEmptyCommentStrategy": "keep",
35
- "jsdocKeepUnParseAbleExampleIndent": false,
36
- "jsdocLineWrappingStyle": "greedy",
37
- "jsdocPreferCodeFences": true,
38
- "jsdocPrintWidth": 80,
39
- "jsdocSeparateReturnsFromParam": true,
40
- "jsdocSeparateTagGroups": true,
41
- "jsdocSpaces": 1,
42
- "jsdocVerticalAlignment": false,
43
- "plugins": [
44
- "prettier-plugin-jsdoc",
45
- "prettier-plugin-interpolated-html-tags",
46
- "@softonus/prettier-plugin-duplicate-remover",
47
- "prettier-plugin-multiline-arrays",
48
- "prettier-plugin-merge"
49
- ],
50
- "tsdoc": true,
51
- "useTabs": false
52
- }
53
- },
54
- {
55
- "files": "tsconfig.*",
56
- "options": {
57
- "endOfLine": "lf",
58
- "jsonRecursiveSort": false,
59
- "jsonSortOrder": "{\"*\": \"numeric\"}",
60
- "plugins": [
61
- "prettier-plugin-multiline-arrays",
62
- "prettier-plugin-sort-json"
63
- ],
64
- "useTabs": false
65
- }
66
- },
67
- {
68
- "files": "*.html",
69
- "options": {
70
- "htmlWhitespaceSensitivity": "strict",
71
- "plugins": [
72
- "prettier-plugin-multiline-arrays",
73
- "@softonus/prettier-plugin-duplicate-remover"
74
- ],
75
- "printWidth": 80,
76
- "singleAttributePerLine": true,
77
- "useTabs": false
78
- }
79
- },
80
- {
81
- "files": "*.user.js",
82
- "options": {
83
- "endOfLine": "lf",
84
- "printWidth": 80,
85
- "useTabs": false
86
- }
87
- },
88
- {
89
- "files": "*.md",
90
- "options": {
91
- "endOfLine": "lf",
92
- "jsdocBracketSpacing": false,
93
- "jsdocCapitalizeDescription": true,
94
- "jsdocCommentLineStrategy": "keep",
95
- "jsdocDescriptionTag": false,
96
- "jsdocDescriptionWithDot": false,
97
- "jsdocEmptyCommentStrategy": "keep",
98
- "jsdocKeepUnParseAbleExampleIndent": false,
99
- "jsdocLineWrappingStyle": "greedy",
100
- "jsdocPreferCodeFences": true,
101
- "jsdocPrintWidth": 80,
102
- "jsdocSeparateReturnsFromParam": true,
103
- "jsdocSeparateTagGroups": true,
104
- "jsdocSpaces": 1,
105
- "jsdocVerticalAlignment": false,
106
- "plugins": [
107
- "prettier-plugin-multiline-arrays",
108
- "prettier-plugin-jsdoc"
109
- ],
110
- "tabWidth": 1,
111
- "useTabs": false
112
- }
113
- },
114
- {
115
- "files": "*.mdx",
116
- "options": {
117
- "endOfLine": "lf",
118
- "jsdocBracketSpacing": false,
119
- "jsdocCapitalizeDescription": true,
120
- "jsdocCommentLineStrategy": "keep",
121
- "jsdocDescriptionTag": false,
122
- "jsdocDescriptionWithDot": false,
123
- "jsdocEmptyCommentStrategy": "keep",
124
- "jsdocKeepUnParseAbleExampleIndent": false,
125
- "jsdocLineWrappingStyle": "greedy",
126
- "jsdocPreferCodeFences": true,
127
- "jsdocPrintWidth": 80,
128
- "jsdocSeparateReturnsFromParam": true,
129
- "jsdocSeparateTagGroups": true,
130
- "jsdocSpaces": 1,
131
- "jsdocVerticalAlignment": false,
132
- "plugins": [
133
- "prettier-plugin-multiline-arrays",
134
- "prettier-plugin-jsdoc"
135
- ],
136
- "printWidth": 100,
137
- "tabWidth": 2,
138
- "useTabs": false
139
- }
140
- },
141
- {
142
- "files": "*.toml",
143
- "options": {
144
- "endOfLine": "lf",
145
- "plugins": [
146
- "prettier-plugin-multiline-arrays",
147
- "prettier-plugin-toml"
148
- ],
149
- "printWidth": 120,
150
- "tabWidth": 4,
151
- "useTabs": false
152
- }
153
- },
154
- {
155
- "files": [
156
- "*.json",
157
- "**/.prettierrc",
158
- "**/.htmlhintrc"
159
- ],
160
- "options": {
161
- "endOfLine": "lf",
162
- "jsonRecursiveSort": false,
163
- "jsonSortOrder": "{\"*\": \"numeric\"}",
164
- "plugins": [
165
- "prettier-plugin-sort-json",
166
- "prettier-plugin-multiline-arrays"
167
- ],
168
- "useTabs": false
169
- }
170
- },
171
- {
172
- "files": "*.sql",
173
- "options": {
174
- "endOfLine": "lf",
175
- "language": "sqlite",
176
- "plugins": [
177
- "prettier-plugin-multiline-arrays",
178
- "prettier-plugin-sql"
179
- ],
180
- "useTabs": false
181
- }
182
- },
183
- {
184
- "files": "*.sh",
185
- "options": {
186
- "endOfLine": "lf",
187
- "plugins": [
188
- "prettier-plugin-multiline-arrays",
189
- "prettier-plugin-sh"
190
- ],
191
- "useTabs": false
192
- }
193
- },
194
- {
195
- "files": "*.properties",
196
- "options": {
197
- "endOfLine": "lf",
198
- "escapeNonLatin1": false,
199
- "plugins": [
200
- "prettier-plugin-multiline-arrays",
201
- "prettier-plugin-properties"
202
- ],
203
- "useTabs": false
204
- }
205
- },
206
- {
207
- "files": "*.ini",
208
- "options": {
209
- "endOfLine": "lf",
210
- "iniSpaceAroundEquals": true,
211
- "keySeparator": " = ",
212
- "plugins": [
213
- "prettier-plugin-multiline-arrays",
214
- "prettier-plugin-ini"
215
- ],
216
- "useTabs": false
217
- }
218
- },
219
- {
220
- "files": "**/package.json, **/package-lock.json",
221
- "options": {
222
- "endOfLine": "lf",
223
- "plugins": [
224
- "prettier-plugin-multiline-arrays",
225
- "prettier-plugin-packagejson"
226
- ],
227
- "tabWidth": 2,
228
- "useTabs": false
229
- }
230
- }
231
- ],
232
- "plugins": [
233
- "prettier-plugin-multiline-arrays"
234
- ],
235
- "printWidth": 80,
236
- "proseWrap": "preserve",
237
- "quoteProps": "as-needed",
238
- "requirePragma": false,
239
- "semi": true,
240
- "singleAttributePerLine": false,
241
- "singleQuote": false,
242
- "tabWidth": 4,
243
- "trailingComma": "es5",
244
- "useTabs": false,
245
- "vueIndentScriptAndStyle": false
246
- }