You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
3.4 KiB
144 lines
3.4 KiB
import os from 'node:os'; |
|
import { isCI } from 'std-env'; |
|
export { mergeConfig } from 'vite'; |
|
|
|
const isNode = typeof process < "u" && typeof process.stdout < "u" && !process.versions?.deno && !globalThis.window; |
|
const isDeno = typeof process < "u" && typeof process.stdout < "u" && process.versions?.deno !== void 0; |
|
(isNode || isDeno) && process.platform === "win32"; |
|
|
|
const defaultBrowserPort = 63315; |
|
const extraInlineDeps = [ |
|
/^(?!.*node_modules).*\.mjs$/, |
|
/^(?!.*node_modules).*\.cjs\.js$/, |
|
// Vite client |
|
/vite\w*\/dist\/client\/env.mjs/ |
|
]; |
|
|
|
const defaultInclude = ["**/*.{test,spec}.?(c|m)[jt]s?(x)"]; |
|
const defaultExclude = [ |
|
"**/node_modules/**", |
|
"**/dist/**", |
|
"**/cypress/**", |
|
"**/.{idea,git,cache,output,temp}/**", |
|
"**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*" |
|
]; |
|
const defaultCoverageExcludes = [ |
|
"coverage/**", |
|
"dist/**", |
|
"**/node_modules/**", |
|
"**/[.]**", |
|
"packages/*/test?(s)/**", |
|
"**/*.d.ts", |
|
"**/virtual:*", |
|
"**/__x00__*", |
|
"**/\0*", |
|
"cypress/**", |
|
"test?(s)/**", |
|
"test?(-*).?(c|m)[jt]s?(x)", |
|
"**/*{.,-}{test,spec,bench,benchmark}?(-d).?(c|m)[jt]s?(x)", |
|
"**/__tests__/**", |
|
"**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*", |
|
"**/vitest.{workspace,projects}.[jt]s?(on)", |
|
"**/.{eslint,mocha,prettier}rc.{?(c|m)js,yml}" |
|
]; |
|
const coverageConfigDefaults = { |
|
provider: "v8", |
|
enabled: false, |
|
all: true, |
|
clean: true, |
|
cleanOnRerun: true, |
|
reportsDirectory: "./coverage", |
|
exclude: defaultCoverageExcludes, |
|
reportOnFailure: false, |
|
reporter: [ |
|
["text", {}], |
|
["html", {}], |
|
["clover", {}], |
|
["json", {}] |
|
], |
|
extension: [ |
|
".js", |
|
".cjs", |
|
".mjs", |
|
".ts", |
|
".mts", |
|
".tsx", |
|
".jsx", |
|
".vue", |
|
".svelte", |
|
".marko", |
|
".astro" |
|
], |
|
allowExternal: false, |
|
excludeAfterRemap: false, |
|
ignoreEmptyLines: true, |
|
processingConcurrency: Math.min( |
|
20, |
|
os.availableParallelism?.() ?? os.cpus().length |
|
) |
|
}; |
|
const fakeTimersDefaults = { |
|
loopLimit: 1e4, |
|
shouldClearNativeTimers: true, |
|
toFake: [ |
|
"setTimeout", |
|
"clearTimeout", |
|
"setInterval", |
|
"clearInterval", |
|
"setImmediate", |
|
"clearImmediate", |
|
"Date" |
|
] |
|
}; |
|
const config = { |
|
allowOnly: !isCI, |
|
isolate: true, |
|
watch: !isCI, |
|
globals: false, |
|
environment: "node", |
|
pool: "forks", |
|
clearMocks: false, |
|
restoreMocks: false, |
|
mockReset: false, |
|
unstubGlobals: false, |
|
unstubEnvs: false, |
|
include: defaultInclude, |
|
exclude: defaultExclude, |
|
teardownTimeout: 1e4, |
|
forceRerunTriggers: ["**/package.json/**", "**/{vitest,vite}.config.*/**"], |
|
update: false, |
|
reporters: [], |
|
silent: false, |
|
hideSkippedTests: false, |
|
api: false, |
|
ui: false, |
|
uiBase: "/__vitest__/", |
|
open: !isCI, |
|
css: { |
|
include: [] |
|
}, |
|
coverage: coverageConfigDefaults, |
|
fakeTimers: fakeTimersDefaults, |
|
maxConcurrency: 5, |
|
dangerouslyIgnoreUnhandledErrors: false, |
|
typecheck: { |
|
checker: "tsc", |
|
include: ["**/*.{test,spec}-d.?(c|m)[jt]s?(x)"], |
|
exclude: defaultExclude |
|
}, |
|
slowTestThreshold: 300, |
|
disableConsoleIntercept: false |
|
}; |
|
const configDefaults = Object.freeze(config); |
|
|
|
function defineConfig(config) { |
|
return config; |
|
} |
|
function defineProject(config) { |
|
return config; |
|
} |
|
function defineWorkspace(config) { |
|
return config; |
|
} |
|
|
|
export { configDefaults, coverageConfigDefaults, defaultBrowserPort, defaultExclude, defaultInclude, defineConfig, defineProject, defineWorkspace, extraInlineDeps };
|
|
|