Files
discord-clone/node_modules/@nuxt/schema/dist/index.mjs
2023-01-03 09:29:04 -06:00

568 lines
15 KiB
JavaScript

import { defineUntypedSchema } from 'untyped';
import defu from 'defu';
import { join, resolve } from 'pathe';
import { isDevelopment, isDebug } from 'std-env';
import { findWorkspaceDir } from 'pkg-types';
import createResolver from 'postcss-import-resolver';
import { withoutLeadingSlash } from 'ufo';
const adhoc = defineUntypedSchema({
components: {
$resolve: (val) => {
if (Array.isArray(val)) {
return { dirs: val };
}
if (val === void 0 || val === true) {
return { dirs: [{ path: "~/components/global", global: true }, "~/components"] };
}
return val;
}
},
imports: {
global: false,
dirs: []
},
pages: void 0,
telemetry: void 0
});
const app = defineUntypedSchema({
vue: {
compilerOptions: {}
},
app: {
baseURL: {
$resolve: async (val) => val || process.env.NUXT_APP_BASE_URL || "/"
},
buildAssetsDir: {
$resolve: async (val) => val || process.env.NUXT_APP_BUILD_ASSETS_DIR || "/_nuxt/"
},
cdnURL: {
$resolve: async (val, get) => await get("dev") ? "" : (process.env.NUXT_APP_CDN_URL ?? val) || ""
},
head: {
$resolve: async (val, get) => {
const resolved = defu(val, await get("meta"), {
meta: [],
link: [],
style: [],
script: [],
noscript: []
});
if (!resolved.meta.find((m) => m.charset)?.charset) {
resolved.meta.unshift({ charset: resolved.charset || "utf-8" });
}
if (!resolved.meta.find((m) => m.name === "viewport")?.content) {
resolved.meta.unshift({ name: "viewport", content: resolved.viewport || "width=device-width, initial-scale=1" });
}
resolved.meta = resolved.meta.filter(Boolean);
resolved.link = resolved.link.filter(Boolean);
resolved.style = resolved.style.filter(Boolean);
resolved.script = resolved.script.filter(Boolean);
resolved.noscript = resolved.noscript.filter(Boolean);
return resolved;
}
},
layoutTransition: false,
pageTransition: false,
keepalive: false,
rootId: "__nuxt",
rootTag: "div"
},
plugins: [],
css: {
$resolve: (val) => (val ?? []).map((c) => c.src || c)
}
});
const build = defineUntypedSchema({
builder: {
$resolve: async (val, get) => {
if (typeof val === "object") {
return val;
}
const map = {
vite: "@nuxt/vite-builder",
webpack: "@nuxt/webpack-builder"
};
return map[val] || val || (await get("vite") === false ? map.webpack : map.vite);
}
},
sourcemap: {
$resolve: async (val, get) => {
if (typeof val === "boolean") {
return { server: val, client: val };
}
return defu(val, {
server: true,
client: await get("dev")
});
}
},
build: {
transpile: {
$resolve: (val) => [].concat(val).filter(Boolean)
},
templates: [],
analyze: {
$resolve: async (val, get) => {
if (val !== true) {
return val ?? false;
}
const rootDir = await get("rootDir");
return {
template: "treemap",
projectRoot: rootDir,
filename: join(rootDir, ".nuxt/stats", "{name}.html")
};
}
}
}
});
const common = defineUntypedSchema({
extends: null,
theme: null,
rootDir: {
$resolve: (val) => typeof val === "string" ? resolve(val) : process.cwd()
},
workspaceDir: {
$resolve: async (val, get) => val ? resolve(await get("rootDir"), val) : await findWorkspaceDir(await get("rootDir")).catch(() => get("rootDir"))
},
srcDir: {
$resolve: async (val, get) => resolve(await get("rootDir"), val || ".")
},
serverDir: {
$resolve: async (val, get) => resolve(await get("rootDir"), val || resolve(await get("srcDir"), "server"))
},
buildDir: {
$resolve: async (val, get) => resolve(await get("rootDir"), val || ".nuxt")
},
modulesDir: {
$default: ["node_modules"],
$resolve: async (val, get) => [
...await Promise.all(val.map(async (dir) => resolve(await get("rootDir"), dir))),
resolve(process.cwd(), "node_modules")
]
},
dev: Boolean(isDevelopment),
test: Boolean(isDevelopment),
debug: {
$resolve: async (val, get) => val ?? isDebug
},
ssr: {
$resolve: (val) => val ?? true
},
modules: [],
dir: {
assets: "assets",
layouts: "layouts",
middleware: "middleware",
pages: "pages",
plugins: "plugins",
public: {
$resolve: async (val, get) => val || await get("dir.static") || "public"
},
static: {
$schema: { deprecated: "use `dir.public` option instead" },
$resolve: async (val, get) => val || await get("dir.public") || "public"
}
},
extensions: {
$resolve: (val) => [".js", ".jsx", ".mjs", ".ts", ".tsx", ".vue"].concat(val).filter(Boolean)
},
alias: {
$resolve: async (val, get) => ({
"~~": await get("rootDir"),
"@@": await get("rootDir"),
"~": await get("srcDir"),
"@": await get("srcDir"),
[await get("dir.assets")]: join(await get("srcDir"), await get("dir.assets")),
[await get("dir.public")]: join(await get("srcDir"), await get("dir.public")),
...val
})
},
ignoreOptions: void 0,
ignorePrefix: "-",
ignore: {
$resolve: async (val, get) => [
"**/*.stories.{js,ts,jsx,tsx}",
"**/*.{spec,test}.{js,ts,jsx,tsx}",
"**/*.d.ts",
".output",
await get("ignorePrefix") && `**/${await get("ignorePrefix")}*.*`
].concat(val).filter(Boolean)
},
watchers: {
rewatchOnRawEvents: void 0,
webpack: {
aggregateTimeout: 1e3
},
chokidar: {
ignoreInitial: true
}
},
hooks: null,
runtimeConfig: {
$resolve: async (val, get) => defu(val, {
public: {},
app: {
baseURL: (await get("app")).baseURL,
buildAssetsDir: (await get("app")).buildAssetsDir,
cdnURL: (await get("app")).cdnURL
}
})
},
appConfig: {}
});
const dev = defineUntypedSchema({
devServer: {
https: false,
port: process.env.NUXT_PORT || process.env.NITRO_PORT || process.env.PORT || 3e3,
host: process.env.NUXT_HOST || process.env.NITRO_HOST || process.env.HOST || "localhost",
url: "http://localhost:3000"
}
});
const experimental = defineUntypedSchema({
experimental: {
asyncEntry: {
$resolve: (val) => val ?? false
},
reactivityTransform: false,
externalVue: true,
treeshakeClientOnly: true,
viteNode: {
$resolve: (val) => {
val = process.env.EXPERIMENTAL_VITE_NODE ? true : val;
if (val === true) {
console.warn("`vite-node` is now enabled by default. You can safely remove `experimental.viteNode` from your config.");
} else if (val === false) {
console.warn("`vite-node` is now enabled by default. To disable it, set `vite.devBundler` to `legacy` instead.");
}
return val ?? true;
}
},
viteServerDynamicImports: true,
inlineSSRStyles: {
async $resolve(val, get) {
if (val === false || await get("dev") || await get("ssr") === false || await get("builder") === "@nuxt/webpack-builder") {
return false;
}
return val ?? true;
}
},
noScripts: false,
payloadExtraction: {
async $resolve(enabled, get) {
enabled = enabled ?? false;
if (enabled) {
console.warn("Using experimental payload extraction for full-static output. You can opt-out by setting `experimental.payloadExtraction` to `false`.");
}
return enabled;
}
},
crossOriginPrefetch: false,
writeEarlyHints: false
}
});
const generate = defineUntypedSchema({
generate: {
routes: [],
exclude: []
}
});
const internal = defineUntypedSchema({
_majorVersion: 3,
_legacyGenerate: false,
_start: false,
_build: false,
_generate: false,
_prepare: false,
_cli: false,
_requiredModules: {},
_nuxtConfigFile: void 0,
_nuxtConfigFiles: [],
appDir: "",
_installedModules: [],
_modules: []
});
const nitro = defineUntypedSchema({
nitro: {
routeRules: {
$resolve: async (val, get) => ({
...await get("routeRules") || {},
...val || {}
})
}
},
routeRules: {},
serverHandlers: [],
devServerHandlers: []
});
const postcss = defineUntypedSchema({
postcss: {
config: false,
plugins: {
"postcss-import": {
$resolve: async (val, get) => val !== false ? defu(val || {}, {
resolve: createResolver({
alias: { ...await get("alias") },
modules: [
await get("srcDir"),
await get("rootDir"),
...await get("modulesDir")
]
})
}) : val
},
"postcss-url": {},
autoprefixer: {},
cssnano: {
$resolve: async (val, get) => val ?? !(await get("dev") && {
preset: ["default", {
minifyFontValues: { removeQuotes: false }
}]
})
}
}
}
});
const router = defineUntypedSchema({
router: {
options: {}
}
});
const typescript = defineUntypedSchema({
typescript: {
strict: true,
includeWorkspace: false,
typeCheck: false,
tsConfig: {},
shim: true
}
});
const vite = defineUntypedSchema({
vite: {
root: {
$resolve: async (val, get) => val ?? await get("srcDir")
},
mode: {
$resolve: async (val, get) => val ?? (await get("dev") ? "development" : "production")
},
logLevel: "warn",
define: {
$resolve: async (val, get) => ({
"process.dev": await get("dev"),
...val || {}
})
},
resolve: {
extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"]
},
publicDir: {
$resolve: async (val, get) => val ?? resolve(await get("srcDir"), (await get("dir")).public)
},
vue: {
isProduction: {
$resolve: async (val, get) => val ?? !await get("dev")
},
template: {
compilerOptions: {
$resolve: async (val, get) => val ?? (await get("vue")).compilerOptions
}
}
},
optimizeDeps: {
exclude: {
$resolve: async (val, get) => [
...val || [],
...(await get("build.transpile")).filter((i) => typeof i === "string"),
"vue-demi"
]
}
},
esbuild: {
jsxFactory: "h",
jsxFragment: "Fragment",
tsconfigRaw: "{}"
},
clearScreen: false,
build: {
assetsDir: {
$resolve: async (val, get) => val ?? withoutLeadingSlash((await get("app")).buildAssetsDir)
},
emptyOutDir: false
},
server: {
fs: {
allow: {
$resolve: async (val, get) => [
await get("buildDir"),
await get("srcDir"),
await get("rootDir"),
await get("workspaceDir"),
...await get("modulesDir"),
...val ?? []
]
}
}
}
}
});
const webpack = defineUntypedSchema({
webpack: {
analyze: {
$resolve: async (val, get) => {
if (val !== true) {
return val ?? false;
}
const rootDir = await get("rootDir");
return {
template: "treemap",
projectRoot: rootDir,
filename: join(rootDir, ".nuxt/stats", "{name}.html")
};
}
},
profile: process.argv.includes("--profile"),
extractCSS: true,
cssSourceMap: {
$resolve: async (val, get) => val ?? await get("dev")
},
serverURLPolyfill: "url",
filenames: {
app: ({ isDev }) => isDev ? `[name].js` : `[contenthash:7].js`,
chunk: ({ isDev }) => isDev ? `[name].js` : `[contenthash:7].js`,
css: ({ isDev }) => isDev ? "[name].css" : "css/[contenthash:7].css",
img: ({ isDev }) => isDev ? "[path][name].[ext]" : "img/[name].[contenthash:7].[ext]",
font: ({ isDev }) => isDev ? "[path][name].[ext]" : "fonts/[name].[contenthash:7].[ext]",
video: ({ isDev }) => isDev ? "[path][name].[ext]" : "videos/[name].[contenthash:7].[ext]"
},
loaders: {
$resolve: async (val, get) => {
const styleLoaders = [
"css",
"cssModules",
"less",
"sass",
"scss",
"stylus",
"vueStyle"
];
for (const name of styleLoaders) {
const loader = val[name];
if (loader && loader.sourceMap === void 0) {
loader.sourceMap = Boolean(await get("build.cssSourceMap"));
}
}
return val;
},
file: { esModule: false },
fontUrl: { esModule: false, limit: 1e3 },
imgUrl: { esModule: false, limit: 1e3 },
pugPlain: {},
vue: {
productionMode: { $resolve: async (val, get) => val ?? !await get("dev") },
transformAssetUrls: {
video: "src",
source: "src",
object: "src",
embed: "src"
},
compilerOptions: { $resolve: async (val, get) => val ?? await get("vue.compilerOptions") }
},
css: {
importLoaders: 0,
url: {
filter: (url, resourcePath) => !url.startsWith("/")
},
esModule: false
},
cssModules: {
importLoaders: 0,
url: {
filter: (url, resourcePath) => !url.startsWith("/")
},
esModule: false,
modules: {
localIdentName: "[local]_[hash:base64:5]"
}
},
less: {},
sass: {
sassOptions: {
indentedSyntax: true
}
},
scss: {},
stylus: {},
vueStyle: {}
},
plugins: [],
terser: {},
aggressiveCodeRemoval: false,
optimizeCSS: {
$resolve: async (val, get) => val ?? (await get("build.extractCSS") ? {} : false)
},
optimization: {
runtimeChunk: "single",
minimize: { $resolve: async (val, get) => val ?? !await get("dev") },
minimizer: void 0,
splitChunks: {
chunks: "all",
automaticNameDelimiter: "/",
cacheGroups: {}
}
},
postcss: {
execute: void 0,
postcssOptions: {
config: {
$resolve: async (val, get) => val ?? await get("postcss.config")
},
plugins: {
$resolve: async (val, get) => val ?? await get("postcss.plugins")
}
},
sourceMap: void 0,
implementation: void 0,
order: ""
},
devMiddleware: {
stats: "none"
},
hotMiddleware: {},
friendlyErrors: true,
warningIgnoreFilters: []
}
});
const index = {
...adhoc,
...app,
...build,
...common,
...dev,
...experimental,
...generate,
...internal,
...nitro,
...postcss,
...router,
...typescript,
...vite,
...webpack
};
export { index as NuxtConfigSchema };