Skip to content

Commit

Permalink
feat: provide plugin config type definitions (#383)
Browse files Browse the repository at this point in the history
closes #364
closes #359
  • Loading branch information
dummdidumm authored Jul 17, 2023
1 parent 5b70335 commit b07b7cf
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 39 deletions.
38 changes: 38 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { Config } from 'prettier';

export interface PluginConfig {
svelteSortOrder?: SortOrder;
svelteStrictMode?: boolean;
svelteBracketNewLine?: boolean;
svelteAllowShorthand?: boolean;
svelteIndentScriptAndStyle?: boolean;
}

export type PrettierConfig = PluginConfig & Config;

type SortOrder =
| 'options-scripts-markup-styles'
| 'options-scripts-styles-markup'
| 'options-markup-styles-scripts'
| 'options-markup-scripts-styles'
| 'options-styles-markup-scripts'
| 'options-styles-scripts-markup'
| 'scripts-options-markup-styles'
| 'scripts-options-styles-markup'
| 'markup-options-styles-scripts'
| 'markup-options-scripts-styles'
| 'styles-options-markup-scripts'
| 'styles-options-scripts-markup'
| 'scripts-markup-options-styles'
| 'scripts-styles-options-markup'
| 'markup-styles-options-scripts'
| 'markup-scripts-options-styles'
| 'styles-markup-options-scripts'
| 'styles-scripts-options-markup'
| 'scripts-markup-styles-options'
| 'scripts-styles-markup-options'
| 'markup-styles-scripts-options'
| 'markup-scripts-styles-options'
| 'styles-markup-scripts-options'
| 'styles-scripts-markup-options'
| 'none';
10 changes: 9 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,16 @@
"main": "plugin.js",
"files": [
"plugin.js",
"plugin.js.map"
"plugin.js.map",
"index.d.ts"
],
"types": "./index.d.ts",
"exports": {
".": {
"types": "./index.d.ts",
"default": "./plugin.js"
}
},
"scripts": {
"build": "rollup -c",
"test": "ava",
Expand Down
40 changes: 3 additions & 37 deletions src/options.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
import { ParserOptions as PrettierParserOptions, SupportOption } from 'prettier';
import { SortOrder, PluginConfig } from '..';

export interface ParserOptions<T = any> extends PrettierParserOptions<T>, Partial<PluginOptions> {}

export interface PluginOptions {
svelteSortOrder: SortOrder;
svelteStrictMode: boolean;
svelteBracketNewLine: boolean;
svelteAllowShorthand: boolean;
svelteIndentScriptAndStyle: boolean;
}
export interface ParserOptions<T = any> extends PrettierParserOptions<T>, Partial<PluginConfig> {}

function makeChoice(choice: string) {
return { value: choice, description: choice };
}

export const options: Record<keyof PluginOptions, SupportOption> = {
export const options: Record<keyof PluginConfig, SupportOption> = {
svelteSortOrder: {
category: 'Svelte',
type: 'choice',
Expand Down Expand Up @@ -76,33 +69,6 @@ export const options: Record<keyof PluginOptions, SupportOption> = {
},
};

export type SortOrder =
| 'options-scripts-markup-styles'
| 'options-scripts-styles-markup'
| 'options-markup-styles-scripts'
| 'options-markup-scripts-styles'
| 'options-styles-markup-scripts'
| 'options-styles-scripts-markup'
| 'scripts-options-markup-styles'
| 'scripts-options-styles-markup'
| 'markup-options-styles-scripts'
| 'markup-options-scripts-styles'
| 'styles-options-markup-scripts'
| 'styles-options-scripts-markup'
| 'scripts-markup-options-styles'
| 'scripts-styles-options-markup'
| 'markup-styles-options-scripts'
| 'markup-scripts-options-styles'
| 'styles-markup-options-scripts'
| 'styles-scripts-options-markup'
| 'scripts-markup-styles-options'
| 'scripts-styles-markup-options'
| 'markup-styles-scripts-options'
| 'markup-scripts-styles-options'
| 'styles-markup-scripts-options'
| 'styles-scripts-markup-options'
| 'none';

export type SortOrderPart = 'scripts' | 'markup' | 'styles' | 'options';

const sortOrderSeparator = '-';
Expand Down
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"strict": true,
"esModuleInterop": true
},
"include": ["src/**/*"]
"include": ["src/**/*", "index.d.ts"]
}

0 comments on commit b07b7cf

Please sign in to comment.