@aamini/config 0.0.16 → 0.0.17

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/vite.d.mts CHANGED
@@ -1,81 +1,73 @@
1
- import { TestProjectConfiguration } from "vite-plus";
1
+ import { TestProjectConfiguration, UserConfig } from "vite-plus";
2
2
 
3
- //#region src/workspace.d.ts
4
- declare const workspaceConfig: {
5
- fmt: {
6
- singleQuote: boolean;
7
- semi: boolean;
8
- useTabs: boolean;
9
- experimentalTailwindcss: {};
10
- printWidth: number;
11
- experimentalSortPackageJson: boolean;
12
- proseWrap: string;
13
- ignorePatterns: string[];
14
- overrides: {
15
- files: string[];
16
- options: {
17
- useTabs: boolean;
18
- };
19
- }[];
20
- };
21
- lint: {
22
- plugins: string[];
23
- categories: {};
3
+ //#region src/vite.d.ts
4
+ declare const fmt: {
5
+ singleQuote: true;
6
+ semi: false;
7
+ useTabs: true;
8
+ experimentalTailwindcss: {};
9
+ printWidth: number;
10
+ experimentalSortPackageJson: boolean;
11
+ proseWrap: "always";
12
+ ignorePatterns: string[];
13
+ overrides: {
14
+ files: string[];
24
15
  options: {
25
- typeAware: boolean;
26
- typeCheck: boolean;
16
+ useTabs: false;
27
17
  };
28
- rules: {
29
- 'no-empty-pattern': string;
30
- 'no-console': (string | {
31
- allow: string[];
32
- })[];
18
+ }[];
19
+ };
20
+ declare const lint: {
21
+ plugins: ("eslint" | "react" | "unicorn" | "typescript" | "oxc" | "import" | "jsdoc" | "jsx-a11y" | "react-perf" | "promise" | "node")[];
22
+ categories: {};
23
+ options: {
24
+ typeAware: true;
25
+ typeCheck: true;
26
+ };
27
+ rules: {
28
+ 'no-empty-pattern': "off";
29
+ 'no-console': ["error", {
30
+ allow: string[];
31
+ }];
32
+ };
33
+ settings: {
34
+ 'jsx-a11y': {
35
+ components: {};
36
+ attributes: {};
33
37
  };
34
- settings: {
35
- 'jsx-a11y': {
36
- components: {};
37
- attributes: {};
38
- };
39
- react: {
40
- formComponents: any[];
41
- linkComponents: any[];
42
- };
43
- jsdoc: {
44
- ignorePrivate: boolean;
45
- ignoreInternal: boolean;
46
- ignoreReplacesDocs: boolean;
47
- overrideReplacesDocs: boolean;
48
- augmentsExtendsReplacesDocs: boolean;
49
- implementsReplacesDocs: boolean;
50
- exemptDestructuredRootsFromChecks: boolean;
51
- tagNamePreference: {};
52
- };
38
+ react: {
39
+ formComponents: any[];
40
+ linkComponents: any[];
53
41
  };
54
- env: {
55
- builtin: boolean;
42
+ jsdoc: {
43
+ ignorePrivate: false;
44
+ ignoreInternal: false;
45
+ ignoreReplacesDocs: true;
46
+ overrideReplacesDocs: true;
47
+ augmentsExtendsReplacesDocs: false;
48
+ implementsReplacesDocs: false;
49
+ exemptDestructuredRootsFromChecks: false;
50
+ tagNamePreference: {};
56
51
  };
57
- globals: {};
58
- ignorePatterns: string[];
59
52
  };
60
- staged: {
61
- '*.{js,ts,tsx}': string;
53
+ env: {
54
+ builtin: true;
62
55
  };
56
+ globals: {};
57
+ ignorePatterns: string[];
63
58
  };
64
- //#endregion
65
- //#region src/vite.d.ts
66
59
  interface ProjectOverrides {
67
60
  server?: TestProjectConfiguration;
68
61
  browser?: TestProjectConfiguration;
69
62
  }
70
- interface AppConfigOptions {
71
- root?: string;
72
- projectOverrides?: ProjectOverrides;
73
- }
63
+ declare const test: (projectOverrides?: ProjectOverrides) => UserConfig["test"];
74
64
  declare const createAppConfig: ({
75
65
  root,
76
66
  projectOverrides
77
- }?: AppConfigOptions) => Record<string, unknown>;
78
- declare const viteConfig: typeof createAppConfig;
67
+ }: {
68
+ root?: string;
69
+ projectOverrides?: ProjectOverrides;
70
+ }) => UserConfig;
79
71
  //#endregion
80
- export { AppConfigOptions, createAppConfig, viteConfig, workspaceConfig };
72
+ export { createAppConfig, fmt, lint, test };
81
73
  //# sourceMappingURL=vite.d.mts.map
package/dist/vite.mjs CHANGED
@@ -60,79 +60,113 @@ function createStylesPlugin() {
60
60
  sideEffectOnly: true
61
61
  });
62
62
  }
63
- const workspaceConfig = {
64
- fmt: {
65
- singleQuote: true,
66
- semi: false,
67
- useTabs: true,
68
- experimentalTailwindcss: {},
69
- printWidth: 80,
70
- experimentalSortPackageJson: false,
71
- proseWrap: "always",
72
- ignorePatterns: [
73
- "**/.output",
74
- "**/dist/**",
75
- "pnpm-lock.yaml",
76
- "**/routeTree.gen.ts"
77
- ],
78
- overrides: [{
79
- files: ["*.{yaml,yml}"],
80
- options: { useTabs: false }
81
- }]
63
+ //#endregion
64
+ //#region src/vite.ts
65
+ const stylesSetup = "@aamini/config/setup/styles";
66
+ const fmt = {
67
+ singleQuote: true,
68
+ semi: false,
69
+ useTabs: true,
70
+ experimentalTailwindcss: {},
71
+ printWidth: 80,
72
+ experimentalSortPackageJson: false,
73
+ proseWrap: "always",
74
+ ignorePatterns: [
75
+ "**/.output",
76
+ "**/dist/**",
77
+ "pnpm-lock.yaml",
78
+ "**/routeTree.gen.ts"
79
+ ],
80
+ overrides: [{
81
+ files: ["*.{yaml,yml}"],
82
+ options: { useTabs: false }
83
+ }]
84
+ };
85
+ const lint = {
86
+ plugins: [
87
+ "eslint",
88
+ "unicorn",
89
+ "typescript",
90
+ "oxc",
91
+ "react",
92
+ "react-perf",
93
+ "import",
94
+ "jsdoc",
95
+ "jsx-a11y",
96
+ "node",
97
+ "promise"
98
+ ],
99
+ categories: {},
100
+ options: {
101
+ typeAware: true,
102
+ typeCheck: true
82
103
  },
83
- lint: {
84
- plugins: [
85
- "eslint",
86
- "unicorn",
87
- "typescript",
88
- "oxc",
89
- "react",
90
- "react-perf",
91
- "import",
92
- "jsdoc",
93
- "jsx-a11y",
94
- "node",
95
- "promise"
96
- ],
97
- categories: {},
98
- options: {
99
- typeAware: true,
100
- typeCheck: true
104
+ rules: {
105
+ "no-empty-pattern": "off",
106
+ "no-console": ["error", { allow: ["warn", "error"] }]
107
+ },
108
+ settings: {
109
+ "jsx-a11y": {
110
+ components: {},
111
+ attributes: {}
101
112
  },
102
- rules: {
103
- "no-empty-pattern": "off",
104
- "no-console": ["error", { allow: ["warn", "error"] }]
113
+ react: {
114
+ formComponents: [],
115
+ linkComponents: []
105
116
  },
106
- settings: {
107
- "jsx-a11y": {
108
- components: {},
109
- attributes: {}
110
- },
111
- react: {
112
- formComponents: [],
113
- linkComponents: []
114
- },
115
- jsdoc: {
116
- ignorePrivate: false,
117
- ignoreInternal: false,
118
- ignoreReplacesDocs: true,
119
- overrideReplacesDocs: true,
120
- augmentsExtendsReplacesDocs: false,
121
- implementsReplacesDocs: false,
122
- exemptDestructuredRootsFromChecks: false,
123
- tagNamePreference: {}
124
- }
125
- },
126
- env: { builtin: true },
127
- globals: {},
128
- ignorePatterns: ["**/dist/**"]
117
+ jsdoc: {
118
+ ignorePrivate: false,
119
+ ignoreInternal: false,
120
+ ignoreReplacesDocs: true,
121
+ overrideReplacesDocs: true,
122
+ augmentsExtendsReplacesDocs: false,
123
+ implementsReplacesDocs: false,
124
+ exemptDestructuredRootsFromChecks: false,
125
+ tagNamePreference: {}
126
+ }
129
127
  },
130
- staged: { "*.{js,ts,tsx}": "vp check --fix" }
128
+ env: { builtin: true },
129
+ globals: {},
130
+ ignorePatterns: ["**/dist/**"]
131
131
  };
132
- //#endregion
133
- //#region src/vite.ts
134
- const stylesSetup = "@aamini/config/setup/styles";
135
- const createAppConfig = ({ root = process.cwd(), projectOverrides } = {}) => ({
132
+ const test = (projectOverrides) => ({
133
+ passWithNoTests: true,
134
+ projects: [
135
+ {
136
+ extends: true,
137
+ test: {
138
+ name: "unit",
139
+ include: ["src/**/*.test.unit.ts"]
140
+ }
141
+ },
142
+ mergeConfig({
143
+ extends: true,
144
+ plugins: [createMswHandlersPlugin()],
145
+ test: {
146
+ name: "server",
147
+ include: ["src/**/*.test.ts"],
148
+ testTimeout: 3e4,
149
+ fileParallelism: false
150
+ }
151
+ }, projectOverrides?.server ?? {}),
152
+ mergeConfig({
153
+ extends: true,
154
+ plugins: [createMswHandlersPlugin(), createStylesPlugin()],
155
+ test: {
156
+ name: "browser",
157
+ include: ["src/**/*.test.tsx", "tests/**/*.test.tsx"],
158
+ setupFiles: [stylesSetup],
159
+ browser: {
160
+ instances: [{ browser: "chromium" }],
161
+ provider: playwright(),
162
+ enabled: true,
163
+ headless: true
164
+ }
165
+ }
166
+ }, projectOverrides?.browser ?? {})
167
+ ]
168
+ });
169
+ const createAppConfig = ({ root = process.cwd(), projectOverrides }) => ({
136
170
  root,
137
171
  resolve: {
138
172
  tsconfigPaths: true,
@@ -163,49 +197,12 @@ const createAppConfig = ({ root = process.cwd(), projectOverrides } = {}) => ({
163
197
  svgrOptions: { exportType: "default" }
164
198
  })
165
199
  ],
166
- fmt: workspaceConfig.fmt,
167
- lint: workspaceConfig.lint,
168
- staged: workspaceConfig.staged,
169
- test: {
170
- passWithNoTests: true,
171
- projects: [
172
- {
173
- extends: true,
174
- test: {
175
- name: "unit",
176
- include: ["src/**/*.test.unit.ts"]
177
- }
178
- },
179
- mergeConfig({
180
- extends: true,
181
- plugins: [createMswHandlersPlugin()],
182
- test: {
183
- name: "server",
184
- include: ["src/**/*.test.ts"],
185
- testTimeout: 3e4,
186
- fileParallelism: false
187
- }
188
- }, projectOverrides?.server ?? {}),
189
- mergeConfig({
190
- extends: true,
191
- plugins: [createMswHandlersPlugin(), createStylesPlugin()],
192
- test: {
193
- name: "browser",
194
- include: ["src/**/*.test.tsx", "tests/**/*.test.tsx"],
195
- setupFiles: [stylesSetup],
196
- browser: {
197
- instances: [{ browser: "chromium" }],
198
- provider: playwright(),
199
- enabled: true,
200
- headless: true
201
- }
202
- }
203
- }, projectOverrides?.browser ?? {})
204
- ]
205
- }
200
+ fmt,
201
+ lint,
202
+ staged: { "*.{js,ts,tsx}": "vp check --fix" },
203
+ test: test(projectOverrides)
206
204
  });
207
- const viteConfig = createAppConfig;
208
205
  //#endregion
209
- export { createAppConfig, viteConfig, workspaceConfig };
206
+ export { createAppConfig, fmt, lint, test };
210
207
 
211
208
  //# sourceMappingURL=vite.mjs.map
package/dist/vite.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.mjs","names":[],"sources":["../src/plugins/virtual-modules.ts","../src/workspace.ts","../src/vite.ts"],"sourcesContent":["import { existsSync } from 'node:fs'\nimport { resolve } from 'node:path'\nimport type { Plugin } from 'vite'\n\nconst HANDLER_LOCATIONS = [\n\t'__mocks__/handlers.ts',\n\t'__mocks__/handlers.js',\n\t'src/mocks/handlers.ts',\n\t'src/mocks/handlers.js',\n]\n\nconst STYLES_LOCATIONS = ['src/styles.css', 'src/index.css', 'src/app.css']\n\nfunction createVirtualFilePlugin({\n\tlocations,\n\tmoduleId,\n\tname,\n\tsideEffectOnly = false,\n}: {\n\tlocations: string[]\n\tmoduleId: string\n\tname: string\n\tsideEffectOnly?: boolean\n}): Plugin {\n\tconst resolvedModuleId = `\\0${moduleId}`\n\tlet root = process.cwd()\n\n\treturn {\n\t\tname,\n\t\tconfigResolved(config) {\n\t\t\troot = config.root\n\t\t},\n\t\tresolveId(id) {\n\t\t\tif (id === moduleId) return resolvedModuleId\n\t\t\treturn undefined\n\t\t},\n\t\tload(id) {\n\t\t\tif (id !== resolvedModuleId) return undefined\n\n\t\t\tfor (const location of locations) {\n\t\t\t\tconst fullPath = resolve(root, location)\n\t\t\t\tif (existsSync(fullPath)) {\n\t\t\t\t\tif (sideEffectOnly) return `import ${JSON.stringify(fullPath)}`\n\t\t\t\t\treturn `export { default } from ${JSON.stringify(fullPath)}`\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t`No file found for ${moduleId}. Expected one of:\\n${locations\n\t\t\t\t\t.map((location) => ` - ${resolve(root, location)}`)\n\t\t\t\t\t.join('\\n')}`,\n\t\t\t)\n\t\t},\n\t}\n}\n\nexport function createMswHandlersPlugin() {\n\treturn createVirtualFilePlugin({\n\t\tlocations: HANDLER_LOCATIONS,\n\t\tmoduleId: '@test/handlers',\n\t\tname: 'aamini-msw-handlers',\n\t})\n}\n\nexport function createStylesPlugin() {\n\treturn createVirtualFilePlugin({\n\t\tlocations: STYLES_LOCATIONS,\n\t\tmoduleId: '@test/styles',\n\t\tname: 'aamini-test-styles',\n\t\tsideEffectOnly: true,\n\t})\n}\n","const fmt = {\n\tsingleQuote: true,\n\tsemi: false,\n\tuseTabs: true,\n\texperimentalTailwindcss: {},\n\tprintWidth: 80,\n\texperimentalSortPackageJson: false,\n\tproseWrap: 'always',\n\tignorePatterns: [\n\t\t'**/.output',\n\t\t'**/dist/**',\n\t\t'pnpm-lock.yaml',\n\t\t'**/routeTree.gen.ts',\n\t],\n\toverrides: [\n\t\t{\n\t\t\tfiles: ['*.{yaml,yml}'],\n\t\t\toptions: { useTabs: false },\n\t\t},\n\t],\n}\n\nconst lint = {\n\tplugins: [\n\t\t'eslint',\n\t\t'unicorn',\n\t\t'typescript',\n\t\t'oxc',\n\t\t'react',\n\t\t'react-perf',\n\t\t'import',\n\t\t'jsdoc',\n\t\t'jsx-a11y',\n\t\t'node',\n\t\t'promise',\n\t],\n\tcategories: {},\n\toptions: {\n\t\ttypeAware: true,\n\t\ttypeCheck: true,\n\t},\n\trules: {\n\t\t'no-empty-pattern': 'off',\n\t\t'no-console': ['error', { allow: ['warn', 'error'] }],\n\t},\n\tsettings: {\n\t\t'jsx-a11y': { components: {}, attributes: {} },\n\t\treact: { formComponents: [], linkComponents: [] },\n\t\tjsdoc: {\n\t\t\tignorePrivate: false,\n\t\t\tignoreInternal: false,\n\t\t\tignoreReplacesDocs: true,\n\t\t\toverrideReplacesDocs: true,\n\t\t\taugmentsExtendsReplacesDocs: false,\n\t\t\timplementsReplacesDocs: false,\n\t\t\texemptDestructuredRootsFromChecks: false,\n\t\t\ttagNamePreference: {},\n\t\t},\n\t},\n\tenv: { builtin: true },\n\tglobals: {},\n\tignorePatterns: ['**/dist/**'],\n}\n\nexport const workspaceConfig = {\n\tfmt,\n\tlint,\n\tstaged: {\n\t\t'*.{js,ts,tsx}': 'vp check --fix',\n\t},\n}\n","import { nitro } from 'nitro/vite'\nimport { devtools } from '@tanstack/devtools-vite'\nimport { tanstackStart } from '@tanstack/react-start/plugin/vite'\nimport viteReact, { reactCompilerPreset } from '@vitejs/plugin-react'\nimport tailwindcss from '@tailwindcss/vite'\nimport babel from '@rolldown/plugin-babel'\nimport svgr from 'vite-plugin-svgr'\nimport { resolve } from 'node:path'\nimport { mergeConfig, type TestProjectConfiguration } from 'vite-plus'\nimport { playwright } from 'vite-plus/test/browser-playwright'\nimport {\n\tcreateMswHandlersPlugin,\n\tcreateStylesPlugin,\n} from './plugins/virtual-modules.ts'\nimport { workspaceConfig } from './workspace.ts'\n\nconst stylesSetup = '@aamini/config/setup/styles'\n\ninterface ProjectOverrides {\n\tserver?: TestProjectConfiguration\n\tbrowser?: TestProjectConfiguration\n}\n\nexport interface AppConfigOptions {\n\troot?: string\n\tprojectOverrides?: ProjectOverrides\n}\n\nexport const createAppConfig = ({\n\troot = process.cwd(),\n\tprojectOverrides,\n}: AppConfigOptions = {}): Record<string, unknown> => ({\n\troot,\n\tresolve: {\n\t\ttsconfigPaths: true,\n\t\tdedupe: ['react', 'react-dom'],\n\t\talias: [\n\t\t\t{ find: '@/mocks', replacement: resolve(root, '__mocks__') },\n\t\t\t{ find: '@', replacement: resolve(root, 'src') },\n\t\t\t{ find: '@tests', replacement: resolve(root, 'tests') },\n\t\t],\n\t},\n\tplugins: [\n\t\ttanstackStart(),\n\t\t...(process.env.VITEST === 'true'\n\t\t\t? []\n\t\t\t: [devtools({ injectSource: { enabled: false } }), nitro()]),\n\t\ttailwindcss(),\n\t\tviteReact(),\n\t\tbabel({ presets: [reactCompilerPreset()] }),\n\t\tsvgr({\n\t\t\tinclude: '**/*.svg',\n\t\t\tsvgrOptions: { exportType: 'default' },\n\t\t}),\n\t],\n\tfmt: workspaceConfig.fmt,\n\tlint: workspaceConfig.lint,\n\tstaged: workspaceConfig.staged,\n\ttest: {\n\t\tpassWithNoTests: true,\n\t\tprojects: [\n\t\t\t{\n\t\t\t\textends: true,\n\t\t\t\ttest: {\n\t\t\t\t\tname: 'unit',\n\t\t\t\t\tinclude: ['src/**/*.test.unit.ts'],\n\t\t\t\t},\n\t\t\t},\n\t\t\tmergeConfig(\n\t\t\t\t{\n\t\t\t\t\textends: true,\n\t\t\t\t\tplugins: [createMswHandlersPlugin()],\n\t\t\t\t\ttest: {\n\t\t\t\t\t\tname: 'server',\n\t\t\t\t\t\tinclude: ['src/**/*.test.ts'],\n\t\t\t\t\t\ttestTimeout: 30_000,\n\t\t\t\t\t\tfileParallelism: false,\n\t\t\t\t\t},\n\t\t\t\t} satisfies TestProjectConfiguration as Record<string, unknown>,\n\t\t\t\t(projectOverrides?.server ?? {}) as Record<string, unknown>,\n\t\t\t),\n\t\t\tmergeConfig(\n\t\t\t\t{\n\t\t\t\t\textends: true,\n\t\t\t\t\tplugins: [createMswHandlersPlugin(), createStylesPlugin()],\n\t\t\t\t\ttest: {\n\t\t\t\t\t\tname: 'browser',\n\t\t\t\t\t\tinclude: ['src/**/*.test.tsx', 'tests/**/*.test.tsx'],\n\t\t\t\t\t\tsetupFiles: [stylesSetup],\n\t\t\t\t\t\tbrowser: {\n\t\t\t\t\t\t\tinstances: [{ browser: 'chromium' }],\n\t\t\t\t\t\t\tprovider: playwright(),\n\t\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\t\theadless: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} satisfies TestProjectConfiguration as Record<string, unknown>,\n\t\t\t\t(projectOverrides?.browser ?? {}) as Record<string, unknown>,\n\t\t\t),\n\t\t],\n\t},\n})\n\nexport const viteConfig: typeof createAppConfig = createAppConfig\nexport { workspaceConfig } from './workspace.ts'\n"],"mappings":"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"}
1
+ {"version":3,"file":"vite.mjs","names":[],"sources":["../src/plugins/virtual-modules.ts","../src/vite.ts"],"sourcesContent":["import { existsSync } from 'node:fs'\nimport { resolve } from 'node:path'\nimport type { Plugin } from 'vite'\n\nconst HANDLER_LOCATIONS = [\n\t'__mocks__/handlers.ts',\n\t'__mocks__/handlers.js',\n\t'src/mocks/handlers.ts',\n\t'src/mocks/handlers.js',\n]\n\nconst STYLES_LOCATIONS = ['src/styles.css', 'src/index.css', 'src/app.css']\n\nfunction createVirtualFilePlugin({\n\tlocations,\n\tmoduleId,\n\tname,\n\tsideEffectOnly = false,\n}: {\n\tlocations: string[]\n\tmoduleId: string\n\tname: string\n\tsideEffectOnly?: boolean\n}): Plugin {\n\tconst resolvedModuleId = `\\0${moduleId}`\n\tlet root = process.cwd()\n\n\treturn {\n\t\tname,\n\t\tconfigResolved(config) {\n\t\t\troot = config.root\n\t\t},\n\t\tresolveId(id) {\n\t\t\tif (id === moduleId) return resolvedModuleId\n\t\t\treturn undefined\n\t\t},\n\t\tload(id) {\n\t\t\tif (id !== resolvedModuleId) return undefined\n\n\t\t\tfor (const location of locations) {\n\t\t\t\tconst fullPath = resolve(root, location)\n\t\t\t\tif (existsSync(fullPath)) {\n\t\t\t\t\tif (sideEffectOnly) return `import ${JSON.stringify(fullPath)}`\n\t\t\t\t\treturn `export { default } from ${JSON.stringify(fullPath)}`\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t`No file found for ${moduleId}. Expected one of:\\n${locations\n\t\t\t\t\t.map((location) => ` - ${resolve(root, location)}`)\n\t\t\t\t\t.join('\\n')}`,\n\t\t\t)\n\t\t},\n\t}\n}\n\nexport function createMswHandlersPlugin() {\n\treturn createVirtualFilePlugin({\n\t\tlocations: HANDLER_LOCATIONS,\n\t\tmoduleId: '@test/handlers',\n\t\tname: 'aamini-msw-handlers',\n\t})\n}\n\nexport function createStylesPlugin() {\n\treturn createVirtualFilePlugin({\n\t\tlocations: STYLES_LOCATIONS,\n\t\tmoduleId: '@test/styles',\n\t\tname: 'aamini-test-styles',\n\t\tsideEffectOnly: true,\n\t})\n}\n","import { nitro } from 'nitro/vite'\nimport { devtools } from '@tanstack/devtools-vite'\nimport { tanstackStart } from '@tanstack/react-start/plugin/vite'\nimport viteReact, { reactCompilerPreset } from '@vitejs/plugin-react'\nimport tailwindcss from '@tailwindcss/vite'\nimport babel from '@rolldown/plugin-babel'\nimport svgr from 'vite-plugin-svgr'\nimport { resolve } from 'node:path'\nimport {\n\tmergeConfig,\n\ttype UserConfig,\n\ttype TestProjectConfiguration,\n} from 'vite-plus'\nimport { playwright } from 'vite-plus/test/browser-playwright'\nimport {\n\tcreateMswHandlersPlugin,\n\tcreateStylesPlugin,\n} from './plugins/virtual-modules.ts'\n\nconst stylesSetup = '@aamini/config/setup/styles'\n\nexport const fmt = {\n\tsingleQuote: true,\n\tsemi: false,\n\tuseTabs: true,\n\texperimentalTailwindcss: {},\n\tprintWidth: 80,\n\texperimentalSortPackageJson: false,\n\tproseWrap: 'always',\n\tignorePatterns: [\n\t\t'**/.output',\n\t\t'**/dist/**',\n\t\t'pnpm-lock.yaml',\n\t\t'**/routeTree.gen.ts',\n\t],\n\toverrides: [\n\t\t{\n\t\t\tfiles: ['*.{yaml,yml}'],\n\t\t\toptions: { useTabs: false },\n\t\t},\n\t],\n} satisfies UserConfig['fmt']\n\nexport const lint = {\n\tplugins: [\n\t\t'eslint',\n\t\t'unicorn',\n\t\t'typescript',\n\t\t'oxc',\n\t\t'react',\n\t\t'react-perf',\n\t\t'import',\n\t\t'jsdoc',\n\t\t'jsx-a11y',\n\t\t'node',\n\t\t'promise',\n\t],\n\tcategories: {},\n\toptions: {\n\t\ttypeAware: true,\n\t\ttypeCheck: true,\n\t},\n\trules: {\n\t\t'no-empty-pattern': 'off',\n\t\t'no-console': ['error', { allow: ['warn', 'error'] }],\n\t},\n\tsettings: {\n\t\t'jsx-a11y': { components: {}, attributes: {} },\n\t\treact: { formComponents: [], linkComponents: [] },\n\t\tjsdoc: {\n\t\t\tignorePrivate: false,\n\t\t\tignoreInternal: false,\n\t\t\tignoreReplacesDocs: true,\n\t\t\toverrideReplacesDocs: true,\n\t\t\taugmentsExtendsReplacesDocs: false,\n\t\t\timplementsReplacesDocs: false,\n\t\t\texemptDestructuredRootsFromChecks: false,\n\t\t\ttagNamePreference: {},\n\t\t},\n\t},\n\tenv: { builtin: true },\n\tglobals: {},\n\tignorePatterns: ['**/dist/**'],\n} satisfies UserConfig['lint']\n\ninterface ProjectOverrides {\n\tserver?: TestProjectConfiguration\n\tbrowser?: TestProjectConfiguration\n}\n\nexport const test = (\n\tprojectOverrides?: ProjectOverrides,\n): UserConfig['test'] => ({\n\tpassWithNoTests: true,\n\tprojects: [\n\t\t{\n\t\t\textends: true,\n\t\t\ttest: {\n\t\t\t\tname: 'unit',\n\t\t\t\tinclude: ['src/**/*.test.unit.ts'],\n\t\t\t},\n\t\t},\n\t\tmergeConfig(\n\t\t\t{\n\t\t\t\textends: true,\n\t\t\t\tplugins: [createMswHandlersPlugin()],\n\t\t\t\ttest: {\n\t\t\t\t\tname: 'server',\n\t\t\t\t\tinclude: ['src/**/*.test.ts'],\n\t\t\t\t\ttestTimeout: 30_000,\n\t\t\t\t\tfileParallelism: false,\n\t\t\t\t},\n\t\t\t} satisfies TestProjectConfiguration as Record<string, unknown>,\n\t\t\t(projectOverrides?.server ?? {}) as Record<string, unknown>,\n\t\t),\n\t\tmergeConfig(\n\t\t\t{\n\t\t\t\textends: true,\n\t\t\t\tplugins: [createMswHandlersPlugin(), createStylesPlugin()],\n\t\t\t\ttest: {\n\t\t\t\t\tname: 'browser',\n\t\t\t\t\tinclude: ['src/**/*.test.tsx', 'tests/**/*.test.tsx'],\n\t\t\t\t\tsetupFiles: [stylesSetup],\n\t\t\t\t\tbrowser: {\n\t\t\t\t\t\tinstances: [{ browser: 'chromium' }],\n\t\t\t\t\t\tprovider: playwright(),\n\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\theadless: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} satisfies TestProjectConfiguration as Record<string, unknown>,\n\t\t\t(projectOverrides?.browser ?? {}) as Record<string, unknown>,\n\t\t),\n\t],\n})\n\nexport const createAppConfig = ({\n\troot = process.cwd(),\n\tprojectOverrides,\n}: {\n\troot?: string\n\tprojectOverrides?: ProjectOverrides\n}): UserConfig => ({\n\troot,\n\tresolve: {\n\t\ttsconfigPaths: true,\n\t\tdedupe: ['react', 'react-dom'],\n\t\talias: [\n\t\t\t{ find: '@/mocks', replacement: resolve(root, '__mocks__') },\n\t\t\t{ find: '@', replacement: resolve(root, 'src') },\n\t\t\t{ find: '@tests', replacement: resolve(root, 'tests') },\n\t\t],\n\t},\n\tplugins: [\n\t\ttanstackStart(),\n\t\t...(process.env.VITEST === 'true'\n\t\t\t? []\n\t\t\t: [devtools({ injectSource: { enabled: false } }), nitro()]),\n\t\ttailwindcss(),\n\t\tviteReact(),\n\t\tbabel({ presets: [reactCompilerPreset()] }),\n\t\tsvgr({\n\t\t\tinclude: '**/*.svg',\n\t\t\tsvgrOptions: { exportType: 'default' },\n\t\t}),\n\t],\n\tfmt: fmt,\n\tlint: lint,\n\tstaged: {\n\t\t'*.{js,ts,tsx}': 'vp check --fix',\n\t},\n\ttest: test(projectOverrides),\n})\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aamini/config",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "repository": {
@@ -31,6 +31,7 @@
31
31
  },
32
32
  "scripts": {
33
33
  "build": "vp pack",
34
+ "build:watch": "vp pack --watch",
34
35
  "bump": "npm version patch --no-git-tag-version",
35
36
  "pack": "vp pack",
36
37
  "prepublishOnly": "vp run build"
package/dist/msw.d.mts DELETED
@@ -1,3 +0,0 @@
1
- import { HttpResponse, RequestHandler, graphql, http } from "msw";
2
- import { SetupWorker, setupWorker } from "msw/browser";
3
- export { HttpResponse, type RequestHandler, type SetupWorker, graphql, http, setupWorker };
package/dist/msw.mjs DELETED
@@ -1,3 +0,0 @@
1
- import { HttpResponse, graphql, http } from "msw";
2
- import { setupWorker } from "msw/browser";
3
- export { HttpResponse, graphql, http, setupWorker };