next
Version:
The React Framework
642 lines (641 loc) • 20.3 kB
JavaScript
"use strict";
var _imageConfig = require("../shared/lib/image-config");
const configSchema = {
type: "object",
additionalProperties: false,
properties: {
amp: {
additionalProperties: false,
properties: {
canonicalBase: {
minLength: 1,
type: "string"
}
},
type: "object"
},
analyticsId: {
type: "string"
},
assetPrefix: {
minLength: 1,
type: "string"
},
basePath: {
type: "string"
},
cleanDistDir: {
type: "boolean"
},
compiler: {
additionalProperties: false,
properties: {
emotion: {
oneOf: [
{
type: "boolean"
},
{
type: "object",
additionalProperties: false,
properties: {
sourceMap: {
type: "boolean"
},
autoLabel: {
type: "string",
enum: [
"always",
"dev-only",
"never"
]
},
labelFormat: {
type: "string",
minLength: 1
}
}
},
]
},
reactRemoveProperties: {
oneOf: [
{
type: "boolean"
},
{
type: "object",
additionalProperties: false,
properties: {
properties: {
type: "array",
items: {
type: "string"
}
}
}
},
]
},
relay: {
type: "object"
},
removeConsole: {
oneOf: [
{
type: "boolean"
},
{
type: "object",
additionalProperties: false,
properties: {
exclude: {
type: "array",
items: {
type: "string",
minLength: 1
}
}
}
},
]
},
styledComponents: {
oneOf: [
{
type: "boolean"
},
{
type: "object",
additionalProperties: false,
properties: {
displayName: {
type: "boolean"
},
topLevelImportPaths: {
type: "array",
items: {
type: "string",
minLength: 1
}
},
ssr: {
type: "boolean"
},
fileName: {
type: "boolean"
},
meaninglessFileNames: {
type: "boolean"
},
minify: {
type: "boolean"
},
transpileTemplateLiterals: {
type: "boolean"
},
namespace: {
type: "string",
minLength: 1
},
pure: {
type: "boolean"
},
cssProp: {
type: "boolean"
}
}
},
]
}
},
type: "object"
},
compress: {
type: "boolean"
},
crossOrigin: {
oneOf: [
false,
{
enum: [
"anonymous",
"use-credentials"
],
type: "string"
},
]
},
devIndicators: {
additionalProperties: false,
properties: {
buildActivity: {
type: "boolean"
},
buildActivityPosition: {
// automatic typing does not like enum
enum: [
"bottom-left",
"bottom-right",
"top-left",
"top-right"
],
type: "string"
}
},
type: "object"
},
distDir: {
minLength: 1,
type: "string",
nullable: true
},
env: {
type: "object"
},
eslint: {
additionalProperties: false,
properties: {
dirs: {
items: {
minLength: 1,
type: "string"
},
type: "array"
},
ignoreDuringBuilds: {
type: "boolean"
}
},
type: "object"
},
excludeDefaultMomentLocales: {
type: "boolean"
},
experimental: {
additionalProperties: false,
properties: {
amp: {
additionalProperties: false,
properties: {
optimizer: {
type: "object"
},
skipValidation: {
type: "boolean"
},
validator: {
type: "string"
}
},
type: "object"
},
appDir: {
type: "boolean"
},
browsersListForSwc: {
type: "boolean"
},
cpus: {
type: "number"
},
craCompat: {
type: "boolean"
},
disableOptimizedLoading: {
type: "boolean"
},
disablePostcssPresetEnv: {
type: "boolean"
},
esmExternals: {
type: "boolean"
},
externalDir: {
type: "boolean"
},
forceSwcTransforms: {
type: "boolean"
},
fullySpecified: {
type: "boolean"
},
gzipSize: {
type: "boolean"
},
images: {
additionalProperties: false,
properties: {
allowFutureImage: {
type: "boolean"
},
remotePatterns: {
items: {
additionalProperties: false,
properties: {
hostname: {
minLength: 1,
type: "string"
},
pathname: {
minLength: 1,
type: "string"
},
port: {
minLength: 1,
type: "string"
},
protocol: {
// automatic typing doesn't like enum
enum: [
"http",
"https"
],
type: "string"
}
},
type: "object"
},
type: "array"
},
unoptimized: {
type: "boolean"
}
},
type: "object"
},
incrementalCacheHandlerPath: {
type: "string"
},
isrFlushToDisk: {
type: "boolean"
},
isrMemoryCacheSize: {
type: "number"
},
largePageDataBytes: {
type: "number"
},
legacyBrowsers: {
type: "boolean"
},
manualClientBasePath: {
type: "boolean"
},
modularizeImports: {
type: "object"
},
newNextLinkBehavior: {
type: "boolean"
},
nextScriptWorkers: {
type: "boolean"
},
optimizeCss: {
oneOf: [
{
type: "boolean"
},
{
type: "object"
},
]
},
optimisticClientCache: {
type: "boolean"
},
outputFileTracingRoot: {
minLength: 1,
type: "string"
},
pageEnv: {
type: "boolean"
},
profiling: {
type: "boolean"
},
runtime: {
// automatic typing doesn't like enum
enum: [
"experimental-edge",
"nodejs"
],
type: "string"
},
scrollRestoration: {
type: "boolean"
},
serverComponents: {
type: "boolean"
},
sharedPool: {
type: "boolean"
},
skipMiddlewareUrlNormalize: {
type: "boolean"
},
skipTrailingSlashRedirect: {
type: "boolean"
},
swcFileReading: {
type: "boolean"
},
swcMinify: {
type: "boolean"
},
swcMinifyDebugOptions: {
additionalProperties: false,
properties: {
compress: {
type: "object"
},
mangle: {
type: "object"
}
},
type: "object"
},
swcPlugins: {
type: "array"
},
swcTraceProfiling: {
type: "boolean"
},
urlImports: {
items: {
type: "string"
},
type: "array"
},
workerThreads: {
type: "boolean"
}
},
type: "object"
},
exportPathMap: {
isFunction: true,
errorMessage: "must be a function that returns a Promise"
},
future: {
additionalProperties: false,
properties: {},
type: "object"
},
generateBuildId: {
isFunction: true,
errorMessage: "must be a function that returns a Promise"
},
generateEtags: {
type: "boolean"
},
headers: {
isFunction: true,
errorMessage: "must be a function that returns a Promise"
},
httpAgentOptions: {
additionalProperties: false,
properties: {
keepAlive: {
type: "boolean"
}
},
type: "object"
},
i18n: {
additionalProperties: false,
properties: {
defaultLocale: {
minLength: 1,
type: "string"
},
domains: {
items: {
additionalProperties: false,
properties: {
defaultLocale: {
minLength: 1,
type: "string"
},
domain: {
minLength: 1,
type: "string"
},
http: {
type: "boolean"
},
locales: {
items: {
minLength: 1,
type: "string"
},
type: "array"
}
},
type: "object"
},
type: "array"
},
localeDetection: {
type: "boolean"
},
locales: {
items: {
minLength: 1,
type: "string"
},
type: "array"
}
},
type: "object"
},
images: {
additionalProperties: false,
properties: {
contentSecurityPolicy: {
minLength: 1,
type: "string"
},
dangerouslyAllowSVG: {
type: "boolean"
},
deviceSizes: {
items: {
type: "number"
},
minItems: 1,
type: "array"
},
disableStaticImages: {
type: "boolean"
},
domains: {
items: {
type: "string"
},
type: "array"
},
formats: {
items: {
enum: [
"image/avif",
"image/webp"
],
type: "string"
},
type: "array"
},
imageSizes: {
items: {
type: "number"
},
minItems: 1,
type: "array"
},
loader: {
// automatic typing does not like enum
enum: _imageConfig.VALID_LOADERS,
type: "string"
},
minimumCacheTTL: {
type: "number"
},
path: {
minLength: 1,
type: "string"
}
},
type: "object"
},
onDemandEntries: {
additionalProperties: false,
properties: {
maxInactiveAge: {
type: "number"
},
pagesBufferLength: {
type: "number"
}
},
type: "object"
},
optimizeFonts: {
type: "boolean"
},
output: {
// automatic typing doesn't like enum
enum: [
"standalone"
],
type: "string"
},
outputFileTracing: {
type: "boolean"
},
pageExtensions: {
minItems: 1,
type: "array"
},
poweredByHeader: {
type: "boolean"
},
productionBrowserSourceMaps: {
type: "boolean"
},
publicRuntimeConfig: {
type: "object"
},
reactStrictMode: {
type: "boolean"
},
redirects: {
isFunction: true,
errorMessage: "must be a function that returns a Promise"
},
rewrites: {
isFunction: true,
errorMessage: "must be a function that returns a Promise"
},
sassOptions: {
type: "object"
},
serverRuntimeConfig: {
type: "object"
},
staticPageGenerationTimeout: {
type: "number"
},
swcMinify: {
type: "boolean"
},
trailingSlash: {
type: "boolean"
},
typescript: {
additionalProperties: false,
properties: {
ignoreBuildErrors: {
type: "boolean"
},
tsconfigPath: {
minLength: 1,
type: "string"
}
},
type: "object"
},
useFileSystemPublicRoutes: {
type: "boolean"
},
webpack: {
isFunction: true,
errorMessage: "must be a function that returns a webpack configuration object"
}
}
};
// module.exports is used to get around an export bug with TypeScript
// and the Ajv automatic typing
module.exports = {
configSchema
};
//# sourceMappingURL=config-schema.js.map