Skip to content

Commit b07b7cf

Browse files
authored
feat: provide plugin config type definitions (#383)
closes #364 closes #359
1 parent 5b70335 commit b07b7cf

File tree

4 files changed

+51
-39
lines changed

4 files changed

+51
-39
lines changed

index.d.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { Config } from 'prettier';
2+
3+
export interface PluginConfig {
4+
svelteSortOrder?: SortOrder;
5+
svelteStrictMode?: boolean;
6+
svelteBracketNewLine?: boolean;
7+
svelteAllowShorthand?: boolean;
8+
svelteIndentScriptAndStyle?: boolean;
9+
}
10+
11+
export type PrettierConfig = PluginConfig & Config;
12+
13+
type SortOrder =
14+
| 'options-scripts-markup-styles'
15+
| 'options-scripts-styles-markup'
16+
| 'options-markup-styles-scripts'
17+
| 'options-markup-scripts-styles'
18+
| 'options-styles-markup-scripts'
19+
| 'options-styles-scripts-markup'
20+
| 'scripts-options-markup-styles'
21+
| 'scripts-options-styles-markup'
22+
| 'markup-options-styles-scripts'
23+
| 'markup-options-scripts-styles'
24+
| 'styles-options-markup-scripts'
25+
| 'styles-options-scripts-markup'
26+
| 'scripts-markup-options-styles'
27+
| 'scripts-styles-options-markup'
28+
| 'markup-styles-options-scripts'
29+
| 'markup-scripts-options-styles'
30+
| 'styles-markup-options-scripts'
31+
| 'styles-scripts-options-markup'
32+
| 'scripts-markup-styles-options'
33+
| 'scripts-styles-markup-options'
34+
| 'markup-styles-scripts-options'
35+
| 'markup-scripts-styles-options'
36+
| 'styles-markup-scripts-options'
37+
| 'styles-scripts-markup-options'
38+
| 'none';

package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,16 @@
55
"main": "plugin.js",
66
"files": [
77
"plugin.js",
8-
"plugin.js.map"
8+
"plugin.js.map",
9+
"index.d.ts"
910
],
11+
"types": "./index.d.ts",
12+
"exports": {
13+
".": {
14+
"types": "./index.d.ts",
15+
"default": "./plugin.js"
16+
}
17+
},
1018
"scripts": {
1119
"build": "rollup -c",
1220
"test": "ava",

src/options.ts

Lines changed: 3 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
11
import { ParserOptions as PrettierParserOptions, SupportOption } from 'prettier';
2+
import { SortOrder, PluginConfig } from '..';
23

3-
export interface ParserOptions<T = any> extends PrettierParserOptions<T>, Partial<PluginOptions> {}
4-
5-
export interface PluginOptions {
6-
svelteSortOrder: SortOrder;
7-
svelteStrictMode: boolean;
8-
svelteBracketNewLine: boolean;
9-
svelteAllowShorthand: boolean;
10-
svelteIndentScriptAndStyle: boolean;
11-
}
4+
export interface ParserOptions<T = any> extends PrettierParserOptions<T>, Partial<PluginConfig> {}
125

136
function makeChoice(choice: string) {
147
return { value: choice, description: choice };
158
}
169

17-
export const options: Record<keyof PluginOptions, SupportOption> = {
10+
export const options: Record<keyof PluginConfig, SupportOption> = {
1811
svelteSortOrder: {
1912
category: 'Svelte',
2013
type: 'choice',
@@ -76,33 +69,6 @@ export const options: Record<keyof PluginOptions, SupportOption> = {
7669
},
7770
};
7871

79-
export type SortOrder =
80-
| 'options-scripts-markup-styles'
81-
| 'options-scripts-styles-markup'
82-
| 'options-markup-styles-scripts'
83-
| 'options-markup-scripts-styles'
84-
| 'options-styles-markup-scripts'
85-
| 'options-styles-scripts-markup'
86-
| 'scripts-options-markup-styles'
87-
| 'scripts-options-styles-markup'
88-
| 'markup-options-styles-scripts'
89-
| 'markup-options-scripts-styles'
90-
| 'styles-options-markup-scripts'
91-
| 'styles-options-scripts-markup'
92-
| 'scripts-markup-options-styles'
93-
| 'scripts-styles-options-markup'
94-
| 'markup-styles-options-scripts'
95-
| 'markup-scripts-options-styles'
96-
| 'styles-markup-options-scripts'
97-
| 'styles-scripts-options-markup'
98-
| 'scripts-markup-styles-options'
99-
| 'scripts-styles-markup-options'
100-
| 'markup-styles-scripts-options'
101-
| 'markup-scripts-styles-options'
102-
| 'styles-markup-scripts-options'
103-
| 'styles-scripts-markup-options'
104-
| 'none';
105-
10672
export type SortOrderPart = 'scripts' | 'markup' | 'styles' | 'options';
10773

10874
const sortOrderSeparator = '-';

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
"strict": true,
66
"esModuleInterop": true
77
},
8-
"include": ["src/**/*"]
8+
"include": ["src/**/*", "index.d.ts"]
99
}

0 commit comments

Comments
 (0)