@nemigo/configs 0.1.0 → 0.2.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.d.ts +2 -2
- package/dist/eslint.types.js +1 -3
- package/dist/prettier.d.ts +1 -1
- package/dist/prettier.js +1 -1
- package/dist/svelte/index.d.ts +65 -0
- package/dist/svelte/index.js +86 -0
- package/dist/svelte/package.d.ts +8 -2
- package/dist/svelte/package.js +3 -8
- package/dist/vite/index.d.ts +50 -0
- package/dist/vite/index.js +61 -0
- package/dist/vite/proxy.d.ts +30 -0
- package/dist/vite/proxy.js +15 -0
- package/package.json +13 -1
package/dist/eslint.d.ts
CHANGED
|
@@ -13,11 +13,11 @@ export interface EslintConfigOptions {
|
|
|
13
13
|
*/
|
|
14
14
|
strict?: boolean;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Путь к проекту (`import.meta.dirname`) для более сложного линтинга типов (TypeChecked)
|
|
17
17
|
*/
|
|
18
18
|
service?: string;
|
|
19
19
|
/**
|
|
20
|
-
* Путь к
|
|
20
|
+
* Путь к иному .eslint.ignore
|
|
21
21
|
*/
|
|
22
22
|
ignore?: string;
|
|
23
23
|
}
|
package/dist/eslint.types.js
CHANGED
package/dist/prettier.d.ts
CHANGED
|
@@ -8,6 +8,6 @@ export declare const defineConfig: (tailwindStylesheet?: string) => Config;
|
|
|
8
8
|
*
|
|
9
9
|
* @param content - содержимое
|
|
10
10
|
* @param parser - какой парсер
|
|
11
|
-
* @param tailwindStylesheet - путь к конфигу Tailwind V4 (`./src/tailwind.css`)
|
|
11
|
+
* @param tailwindStylesheet - путь к конфигу Tailwind V4 (ex. `./src/tailwind.css`)
|
|
12
12
|
*/
|
|
13
13
|
export declare const pretty: (content: string, parser: Options["parser"], tailwindStylesheet?: string) => Promise<string>;
|
package/dist/prettier.js
CHANGED
|
@@ -37,6 +37,6 @@ const config = defineConfig();
|
|
|
37
37
|
*
|
|
38
38
|
* @param content - содержимое
|
|
39
39
|
* @param parser - какой парсер
|
|
40
|
-
* @param tailwindStylesheet - путь к конфигу Tailwind V4 (`./src/tailwind.css`)
|
|
40
|
+
* @param tailwindStylesheet - путь к конфигу Tailwind V4 (ex. `./src/tailwind.css`)
|
|
41
41
|
*/
|
|
42
42
|
export const pretty = (content, parser, tailwindStylesheet) => format(content, { ...config, parser, tailwindStylesheet });
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { Adapter, Config } from "@sveltejs/kit";
|
|
2
|
+
export interface SvelteConfigOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Адаптер серверной платформы
|
|
5
|
+
*
|
|
6
|
+
* @see https://svelte.dev/docs/kit/adapters
|
|
7
|
+
*/
|
|
8
|
+
adapter: Adapter;
|
|
9
|
+
/**
|
|
10
|
+
* Только руны
|
|
11
|
+
*
|
|
12
|
+
* @see https://svelte.dev/docs/svelte/what-are-runes
|
|
13
|
+
*
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
runes?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Проверка источника запроса (CSRF-защита)
|
|
19
|
+
*
|
|
20
|
+
* Отключить, если нужна возможность обращения с локалки на прод-приложения
|
|
21
|
+
*
|
|
22
|
+
* @see https://svelte.dev/docs/kit/configuration#csrf
|
|
23
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#cross-site_request_forgery_csrf
|
|
24
|
+
*
|
|
25
|
+
* @default `true`
|
|
26
|
+
*/
|
|
27
|
+
csrfCheckOrigin?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Алиасы путей
|
|
30
|
+
*
|
|
31
|
+
* @default {}
|
|
32
|
+
*/
|
|
33
|
+
alias?: Record<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Переопледеление путей кита
|
|
36
|
+
*/
|
|
37
|
+
files?: {
|
|
38
|
+
/**
|
|
39
|
+
* @default "./static"
|
|
40
|
+
*/
|
|
41
|
+
assets?: string;
|
|
42
|
+
/**
|
|
43
|
+
* @default "./src/app.html"
|
|
44
|
+
*/
|
|
45
|
+
app_html?: string;
|
|
46
|
+
/**
|
|
47
|
+
* @default "./src/error.html"
|
|
48
|
+
*/
|
|
49
|
+
error_html?: string;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Глобусы исключений из tsconfig-а
|
|
53
|
+
*/
|
|
54
|
+
exclude?: string[];
|
|
55
|
+
/**
|
|
56
|
+
* Глобусы включений из tsconfig-а
|
|
57
|
+
*/
|
|
58
|
+
include?: string[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Конфиг для приложений на `@sveltejs/kit`
|
|
62
|
+
*
|
|
63
|
+
* @see https://svelte.dev/docs/kit/introduction
|
|
64
|
+
*/
|
|
65
|
+
export declare const defineConfig: (options: SvelteConfigOptions) => Config;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
|
|
2
|
+
//...
|
|
3
|
+
const isObject = (value) => typeof value === "object" && value !== null;
|
|
4
|
+
const getOptionalObject = (value) => (isObject(value) ? value : {});
|
|
5
|
+
const getOptionalArray = (value) => (Array.isArray(value) ? value : []);
|
|
6
|
+
const setifyArray = (array) => Array.from(new Set(array));
|
|
7
|
+
/**
|
|
8
|
+
* Конфиг для приложений на `@sveltejs/kit`
|
|
9
|
+
*
|
|
10
|
+
* @see https://svelte.dev/docs/kit/introduction
|
|
11
|
+
*/
|
|
12
|
+
export const defineConfig = (options) => ({
|
|
13
|
+
/**
|
|
14
|
+
* Настройки поведения svelte-компилятора
|
|
15
|
+
*
|
|
16
|
+
* @see https://svelte.dev/docs/svelte/svelte-compiler#CompileOptions
|
|
17
|
+
*/
|
|
18
|
+
compilerOptions: {
|
|
19
|
+
runes: options.runes ?? true,
|
|
20
|
+
/**
|
|
21
|
+
* Использование современного AST (не знаю, на что влияет)
|
|
22
|
+
*/
|
|
23
|
+
modernAst: true,
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* Расширение поддержки всякого в svelte (в т.ч. и полной для typescript)
|
|
27
|
+
*
|
|
28
|
+
* @see https://svelte.dev/docs/kit/integrations
|
|
29
|
+
*/
|
|
30
|
+
preprocess: vitePreprocess({ script: true }),
|
|
31
|
+
kit: {
|
|
32
|
+
adapter: options.adapter,
|
|
33
|
+
csrf: {
|
|
34
|
+
checkOrigin: options.csrfCheckOrigin,
|
|
35
|
+
},
|
|
36
|
+
alias: options.alias,
|
|
37
|
+
files: {
|
|
38
|
+
assets: options?.files?.assets,
|
|
39
|
+
appTemplate: options?.files?.app_html,
|
|
40
|
+
errorTemplate: options?.files?.error_html,
|
|
41
|
+
},
|
|
42
|
+
/**
|
|
43
|
+
* Переопределение и дополнения к `tsconfig.json`
|
|
44
|
+
*
|
|
45
|
+
* @see https://svelte.dev/docs/kit/configuration#typescript
|
|
46
|
+
*/
|
|
47
|
+
typescript: {
|
|
48
|
+
config: (config) => {
|
|
49
|
+
config["compilerOptions"] = {
|
|
50
|
+
...getOptionalObject(config["compilerOptions"]),
|
|
51
|
+
allowJs: true,
|
|
52
|
+
checkJs: true,
|
|
53
|
+
target: "ES2023", // override
|
|
54
|
+
module: "NodeNext", // override
|
|
55
|
+
moduleResolution: "NodeNext", // override
|
|
56
|
+
// noEmit: true,
|
|
57
|
+
strict: true,
|
|
58
|
+
noImplicitAny: false,
|
|
59
|
+
// isolatedModules: true,
|
|
60
|
+
esModuleInterop: true,
|
|
61
|
+
allowSyntheticDefaultImports: true,
|
|
62
|
+
// verbatimModuleSyntax: true,
|
|
63
|
+
resolveJsonModule: true,
|
|
64
|
+
skipLibCheck: true,
|
|
65
|
+
disableSizeLimit: true,
|
|
66
|
+
erasableSyntaxOnly: true,
|
|
67
|
+
};
|
|
68
|
+
config["exclude"] = setifyArray([
|
|
69
|
+
...getOptionalArray(config["exclude"]),
|
|
70
|
+
"../**/trash/**",
|
|
71
|
+
"../**/drafts/**",
|
|
72
|
+
...(options.exclude ?? []),
|
|
73
|
+
]);
|
|
74
|
+
config["include"] = setifyArray([
|
|
75
|
+
...getOptionalArray(config["include"]),
|
|
76
|
+
"../scripts",
|
|
77
|
+
"../types",
|
|
78
|
+
"../*.ts",
|
|
79
|
+
"../*.js",
|
|
80
|
+
...(options.include ?? []),
|
|
81
|
+
]);
|
|
82
|
+
return config;
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
});
|
package/dist/svelte/package.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { Config } from "@sveltejs/kit";
|
|
2
|
-
export interface
|
|
2
|
+
export interface SveltePackageConfigOptions {
|
|
3
3
|
/**
|
|
4
|
+
* Только руны
|
|
5
|
+
*
|
|
6
|
+
* @see https://svelte.dev/docs/svelte/what-are-runes
|
|
7
|
+
*
|
|
4
8
|
* @default true
|
|
5
9
|
*/
|
|
6
10
|
runes?: boolean;
|
|
@@ -11,8 +15,10 @@ export interface SveltePackageOptions {
|
|
|
11
15
|
*/
|
|
12
16
|
isolate?: boolean;
|
|
13
17
|
/**
|
|
18
|
+
* Алиасы путей
|
|
19
|
+
*
|
|
14
20
|
* @default {}
|
|
15
21
|
*/
|
|
16
22
|
alias?: Record<string, string>;
|
|
17
23
|
}
|
|
18
|
-
export declare const definePackageConfig: ({ runes, isolate, alias }?:
|
|
24
|
+
export declare const definePackageConfig: ({ runes, isolate, alias }?: SveltePackageConfigOptions) => Config;
|
package/dist/svelte/package.js
CHANGED
|
@@ -6,11 +6,6 @@ export const definePackageConfig = ({ runes = true, isolate = true, alias = {} }
|
|
|
6
6
|
* @see https://svelte.dev/docs/svelte/svelte-compiler#CompileOptions
|
|
7
7
|
*/
|
|
8
8
|
compilerOptions: {
|
|
9
|
-
/**
|
|
10
|
-
* Только руны
|
|
11
|
-
*
|
|
12
|
-
* @see https://svelte.dev/docs/svelte/what-are-runes
|
|
13
|
-
*/
|
|
14
9
|
runes,
|
|
15
10
|
/**
|
|
16
11
|
* Использование современного AST
|
|
@@ -23,11 +18,11 @@ export const definePackageConfig = ({ runes = true, isolate = true, alias = {} }
|
|
|
23
18
|
* @see https://svelte.dev/docs/kit/integrations
|
|
24
19
|
*/
|
|
25
20
|
preprocess: vitePreprocess({ script: true }),
|
|
26
|
-
/**
|
|
27
|
-
* Алиас корня пакета и его путь (+ алиасы от проекта)
|
|
28
|
-
*/
|
|
29
21
|
kit: {
|
|
30
22
|
files: {
|
|
23
|
+
/**
|
|
24
|
+
* Путь к библиотеке
|
|
25
|
+
*/
|
|
31
26
|
lib: "src",
|
|
32
27
|
},
|
|
33
28
|
alias: {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { BuildOptions, PluginOption, ServerOptions } from "vite";
|
|
2
|
+
import type { ViteUserConfig } from "vitest/config";
|
|
3
|
+
/**
|
|
4
|
+
* Настройка конфигурации для {@link defineConfig}
|
|
5
|
+
*/
|
|
6
|
+
export interface ViteConfigOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Порт приложения
|
|
9
|
+
*
|
|
10
|
+
* @see https://vite.dev/config/server-options.html#server-port
|
|
11
|
+
*/
|
|
12
|
+
port?: ServerOptions["port"];
|
|
13
|
+
/**
|
|
14
|
+
* Отключение использования фиксированного порта
|
|
15
|
+
*
|
|
16
|
+
* @see https://vite.dev/config/server-options.html#server-strictport
|
|
17
|
+
*/
|
|
18
|
+
offStrictPort?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Конфигурация минификации при сборке
|
|
21
|
+
*
|
|
22
|
+
* @see https://vite.dev/config/build-options.html#build-minify
|
|
23
|
+
*/
|
|
24
|
+
minify?: BuildOptions["minify"];
|
|
25
|
+
/**
|
|
26
|
+
* Проксирование запросов
|
|
27
|
+
*
|
|
28
|
+
* @see https://vite.dev/config/server-options.html#server-proxy
|
|
29
|
+
*/
|
|
30
|
+
proxy?: ServerOptions["proxy"];
|
|
31
|
+
/**
|
|
32
|
+
* Разрешение доступа к общим папкам
|
|
33
|
+
*
|
|
34
|
+
* @see https://vite.dev/config/server-options.html#server-fs-allow
|
|
35
|
+
*/
|
|
36
|
+
allow?: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Различные плагины
|
|
39
|
+
*
|
|
40
|
+
* @see https://vite.dev/config/shared-options.html#plugins
|
|
41
|
+
*/
|
|
42
|
+
plugins?: PluginOption[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Реструктурированная конфигурация `vite` через `vitest`
|
|
46
|
+
*
|
|
47
|
+
* @see https://vite.dev/ Документация Vite
|
|
48
|
+
* @see https://vitest.dev/ Документация Vitest
|
|
49
|
+
*/
|
|
50
|
+
export declare const defineConfig: (options?: ViteConfigOptions, test?: ViteUserConfig["test"]) => ViteUserConfig;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { defineConfig as defineVitestConfig } from "vitest/config";
|
|
2
|
+
/**
|
|
3
|
+
* Реструктурированная конфигурация `vite` через `vitest`
|
|
4
|
+
*
|
|
5
|
+
* @see https://vite.dev/ Документация Vite
|
|
6
|
+
* @see https://vitest.dev/ Документация Vitest
|
|
7
|
+
*/
|
|
8
|
+
export const defineConfig = (options = {}, test) => defineVitestConfig({
|
|
9
|
+
/**
|
|
10
|
+
* Где смотрит .env-файлы. Отключено, т.к. файлы читаются через dotenv
|
|
11
|
+
*
|
|
12
|
+
* @see https://vite.dev/config/shared-options.html#envdir
|
|
13
|
+
*/
|
|
14
|
+
envDir: false,
|
|
15
|
+
/**
|
|
16
|
+
* Префикс публичных env-переменных (чтобы совпадало с svelte-kit)
|
|
17
|
+
*
|
|
18
|
+
* @see https://vite.dev/config/shared-options.html#envprefix
|
|
19
|
+
*/
|
|
20
|
+
envPrefix: "PUBLIC_",
|
|
21
|
+
/**
|
|
22
|
+
* Конфигурация сервера
|
|
23
|
+
*
|
|
24
|
+
* @see https://vite.dev/config/server-options.html
|
|
25
|
+
*/
|
|
26
|
+
server: {
|
|
27
|
+
port: options.port,
|
|
28
|
+
/**
|
|
29
|
+
* Выдаёт ошибку, если порт занят
|
|
30
|
+
*
|
|
31
|
+
* @see https://vite.dev/config/server-options.html#server-strictport
|
|
32
|
+
*/
|
|
33
|
+
strictPort: !options.offStrictPort,
|
|
34
|
+
proxy: options.proxy,
|
|
35
|
+
fs: {
|
|
36
|
+
allow: options.allow,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
/**
|
|
40
|
+
* Конфигурация сборки
|
|
41
|
+
*
|
|
42
|
+
* @see https://vite.dev/config/build-options.html
|
|
43
|
+
*/
|
|
44
|
+
build: {
|
|
45
|
+
minify: options.minify,
|
|
46
|
+
},
|
|
47
|
+
plugins: options.plugins,
|
|
48
|
+
/**
|
|
49
|
+
* Конфигурация `vitest`
|
|
50
|
+
*
|
|
51
|
+
* @see https://vitest.dev/config
|
|
52
|
+
*/
|
|
53
|
+
test: test ?? {
|
|
54
|
+
/**
|
|
55
|
+
* glob-путь к файлам тестов
|
|
56
|
+
*
|
|
57
|
+
* @see https://vitest.dev/config/#include
|
|
58
|
+
*/
|
|
59
|
+
include: ["src/**/*.{test,spec}.{ts,js}"],
|
|
60
|
+
},
|
|
61
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ServerOptions } from "vite";
|
|
2
|
+
/**
|
|
3
|
+
* Настройка конфигурации для {@link defineProxyConfig}
|
|
4
|
+
*/
|
|
5
|
+
export interface ViteProxyConfigOptions {
|
|
6
|
+
/**
|
|
7
|
+
* URL-адрес сервера, на который будет направляться прокси
|
|
8
|
+
*
|
|
9
|
+
* @example `http://localhost:3000`
|
|
10
|
+
*/
|
|
11
|
+
domain: string;
|
|
12
|
+
/**
|
|
13
|
+
* Префикс маршрута, который будет перенаправляться.
|
|
14
|
+
*
|
|
15
|
+
* @example `/api/`
|
|
16
|
+
*/
|
|
17
|
+
prefix: string;
|
|
18
|
+
/**
|
|
19
|
+
* Определяет, должен ли изменяться заголовок `Origin` при проксировании
|
|
20
|
+
*
|
|
21
|
+
* @default true
|
|
22
|
+
*/
|
|
23
|
+
changeOrigin?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Создания прокси-конфига для Vite
|
|
27
|
+
*
|
|
28
|
+
* Используется для проксирования запросов на основной сервер у приложений
|
|
29
|
+
*/
|
|
30
|
+
export declare const defineProxyConfig: ({ domain: target, prefix, changeOrigin }: ViteProxyConfigOptions) => ServerOptions["proxy"];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Создания прокси-конфига для Vite
|
|
3
|
+
*
|
|
4
|
+
* Используется для проксирования запросов на основной сервер у приложений
|
|
5
|
+
*/
|
|
6
|
+
export const defineProxyConfig = ({ domain: target, prefix, changeOrigin = true }) => {
|
|
7
|
+
const pad = (v) => v.toString().padStart(2, "0");
|
|
8
|
+
const now = new Date();
|
|
9
|
+
const hours = pad(now.getHours());
|
|
10
|
+
const mins = pad(now.getMinutes());
|
|
11
|
+
const secs = pad(now.getSeconds());
|
|
12
|
+
const PROXY = "\x1b[1m\x1b[96m[PROXY]\x1b[0m\x1b[22m";
|
|
13
|
+
console.log(`${hours}:${mins}:${secs} ${PROXY} ${target} \n`);
|
|
14
|
+
return { [prefix]: { target, changeOrigin } };
|
|
15
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nemigo/configs",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Vlad Logvin",
|
|
@@ -32,12 +32,24 @@
|
|
|
32
32
|
"types": "./dist/prettier.d.ts",
|
|
33
33
|
"default": "./dist/prettier.js"
|
|
34
34
|
},
|
|
35
|
+
"./svelte": {
|
|
36
|
+
"types": "./dist/svelte/index.d.ts",
|
|
37
|
+
"default": "./dist/svelte/index.js"
|
|
38
|
+
},
|
|
35
39
|
"./svelte/package": {
|
|
36
40
|
"types": "./dist/svelte/package.d.ts",
|
|
37
41
|
"default": "./dist/svelte/package.js"
|
|
38
42
|
},
|
|
39
43
|
"./typescript.json": {
|
|
40
44
|
"default": "./typescript.json"
|
|
45
|
+
},
|
|
46
|
+
"./vite": {
|
|
47
|
+
"types": "./dist/vite/index.d.ts",
|
|
48
|
+
"default": "./dist/vite/index.js"
|
|
49
|
+
},
|
|
50
|
+
"./vite/proxy": {
|
|
51
|
+
"types": "./dist/vite/proxy.d.ts",
|
|
52
|
+
"default": "./dist/vite/proxy.js"
|
|
41
53
|
}
|
|
42
54
|
},
|
|
43
55
|
"peerDependencies": {
|