@nemigo/configs 1.0.1 → 1.1.1
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/dist/eslint/index.d.ts +16 -14
- package/dist/eslint/index.js +102 -84
- package/dist/eslint/types.d.ts +4 -0
- package/dist/eslint/types.js +0 -1
- package/dist/prettier/index.d.ts +42 -30
- package/dist/prettier/index.js +37 -27
- package/dist/svelte/index.d.ts +2 -10
- package/dist/svelte/index.js +2 -1
- package/dist/svelte/package.d.ts +1 -4
- package/dist/svelte/package.js +2 -2
- package/dist/vite/index.d.ts +6 -6
- package/dist/vite/index.js +5 -4
- package/dist/vite/proxy.d.ts +14 -2
- package/dist/vite/proxy.js +14 -2
- package/package.json +3 -4
package/dist/eslint/index.d.ts
CHANGED
|
@@ -8,46 +8,48 @@ export { includeIgnoreFile, convertIgnorePatternToMinimatch as convertIgnorePatt
|
|
|
8
8
|
*/
|
|
9
9
|
export interface EslintConfigOptions {
|
|
10
10
|
/**
|
|
11
|
-
* Конфиг
|
|
11
|
+
* Конфиг Svelte для его линтинга
|
|
12
12
|
*
|
|
13
13
|
* @see https://sveltejs.github.io/eslint-plugin-svelte
|
|
14
14
|
*/
|
|
15
15
|
svelte?: Config;
|
|
16
16
|
/**
|
|
17
|
-
* Использование strict-правил
|
|
17
|
+
* Использование strict-правил typescript-eslint
|
|
18
18
|
*
|
|
19
|
+
* @default false
|
|
19
20
|
* @see https://typescript-eslint.io/users/configs/#strict
|
|
20
21
|
*/
|
|
21
22
|
strict?: boolean;
|
|
22
23
|
/**
|
|
23
|
-
* Путь к проекту (`import.meta.dirname`) для
|
|
24
|
+
* Путь к проекту (`import.meta.dirname`) для typed-linting
|
|
24
25
|
*
|
|
25
26
|
* @see https://typescript-eslint.io/getting-started/typed-linting
|
|
26
27
|
*/
|
|
27
28
|
service?: string;
|
|
28
29
|
/**
|
|
29
|
-
* Путь к
|
|
30
|
+
* Путь к альтернативному файлу `.eslint.ignore`
|
|
30
31
|
*
|
|
31
32
|
* @see https://github.com/eslint/rewrite/tree/main/packages/compat#readme
|
|
32
33
|
*/
|
|
33
34
|
ignore?: string;
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
36
|
-
*
|
|
37
|
+
* Создает готовый flat-конфиг для **ESLint**
|
|
37
38
|
*
|
|
38
39
|
* Включает в себя:
|
|
40
|
+
* - Конфигурацию из `.eslint.ignore` пакета или иного
|
|
41
|
+
* - Глобальные переменные для браузера и Node.js (globals)
|
|
42
|
+
* - Рекомендованные правила из `@eslint/js`
|
|
43
|
+
* - Рекомендованные или strict правила из `typescript-eslint`
|
|
44
|
+
* - Опционально: конфигурацию для Svelte
|
|
45
|
+
* - Опционально: typed-linting из `typescript-eslint`
|
|
39
46
|
*
|
|
40
|
-
*
|
|
41
|
-
* - Globals
|
|
42
|
-
* - Javascript
|
|
43
|
-
* - Typescript
|
|
44
|
-
* - Svelte (опционально)
|
|
47
|
+
* Отключены различные правила TypeScript, которые только мешают.
|
|
45
48
|
*
|
|
46
|
-
*
|
|
49
|
+
* @param {EslintConfigOptions} [options] - Опции конфигурации
|
|
50
|
+
* @param {...ConfigWithExtendsArray} [rest] - Дополнительные конфигурации ESLint для расширения
|
|
51
|
+
* @returns {Linter.Config[]} Массив flat-конфигов ESLint
|
|
47
52
|
*
|
|
48
|
-
* @param {EslintConfigOptions} [options]
|
|
49
|
-
* @param {...ConfigWithExtendsArray} [rest]
|
|
50
|
-
* @returns {Linter.Config[]}
|
|
51
53
|
* @see https://eslint.org/docs/latest/use/configure/configuration-files
|
|
52
54
|
*/
|
|
53
55
|
export declare const defineEslintConfig: (options?: EslintConfigOptions, ...rest: ConfigWithExtendsArray) => Linter.Config[];
|
package/dist/eslint/index.js
CHANGED
|
@@ -7,102 +7,120 @@ import { join } from "node:path";
|
|
|
7
7
|
import tslint from "typescript-eslint";
|
|
8
8
|
export { includeIgnoreFile, convertIgnorePatternToMinimatch as convertIgnorePattern };
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Создает готовый flat-конфиг для **ESLint**
|
|
11
11
|
*
|
|
12
12
|
* Включает в себя:
|
|
13
|
+
* - Конфигурацию из `.eslint.ignore` пакета или иного
|
|
14
|
+
* - Глобальные переменные для браузера и Node.js (globals)
|
|
15
|
+
* - Рекомендованные правила из `@eslint/js`
|
|
16
|
+
* - Рекомендованные или strict правила из `typescript-eslint`
|
|
17
|
+
* - Опционально: конфигурацию для Svelte
|
|
18
|
+
* - Опционально: typed-linting из `typescript-eslint`
|
|
13
19
|
*
|
|
14
|
-
*
|
|
15
|
-
* - Globals
|
|
16
|
-
* - Javascript
|
|
17
|
-
* - Typescript
|
|
18
|
-
* - Svelte (опционально)
|
|
20
|
+
* Отключены различные правила TypeScript, которые только мешают.
|
|
19
21
|
*
|
|
20
|
-
*
|
|
22
|
+
* @param {EslintConfigOptions} [options] - Опции конфигурации
|
|
23
|
+
* @param {...ConfigWithExtendsArray} [rest] - Дополнительные конфигурации ESLint для расширения
|
|
24
|
+
* @returns {Linter.Config[]} Массив flat-конфигов ESLint
|
|
21
25
|
*
|
|
22
|
-
* @param {EslintConfigOptions} [options]
|
|
23
|
-
* @param {...ConfigWithExtendsArray} [rest]
|
|
24
|
-
* @returns {Linter.Config[]}
|
|
25
26
|
* @see https://eslint.org/docs/latest/use/configure/configuration-files
|
|
26
27
|
*/
|
|
27
|
-
export const defineEslintConfig = (options, ...rest) =>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
export const defineEslintConfig = (options, ...rest) => {
|
|
29
|
+
const acc = [];
|
|
30
|
+
acc.push(includeIgnoreFile(options?.ignore || join(import.meta.dirname, "../../.eslint.ignore"), "@nemigo/configs/.eslint.ignore"));
|
|
31
|
+
acc.push(jslint.configs.recommended);
|
|
32
|
+
if (options?.strict) {
|
|
33
|
+
if (options?.service) {
|
|
34
|
+
acc.push(tslint.configs.strictTypeChecked);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
acc.push(tslint.configs.strict);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
if (options?.service) {
|
|
42
|
+
acc.push(tslint.configs.recommendedTypeChecked);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
acc.push(tslint.configs.recommended);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (options?.service) {
|
|
49
|
+
acc.push({
|
|
50
|
+
languageOptions: {
|
|
51
|
+
parserOptions: {
|
|
52
|
+
projectService: true,
|
|
53
|
+
tsconfigRootDir: options.service,
|
|
54
|
+
},
|
|
39
55
|
},
|
|
40
|
-
}
|
|
56
|
+
});
|
|
41
57
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"@typescript-eslint/no-this-alias": 0,
|
|
63
|
-
"@typescript-eslint/no-unnecessary-type-parameters": 0,
|
|
64
|
-
"@typescript-eslint/no-unsafe-argument": 0,
|
|
65
|
-
"@typescript-eslint/no-unsafe-assignment": 0,
|
|
66
|
-
"@typescript-eslint/no-unsafe-call": 0,
|
|
67
|
-
"@typescript-eslint/no-unsafe-function-type": 0,
|
|
68
|
-
"@typescript-eslint/no-unsafe-member-access": 0,
|
|
69
|
-
"@typescript-eslint/no-unsafe-return": 0,
|
|
70
|
-
"@typescript-eslint/no-unused-expressions": 0,
|
|
71
|
-
"@typescript-eslint/no-unused-vars": [
|
|
72
|
-
"error",
|
|
73
|
-
{
|
|
74
|
-
args: "all",
|
|
75
|
-
argsIgnorePattern: "^_",
|
|
76
|
-
caughtErrors: "all",
|
|
77
|
-
caughtErrorsIgnorePattern: "^_",
|
|
78
|
-
destructuredArrayIgnorePattern: "^_",
|
|
79
|
-
varsIgnorePattern: "^_",
|
|
80
|
-
ignoreRestSiblings: true,
|
|
58
|
+
if (options?.svelte) {
|
|
59
|
+
acc.push(svelteConfigs["flat/recommended"]);
|
|
60
|
+
acc.push({
|
|
61
|
+
files: [
|
|
62
|
+
"**/*.svelte",
|
|
63
|
+
"**/*.svelte.ts",
|
|
64
|
+
"**/*.svelte.js",
|
|
65
|
+
],
|
|
66
|
+
languageOptions: {
|
|
67
|
+
parserOptions: {
|
|
68
|
+
projectService: true,
|
|
69
|
+
extraFileExtensions: [".svelte"],
|
|
70
|
+
parser: tslint.parser,
|
|
71
|
+
svelteConfig: options?.svelte,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
rules: {
|
|
75
|
+
"svelte/no-at-html-tags": 0,
|
|
76
|
+
"svelte/no-navigation-without-resolve": 0,
|
|
77
|
+
"svelte/prefer-svelte-reactivity": 0,
|
|
81
78
|
},
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"no-import-assign": 0,
|
|
86
|
-
},
|
|
87
|
-
}, options?.svelte
|
|
88
|
-
? {
|
|
89
|
-
files: [
|
|
90
|
-
"**/*.svelte",
|
|
91
|
-
"**/*.svelte.ts",
|
|
92
|
-
"**/*.svelte.js",
|
|
93
|
-
],
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
acc.push({
|
|
94
82
|
languageOptions: {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
parser: tslint.parser,
|
|
99
|
-
svelteConfig: options?.svelte,
|
|
83
|
+
globals: {
|
|
84
|
+
...globals.browser,
|
|
85
|
+
...globals.node,
|
|
100
86
|
},
|
|
101
87
|
},
|
|
102
88
|
rules: {
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
89
|
+
"@typescript-eslint/no-confusing-void-expression": 0,
|
|
90
|
+
"@typescript-eslint/no-duplicate-type-constituents": 0,
|
|
91
|
+
"@typescript-eslint/no-dynamic-delete": 0,
|
|
92
|
+
"@typescript-eslint/no-empty-object-type": 0,
|
|
93
|
+
"@typescript-eslint/no-explicit-any": 0,
|
|
94
|
+
"@typescript-eslint/no-invalid-void-type": 0,
|
|
95
|
+
"@typescript-eslint/no-non-null-asserted-optional-chain": 0,
|
|
96
|
+
"@typescript-eslint/no-non-null-assertion": 0,
|
|
97
|
+
"@typescript-eslint/no-redundant-type-constituents": 0,
|
|
98
|
+
"@typescript-eslint/no-this-alias": 0,
|
|
99
|
+
"@typescript-eslint/no-unnecessary-type-parameters": 0,
|
|
100
|
+
"@typescript-eslint/no-unsafe-argument": 0,
|
|
101
|
+
"@typescript-eslint/no-unsafe-assignment": 0,
|
|
102
|
+
"@typescript-eslint/no-unsafe-call": 0,
|
|
103
|
+
"@typescript-eslint/no-unsafe-function-type": 0,
|
|
104
|
+
"@typescript-eslint/no-unsafe-member-access": 0,
|
|
105
|
+
"@typescript-eslint/no-unsafe-return": 0,
|
|
106
|
+
"@typescript-eslint/no-unused-expressions": 0,
|
|
107
|
+
"@typescript-eslint/no-unused-vars": [
|
|
108
|
+
"error",
|
|
109
|
+
{
|
|
110
|
+
args: "all",
|
|
111
|
+
argsIgnorePattern: "^_",
|
|
112
|
+
caughtErrors: "all",
|
|
113
|
+
caughtErrorsIgnorePattern: "^_",
|
|
114
|
+
destructuredArrayIgnorePattern: "^_",
|
|
115
|
+
varsIgnorePattern: "^_",
|
|
116
|
+
ignoreRestSiblings: true,
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
"@typescript-eslint/restrict-plus-operands": 0,
|
|
120
|
+
"@typescript-eslint/restrict-template-expressions": 0,
|
|
121
|
+
"no-import-assign": 0,
|
|
106
122
|
},
|
|
107
|
-
}
|
|
108
|
-
|
|
123
|
+
});
|
|
124
|
+
acc.push(...rest);
|
|
125
|
+
return defineConfig(acc);
|
|
126
|
+
};
|
package/dist/eslint/types.d.ts
CHANGED
|
@@ -5,4 +5,8 @@ export type ExtendsElement = SimpleExtendsElement | InfiniteArray<Linter.Config>
|
|
|
5
5
|
export interface ConfigWithExtends extends Linter.Config {
|
|
6
6
|
extends?: ExtendsElement[];
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Взято из @eslint/config-helpers/types (0.3.1), т.к. нужный тип (ConfigWithExtendsArray) не экспортируется пакетом.
|
|
10
|
+
* Представляется собой массив flat-конфигов ESLint
|
|
11
|
+
*/
|
|
8
12
|
export type ConfigWithExtendsArray = InfiniteArray<ConfigWithExtends>[];
|
package/dist/eslint/types.js
CHANGED
package/dist/prettier/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { Config, Options } from "prettier";
|
|
2
|
-
import type { Options as JSDocPrettier } from "prettier-plugin-jsdoc";
|
|
3
2
|
import type { MultilineArrayOptions } from "prettier-plugin-multiline-arrays";
|
|
4
3
|
import type { PluginConfig as SveltePrettier } from "prettier-plugin-svelte";
|
|
5
4
|
import type { PluginOptions as TailwindPrettier } from "prettier-plugin-tailwindcss";
|
|
6
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Объединенный тип конфигурации `prettier`, включающий настройки всех используемых плагинов
|
|
7
|
+
*/
|
|
8
|
+
export type PrettierConfig = TailwindPrettier & Config & Partial<MultilineArrayOptions> & SveltePrettier;
|
|
7
9
|
/**
|
|
8
10
|
* Опции конфигурации для {@link definePrettierConfig}
|
|
9
11
|
*/
|
|
@@ -12,7 +14,6 @@ export interface PrettierConfigOptions {
|
|
|
12
14
|
* Порог длины для переноса массивов
|
|
13
15
|
*
|
|
14
16
|
* @default 3
|
|
15
|
-
*
|
|
16
17
|
* @alias MultilineArrayOptions.multilineArraysWrapThreshold
|
|
17
18
|
*
|
|
18
19
|
* @see https://www.npmjs.com/package/prettier-plugin-multiline-arrays
|
|
@@ -23,52 +24,63 @@ export interface PrettierConfigOptions {
|
|
|
23
24
|
*
|
|
24
25
|
* @see https://www.npmjs.com/package/prettier-plugin-tailwindcss
|
|
25
26
|
*/
|
|
26
|
-
tailwind
|
|
27
|
+
tailwind?: {
|
|
27
28
|
/**
|
|
28
|
-
* Путь к конфигу Tailwind V4 (`./src/tailwind.css`)
|
|
29
|
+
* Путь к конфигу Tailwind V4 (например, `./src/tailwind.css`)
|
|
29
30
|
*
|
|
30
31
|
* @alias TailwindPrettier.tailwindStylesheet
|
|
31
|
-
*
|
|
32
32
|
* @see https://www.npmjs.com/package/prettier-plugin-tailwindcss
|
|
33
33
|
*/
|
|
34
34
|
stylesheet?: string;
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
|
-
* Переопределение конфига
|
|
38
|
-
*
|
|
39
|
-
* @see https://prettier.io/docs/options
|
|
40
|
-
* @see https://www.npmjs.com/package/prettier-plugin-tailwindcss
|
|
37
|
+
* Переопределение конфига Prettier
|
|
41
38
|
*/
|
|
42
|
-
|
|
39
|
+
overload?: PrettierConfig;
|
|
43
40
|
}
|
|
44
41
|
/**
|
|
45
|
-
*
|
|
42
|
+
* Создает готовый конфиг для **Prettier**
|
|
46
43
|
*
|
|
47
44
|
* Включает в себя плагины:
|
|
45
|
+
* - `prettier-plugin-svelte` - поддержка Svelte
|
|
46
|
+
* - `prettier-plugin-css-order` - сортировка CSS свойств
|
|
47
|
+
* - `prettier-plugin-multiline-arrays` - форматирование массивов
|
|
48
|
+
* - `prettier-plugin-tailwindcss` - сортировка классов Tailwind CSS
|
|
48
49
|
*
|
|
49
|
-
*
|
|
50
|
-
* -
|
|
51
|
-
* -
|
|
52
|
-
* -
|
|
53
|
-
* - Prettier-plugin-tailwindcss
|
|
54
|
-
*
|
|
55
|
-
* Используются:
|
|
56
|
-
*
|
|
57
|
-
* - Табы длинной 2
|
|
50
|
+
* Основные настройки:
|
|
51
|
+
* - Ширина таба: 2 пробела
|
|
52
|
+
* - Использование табов: true
|
|
53
|
+
* - Ширина строки: 150 символов
|
|
58
54
|
* - Двойные кавычки
|
|
55
|
+
* - Запятые в конце (es5)
|
|
56
|
+
* - Теги в одной строке с элементами
|
|
57
|
+
*
|
|
58
|
+
* @param {PrettierConfigOptions} [options] - Опции конфигурации
|
|
59
|
+
* @returns {PrettierConfig} Готовый конфиг Prettier
|
|
59
60
|
*
|
|
60
|
-
* @param {PrettierConfigOptions} [options]
|
|
61
|
-
* @returns {PrettierConfig}
|
|
62
61
|
* @see https://prettier.io
|
|
63
62
|
*/
|
|
64
63
|
export declare const definePrettierConfig: (options?: PrettierConfigOptions) => PrettierConfig;
|
|
65
64
|
/**
|
|
66
|
-
* Форматирование с помощью
|
|
65
|
+
* Форматирование кода с помощью **Prettier** используя конфиг из {@link definePrettierConfig}
|
|
67
66
|
*
|
|
68
|
-
* @
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* // Форматирование TypeScript кода
|
|
70
|
+
* const formatted = await pretty(`const x=1`, 'typescript');
|
|
71
|
+
*
|
|
72
|
+
* // Форматирование Svelte-компонента с кастомными опциями
|
|
73
|
+
* const formatted = await pretty(`<div class="bg-red-500 border border-blue-700">hello</div>`, 'svelte', {
|
|
74
|
+
* arraysWrapThreshold: 5,
|
|
75
|
+
* tailwind: { stylesheet: './src/tailwind.css' }
|
|
76
|
+
* });
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* @param {string} content - Исходный код для форматирования
|
|
80
|
+
* @param {Options["parser"] | "svelte"} parser - Парсер для определения типа кода
|
|
81
|
+
* @param {PrettierConfigOptions} [options] - Дополнительные опции конфигурации
|
|
82
|
+
* @returns {Promise<string>} Отформатированный код
|
|
83
|
+
*
|
|
84
|
+
* @see https://prettier.io/docs/api#format
|
|
73
85
|
*/
|
|
74
|
-
export declare const pretty: (content: string, parser: Options["parser"], options?: PrettierConfigOptions) => Promise<string>;
|
|
86
|
+
export declare const pretty: (content: string, parser: Options["parser"] | "svelte", options?: PrettierConfigOptions) => Promise<string>;
|
package/dist/prettier/index.js
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import { format } from "prettier";
|
|
2
2
|
// noinspection TypeScriptCheckImport (у пакета нет типов)
|
|
3
3
|
import * as css from "prettier-plugin-css-order";
|
|
4
|
-
import * as jsdoc from "prettier-plugin-jsdoc";
|
|
5
4
|
import * as arrays from "prettier-plugin-multiline-arrays";
|
|
6
5
|
import * as svelte from "prettier-plugin-svelte";
|
|
7
6
|
import * as tailwind from "prettier-plugin-tailwindcss";
|
|
8
7
|
/**
|
|
9
|
-
*
|
|
8
|
+
* Создает готовый конфиг для **Prettier**
|
|
10
9
|
*
|
|
11
10
|
* Включает в себя плагины:
|
|
11
|
+
* - `prettier-plugin-svelte` - поддержка Svelte
|
|
12
|
+
* - `prettier-plugin-css-order` - сортировка CSS свойств
|
|
13
|
+
* - `prettier-plugin-multiline-arrays` - форматирование массивов
|
|
14
|
+
* - `prettier-plugin-tailwindcss` - сортировка классов Tailwind CSS
|
|
12
15
|
*
|
|
13
|
-
*
|
|
14
|
-
* -
|
|
15
|
-
* -
|
|
16
|
-
* -
|
|
17
|
-
* - Prettier-plugin-tailwindcss
|
|
18
|
-
*
|
|
19
|
-
* Используются:
|
|
20
|
-
*
|
|
21
|
-
* - Табы длинной 2
|
|
16
|
+
* Основные настройки:
|
|
17
|
+
* - Ширина таба: 2 пробела
|
|
18
|
+
* - Использование табов: true
|
|
19
|
+
* - Ширина строки: 150 символов
|
|
22
20
|
* - Двойные кавычки
|
|
21
|
+
* - Запятые в конце (es5)
|
|
22
|
+
* - Теги в одной строке с элементами
|
|
23
|
+
*
|
|
24
|
+
* @param {PrettierConfigOptions} [options] - Опции конфигурации
|
|
25
|
+
* @returns {PrettierConfig} Готовый конфиг Prettier
|
|
23
26
|
*
|
|
24
|
-
* @param {PrettierConfigOptions} [options]
|
|
25
|
-
* @returns {PrettierConfig}
|
|
26
27
|
* @see https://prettier.io
|
|
27
28
|
*/
|
|
28
29
|
export const definePrettierConfig = (options) => ({
|
|
@@ -38,7 +39,6 @@ export const definePrettierConfig = (options) => ({
|
|
|
38
39
|
svelte,
|
|
39
40
|
css,
|
|
40
41
|
arrays,
|
|
41
|
-
jsdoc,
|
|
42
42
|
tailwind,
|
|
43
43
|
],
|
|
44
44
|
overrides: [
|
|
@@ -47,26 +47,36 @@ export const definePrettierConfig = (options) => ({
|
|
|
47
47
|
options: { parser: "svelte" },
|
|
48
48
|
},
|
|
49
49
|
],
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
jsdocCommentLineStrategy: "multiline",
|
|
53
|
-
...(options?.override ?? {}),
|
|
50
|
+
tailwindStylesheet: options?.tailwind?.stylesheet,
|
|
51
|
+
...(options?.overload ?? {}),
|
|
54
52
|
});
|
|
55
|
-
//...
|
|
56
53
|
const config = definePrettierConfig();
|
|
57
54
|
/**
|
|
58
|
-
* Форматирование с помощью
|
|
55
|
+
* Форматирование кода с помощью **Prettier** используя конфиг из {@link definePrettierConfig}
|
|
59
56
|
*
|
|
60
|
-
* @
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* // Форматирование TypeScript кода
|
|
60
|
+
* const formatted = await pretty(`const x=1`, 'typescript');
|
|
61
|
+
*
|
|
62
|
+
* // Форматирование Svelte-компонента с кастомными опциями
|
|
63
|
+
* const formatted = await pretty(`<div class="bg-red-500 border border-blue-700">hello</div>`, 'svelte', {
|
|
64
|
+
* arraysWrapThreshold: 5,
|
|
65
|
+
* tailwind: { stylesheet: './src/tailwind.css' }
|
|
66
|
+
* });
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @param {string} content - Исходный код для форматирования
|
|
70
|
+
* @param {Options["parser"] | "svelte"} parser - Парсер для определения типа кода
|
|
71
|
+
* @param {PrettierConfigOptions} [options] - Дополнительные опции конфигурации
|
|
72
|
+
* @returns {Promise<string>} Отформатированный код
|
|
73
|
+
*
|
|
74
|
+
* @see https://prettier.io/docs/api#format
|
|
65
75
|
*/
|
|
66
76
|
export const pretty = (content, parser, options) => format(content, {
|
|
67
77
|
...config,
|
|
68
78
|
parser,
|
|
69
79
|
multilineArraysWrapThreshold: options?.arraysWrapThreshold ?? 3,
|
|
70
|
-
tailwindStylesheet: options?.tailwind
|
|
71
|
-
...(options?.
|
|
80
|
+
tailwindStylesheet: options?.tailwind?.stylesheet,
|
|
81
|
+
...(options?.overload ?? {}),
|
|
72
82
|
});
|
package/dist/svelte/index.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ export interface SvelteConfigOptions {
|
|
|
7
7
|
* Адаптер серверной платформы
|
|
8
8
|
*
|
|
9
9
|
* @alias Config.kit.adapter
|
|
10
|
-
*
|
|
11
10
|
* @see https://svelte.dev/docs/kit/adapters
|
|
12
11
|
*/
|
|
13
12
|
adapter: Adapter;
|
|
@@ -15,7 +14,6 @@ export interface SvelteConfigOptions {
|
|
|
15
14
|
* Только руны
|
|
16
15
|
*
|
|
17
16
|
* @default true
|
|
18
|
-
*
|
|
19
17
|
* @alias Config.compilerOptions.runes
|
|
20
18
|
*
|
|
21
19
|
* @see https://svelte.dev/docs/svelte/what-are-runes
|
|
@@ -27,7 +25,6 @@ export interface SvelteConfigOptions {
|
|
|
27
25
|
* Отключить, если нужна возможность обращения с локалки на прод-приложения
|
|
28
26
|
*
|
|
29
27
|
* @alias Config.kit.csrf.checkOrigin
|
|
30
|
-
*
|
|
31
28
|
* @see https://svelte.dev/docs/kit/configuration#csrf
|
|
32
29
|
* @see https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#cross-site_request_forgery_csrf
|
|
33
30
|
*/
|
|
@@ -36,7 +33,6 @@ export interface SvelteConfigOptions {
|
|
|
36
33
|
* Алиасы путей
|
|
37
34
|
*
|
|
38
35
|
* @alias Config.kit.alias
|
|
39
|
-
*
|
|
40
36
|
* @see https://svelte.dev/docs/kit/configuration#alias
|
|
41
37
|
*/
|
|
42
38
|
alias?: Record<string, string>;
|
|
@@ -50,7 +46,6 @@ export interface SvelteConfigOptions {
|
|
|
50
46
|
* Путь к директории со статическими файлами
|
|
51
47
|
*
|
|
52
48
|
* @alias Config.kit.files.assets
|
|
53
|
-
*
|
|
54
49
|
* @see https://svelte.dev/docs/kit/configuration#files
|
|
55
50
|
*/
|
|
56
51
|
assets?: string;
|
|
@@ -58,7 +53,6 @@ export interface SvelteConfigOptions {
|
|
|
58
53
|
* Путь к главному `app.html` приложения
|
|
59
54
|
*
|
|
60
55
|
* @alias Config.kit.files.appTemplate
|
|
61
|
-
*
|
|
62
56
|
* @see https://svelte.dev/docs/kit/configuration#files
|
|
63
57
|
*/
|
|
64
58
|
app_html?: string;
|
|
@@ -66,7 +60,6 @@ export interface SvelteConfigOptions {
|
|
|
66
60
|
* Путь к `error.html` приложения
|
|
67
61
|
*
|
|
68
62
|
* @alias Config.kit.files.errorTemplate
|
|
69
|
-
*
|
|
70
63
|
* @see https://svelte.dev/docs/kit/configuration#files
|
|
71
64
|
*/
|
|
72
65
|
error_html?: string;
|
|
@@ -75,7 +68,6 @@ export interface SvelteConfigOptions {
|
|
|
75
68
|
* Глобусы включений для tsconfig-а
|
|
76
69
|
*
|
|
77
70
|
* @alias Config.kit.typescript.config.include
|
|
78
|
-
*
|
|
79
71
|
* @see @https://svelte.dev/docs/kit/configuration#typescript
|
|
80
72
|
* @see https://www.typescriptlang.org/tsconfig/#include
|
|
81
73
|
*/
|
|
@@ -84,14 +76,13 @@ export interface SvelteConfigOptions {
|
|
|
84
76
|
* Глобусы исключений для tsconfig-а
|
|
85
77
|
*
|
|
86
78
|
* @alias Config.kit.typescript.config.exclude
|
|
87
|
-
*
|
|
88
79
|
* @see @https://svelte.dev/docs/kit/configuration#typescript
|
|
89
80
|
* @see https://www.typescriptlang.org/tsconfig/#exclude
|
|
90
81
|
*/
|
|
91
82
|
exclude?: string[];
|
|
92
83
|
}
|
|
93
84
|
/**
|
|
94
|
-
* Реструктурированная конфигурация приложений на
|
|
85
|
+
* Реструктурированная конфигурация приложений на **SvelteKit**
|
|
95
86
|
*
|
|
96
87
|
* - По умолчанию **только** руны
|
|
97
88
|
* - Подключён VitePreprocess (@sveltejs/vite-plugin-svelte)
|
|
@@ -99,6 +90,7 @@ export interface SvelteConfigOptions {
|
|
|
99
90
|
*
|
|
100
91
|
* @param {SvelteConfigOptions} options
|
|
101
92
|
* @returns {Config}
|
|
93
|
+
*
|
|
102
94
|
* @see https://svelte.dev/docs/kit/introduction
|
|
103
95
|
* @see https://svelte.dev/docs/kit/integrations#vitePreprocess
|
|
104
96
|
* @see https://www.typescriptlang.org/tsconfig
|
package/dist/svelte/index.js
CHANGED
|
@@ -5,7 +5,7 @@ const getOptionalObject = (value) => (isObject(value) ? value : {});
|
|
|
5
5
|
const getOptionalArray = (value) => (Array.isArray(value) ? value : []);
|
|
6
6
|
const setifyArray = (array) => Array.from(new Set(array));
|
|
7
7
|
/**
|
|
8
|
-
* Реструктурированная конфигурация приложений на
|
|
8
|
+
* Реструктурированная конфигурация приложений на **SvelteKit**
|
|
9
9
|
*
|
|
10
10
|
* - По умолчанию **только** руны
|
|
11
11
|
* - Подключён VitePreprocess (@sveltejs/vite-plugin-svelte)
|
|
@@ -13,6 +13,7 @@ const setifyArray = (array) => Array.from(new Set(array));
|
|
|
13
13
|
*
|
|
14
14
|
* @param {SvelteConfigOptions} options
|
|
15
15
|
* @returns {Config}
|
|
16
|
+
*
|
|
16
17
|
* @see https://svelte.dev/docs/kit/introduction
|
|
17
18
|
* @see https://svelte.dev/docs/kit/integrations#vitePreprocess
|
|
18
19
|
* @see https://www.typescriptlang.org/tsconfig
|
package/dist/svelte/package.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ export interface SveltePackageConfigOptions {
|
|
|
7
7
|
* Только руны
|
|
8
8
|
*
|
|
9
9
|
* @default true
|
|
10
|
-
*
|
|
11
10
|
* @alias Config.compilerOptions.runes
|
|
12
11
|
*
|
|
13
12
|
* @see https://svelte.dev/docs/svelte/what-are-runes
|
|
@@ -17,7 +16,6 @@ export interface SveltePackageConfigOptions {
|
|
|
17
16
|
* Добавляет алиас `{ "#": "src" }`
|
|
18
17
|
*
|
|
19
18
|
* @default true
|
|
20
|
-
*
|
|
21
19
|
* @alias Config.kit.alias
|
|
22
20
|
*
|
|
23
21
|
* @see https://svelte.dev/docs/kit/configuration#alias
|
|
@@ -27,7 +25,6 @@ export interface SveltePackageConfigOptions {
|
|
|
27
25
|
* Алиасы путей
|
|
28
26
|
*
|
|
29
27
|
* @alias Config.kit.alias
|
|
30
|
-
*
|
|
31
28
|
* @see https://svelte.dev/docs/kit/configuration#alias
|
|
32
29
|
*/
|
|
33
30
|
alias?: Record<string, string>;
|
|
@@ -42,7 +39,7 @@ export interface SveltePackageConfigOptions {
|
|
|
42
39
|
path?: string;
|
|
43
40
|
}
|
|
44
41
|
/**
|
|
45
|
-
* Реструктурированная конфигурация для
|
|
42
|
+
* Реструктурированная конфигурация для **@sveltejs/package**
|
|
46
43
|
*
|
|
47
44
|
* - По умолчанию **только** руны.
|
|
48
45
|
* - Подключён VitePreprocess (@sveltejs/vite-plugin-svelte).
|
package/dist/svelte/package.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
|
|
2
2
|
/**
|
|
3
|
-
* Реструктурированная конфигурация для
|
|
3
|
+
* Реструктурированная конфигурация для **@sveltejs/package**
|
|
4
4
|
*
|
|
5
5
|
* - По умолчанию **только** руны.
|
|
6
6
|
* - Подключён VitePreprocess (@sveltejs/vite-plugin-svelte).
|
|
@@ -38,7 +38,7 @@ export const defineSveltePackageConfig = (options) => ({
|
|
|
38
38
|
lib: options?.path ?? "./src",
|
|
39
39
|
},
|
|
40
40
|
alias: {
|
|
41
|
-
...(options?.isolate ? { "#": "src" }
|
|
41
|
+
...(!options?.isolate ? {} : { "#": "src" }),
|
|
42
42
|
...(options?.alias ?? {}),
|
|
43
43
|
},
|
|
44
44
|
},
|
package/dist/vite/index.d.ts
CHANGED
|
@@ -5,10 +5,9 @@ import type { ViteUserConfig } from "vitest/config";
|
|
|
5
5
|
*/
|
|
6
6
|
export interface ViteConfigOptions {
|
|
7
7
|
/**
|
|
8
|
-
* Путь к директории, где читает .env-файлы. Отключено,
|
|
8
|
+
* Путь к директории, где читает .env-файлы. Отключено, так как предполагается использование **dotenv**
|
|
9
9
|
*
|
|
10
10
|
* @default false
|
|
11
|
-
*
|
|
12
11
|
* @alias ViteUserConfig.envDir
|
|
13
12
|
*
|
|
14
13
|
* @see https://vite.dev/config/shared-options.html#envdir
|
|
@@ -52,16 +51,17 @@ export interface ViteConfigOptions {
|
|
|
52
51
|
plugins?: PluginOption[];
|
|
53
52
|
}
|
|
54
53
|
/**
|
|
55
|
-
* Реструктурированная конфигурация для
|
|
54
|
+
* Реструктурированная конфигурация для **Vite** через **Vitest**
|
|
56
55
|
*
|
|
57
|
-
* - По умолчанию отключено чтение env-файлов
|
|
58
|
-
* - "PUBLIC_"
|
|
59
|
-
* - Строгая конфигурация порта сервера
|
|
56
|
+
* - По умолчанию отключено чтение env-файлов Vite (предполагается использование **dotenv**)
|
|
57
|
+
* - Префикс "PUBLIC_" для публичных env-переменных
|
|
58
|
+
* - Строгая конфигурация порта сервера по умолчанию
|
|
60
59
|
* - По умолчанию путь к тестам "./src/**_/*.{test,spec}.{ts,js}"
|
|
61
60
|
*
|
|
62
61
|
* @param {ViteConfigOptions} [options]
|
|
63
62
|
* @param {ViteUserConfig["test"]} [test]
|
|
64
63
|
* @returns {ViteUserConfig}
|
|
64
|
+
*
|
|
65
65
|
* @see https://vite.dev/ Документация Vite
|
|
66
66
|
* @see https://vitest.dev/ Документация Vitest
|
|
67
67
|
*/
|
package/dist/vite/index.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { defineConfig } from "vitest/config";
|
|
2
2
|
/**
|
|
3
|
-
* Реструктурированная конфигурация для
|
|
3
|
+
* Реструктурированная конфигурация для **Vite** через **Vitest**
|
|
4
4
|
*
|
|
5
|
-
* - По умолчанию отключено чтение env-файлов
|
|
6
|
-
* - "PUBLIC_"
|
|
7
|
-
* - Строгая конфигурация порта сервера
|
|
5
|
+
* - По умолчанию отключено чтение env-файлов Vite (предполагается использование **dotenv**)
|
|
6
|
+
* - Префикс "PUBLIC_" для публичных env-переменных
|
|
7
|
+
* - Строгая конфигурация порта сервера по умолчанию
|
|
8
8
|
* - По умолчанию путь к тестам "./src/**_/*.{test,spec}.{ts,js}"
|
|
9
9
|
*
|
|
10
10
|
* @param {ViteConfigOptions} [options]
|
|
11
11
|
* @param {ViteUserConfig["test"]} [test]
|
|
12
12
|
* @returns {ViteUserConfig}
|
|
13
|
+
*
|
|
13
14
|
* @see https://vite.dev/ Документация Vite
|
|
14
15
|
* @see https://vitest.dev/ Документация Vitest
|
|
15
16
|
*/
|
package/dist/vite/proxy.d.ts
CHANGED
|
@@ -23,12 +23,24 @@ export interface ViteProxyConfigOptions {
|
|
|
23
23
|
changeOrigin?: boolean;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
* Создания прокси-конфига для
|
|
27
|
-
*
|
|
26
|
+
* Создания прокси-конфига для **Vite**.
|
|
28
27
|
* Используется для проксирования запросов на основной сервер у приложений
|
|
29
28
|
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* export default defineConfig({
|
|
32
|
+
* server: {
|
|
33
|
+
* proxy: defineViteProxyConfig({
|
|
34
|
+
* domain: "http://localhost:3000",
|
|
35
|
+
* prefix: "/api"
|
|
36
|
+
* })
|
|
37
|
+
* }
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
30
41
|
* @param {ViteProxyConfigOptions} options
|
|
31
42
|
* @returns {ServerOptions["proxy"]}
|
|
43
|
+
*
|
|
32
44
|
* @see https://vite.dev/config/server-options.html#server-proxy
|
|
33
45
|
*/
|
|
34
46
|
export declare const defineViteProxyConfig: (options: ViteProxyConfigOptions) => ServerOptions["proxy"];
|
package/dist/vite/proxy.js
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Создания прокси-конфига для
|
|
3
|
-
*
|
|
2
|
+
* Создания прокси-конфига для **Vite**.
|
|
4
3
|
* Используется для проксирования запросов на основной сервер у приложений
|
|
5
4
|
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* export default defineConfig({
|
|
8
|
+
* server: {
|
|
9
|
+
* proxy: defineViteProxyConfig({
|
|
10
|
+
* domain: "http://localhost:3000",
|
|
11
|
+
* prefix: "/api"
|
|
12
|
+
* })
|
|
13
|
+
* }
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
6
17
|
* @param {ViteProxyConfigOptions} options
|
|
7
18
|
* @returns {ServerOptions["proxy"]}
|
|
19
|
+
*
|
|
8
20
|
* @see https://vite.dev/config/server-options.html#server-proxy
|
|
9
21
|
*/
|
|
10
22
|
export const defineViteProxyConfig = (options) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nemigo/configs",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Vlad Logvin",
|
|
@@ -80,15 +80,14 @@
|
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"@eslint/compat": "1.4.0",
|
|
83
|
-
"@eslint/js": "9.
|
|
83
|
+
"@eslint/js": "9.38.0",
|
|
84
84
|
"@types/eslint": "9.6.1",
|
|
85
85
|
"eslint-plugin-svelte": "3.12.4",
|
|
86
86
|
"globals": "16.4.0",
|
|
87
87
|
"prettier-plugin-css-order": "2.1.2",
|
|
88
|
-
"prettier-plugin-jsdoc": "1.3.3",
|
|
89
88
|
"prettier-plugin-multiline-arrays": "4.0.3",
|
|
90
89
|
"prettier-plugin-svelte": "3.4.0",
|
|
91
|
-
"prettier-plugin-tailwindcss": "0.7.
|
|
90
|
+
"prettier-plugin-tailwindcss": "0.7.1",
|
|
92
91
|
"typescript-eslint": "8.46.1"
|
|
93
92
|
}
|
|
94
93
|
}
|