@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.
@@ -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-правил tslint
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`) для более сложного линтинга типов (TypeChecked)
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
- * Путь к иному .eslint.ignore
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
- * Готовый flat-конфиг для `eslint`
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
- * - .eslint.ignore
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[];
@@ -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
- * Готовый flat-конфиг для `eslint`
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
- * - .eslint.ignore
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) => defineConfig(includeIgnoreFile(options?.ignore || join(import.meta.dirname, "../../.eslint.ignore"), "@nemigo/configs/.eslint.ignore"), jslint.configs.recommended, ...(options?.strict
28
- ? options?.service
29
- ? tslint.configs.strictTypeChecked
30
- : tslint.configs.strict
31
- : options?.service
32
- ? tslint.configs.recommendedTypeChecked
33
- : tslint.configs.recommended), options?.service
34
- ? {
35
- languageOptions: {
36
- parserOptions: {
37
- projectService: true,
38
- tsconfigRootDir: options.service,
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
- : {}, ...(options?.svelte ? svelteConfigs["flat/recommended"] : []),
43
- // prettier,
44
- // ...(svelte ? svelteConfigs["flat/prettier"] : []),
45
- {
46
- languageOptions: {
47
- globals: {
48
- ...globals.browser,
49
- ...globals.node,
50
- },
51
- },
52
- rules: {
53
- "@typescript-eslint/no-confusing-void-expression": 0,
54
- "@typescript-eslint/no-duplicate-type-constituents": 0,
55
- "@typescript-eslint/no-dynamic-delete": 0,
56
- "@typescript-eslint/no-empty-object-type": 0,
57
- "@typescript-eslint/no-explicit-any": 0,
58
- "@typescript-eslint/no-invalid-void-type": 0,
59
- "@typescript-eslint/no-non-null-asserted-optional-chain": 0,
60
- "@typescript-eslint/no-non-null-assertion": 0,
61
- "@typescript-eslint/no-redundant-type-constituents": 0,
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
- "@typescript-eslint/restrict-plus-operands": 0,
84
- "@typescript-eslint/restrict-template-expressions": 0,
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
- parserOptions: {
96
- projectService: true,
97
- extraFileExtensions: [".svelte"],
98
- parser: tslint.parser,
99
- svelteConfig: options?.svelte,
83
+ globals: {
84
+ ...globals.browser,
85
+ ...globals.node,
100
86
  },
101
87
  },
102
88
  rules: {
103
- "svelte/no-at-html-tags": 0,
104
- "svelte/no-navigation-without-resolve": 0,
105
- "svelte/prefer-svelte-reactivity": 0,
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
- : {}, ...rest);
123
+ });
124
+ acc.push(...rest);
125
+ return defineConfig(acc);
126
+ };
@@ -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>[];
@@ -1,2 +1 @@
1
- // Взято из @eslint/config-helpers/types (0.3.1), т.к. нужный тип (ConfigWithExtendsArray) не экспортируется пакетом
2
1
  export {};
@@ -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
- export type PrettierConfig = TailwindPrettier & Config & JSDocPrettier & Partial<MultilineArrayOptions> & SveltePrettier;
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
- override?: PrettierConfig;
39
+ overload?: PrettierConfig;
43
40
  }
44
41
  /**
45
- * Готовый конфиг для `prettier`
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
- * - Prettier-plugin-svelte
50
- * - Prettier-plugin-css-order
51
- * - Prettier-plugin-multiline-arrays
52
- * - Prettier-plugin-jsdoc
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
- * Форматирование с помощью `prettier` по сборке из {@link definePrettierConfig}
65
+ * Форматирование кода с помощью **Prettier** используя конфиг из {@link definePrettierConfig}
67
66
  *
68
- * @param {string} content
69
- * @param {Options["parser"]} parser
70
- * @param {PrettierConfigOptions} [options]
71
- * @returns {Promise<string>}
72
- * @see https://prettier.io
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>;
@@ -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
- * Готовый конфиг для `prettier`
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
- * - Prettier-plugin-svelte
14
- * - Prettier-plugin-css-order
15
- * - Prettier-plugin-multiline-arrays
16
- * - Prettier-plugin-jsdoc
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
- tsdoc: true,
51
- tailwindStylesheet: options?.tailwind.stylesheet,
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
- * Форматирование с помощью `prettier` по сборке из {@link definePrettierConfig}
55
+ * Форматирование кода с помощью **Prettier** используя конфиг из {@link definePrettierConfig}
59
56
  *
60
- * @param {string} content
61
- * @param {Options["parser"]} parser
62
- * @param {PrettierConfigOptions} [options]
63
- * @returns {Promise<string>}
64
- * @see https://prettier.io
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.stylesheet,
71
- ...(options?.override ?? {}),
80
+ tailwindStylesheet: options?.tailwind?.stylesheet,
81
+ ...(options?.overload ?? {}),
72
82
  });
@@ -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
- * Реструктурированная конфигурация приложений на `@sveltejs/kit`
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
@@ -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
- * Реструктурированная конфигурация приложений на `@sveltejs/kit`
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
@@ -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
- * Реструктурированная конфигурация для `@sveltejs/package`
42
+ * Реструктурированная конфигурация для **@sveltejs/package**
46
43
  *
47
44
  * - По умолчанию **только** руны.
48
45
  * - Подключён VitePreprocess (@sveltejs/vite-plugin-svelte).
@@ -1,6 +1,6 @@
1
1
  import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
2
2
  /**
3
- * Реструктурированная конфигурация для `@sveltejs/package`
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
  },
@@ -5,10 +5,9 @@ import type { ViteUserConfig } from "vitest/config";
5
5
  */
6
6
  export interface ViteConfigOptions {
7
7
  /**
8
- * Путь к директории, где читает .env-файлы. Отключено, т.к. файлы читаются через dotenv
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
- * Реструктурированная конфигурация для `vite` через `vitest`
54
+ * Реструктурированная конфигурация для **Vite** через **Vitest**
56
55
  *
57
- * - По умолчанию отключено чтение env-файлов
58
- * - "PUBLIC_" префикс для публичных env-переменных
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
  */
@@ -1,15 +1,16 @@
1
1
  import { defineConfig } from "vitest/config";
2
2
  /**
3
- * Реструктурированная конфигурация для `vite` через `vitest`
3
+ * Реструктурированная конфигурация для **Vite** через **Vitest**
4
4
  *
5
- * - По умолчанию отключено чтение env-файлов
6
- * - "PUBLIC_" префикс для публичных env-переменных
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
  */
@@ -23,12 +23,24 @@ export interface ViteProxyConfigOptions {
23
23
  changeOrigin?: boolean;
24
24
  }
25
25
  /**
26
- * Создания прокси-конфига для `vite`
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"];
@@ -1,10 +1,22 @@
1
1
  /**
2
- * Создания прокси-конфига для `vite`
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.0.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.37.0",
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.0",
90
+ "prettier-plugin-tailwindcss": "0.7.1",
92
91
  "typescript-eslint": "8.46.1"
93
92
  }
94
93
  }