Projektstart
This commit is contained in:
100
backend/node_modules/light-my-request/build/build-validation.js
generated
vendored
Normal file
100
backend/node_modules/light-my-request/build/build-validation.js
generated
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
'use strict'
|
||||
|
||||
const http = require('node:http')
|
||||
const AjvStandaloneCompiler = require('@fastify/ajv-compiler/standalone')
|
||||
const fs = require('node:fs')
|
||||
const path = require('node:path')
|
||||
|
||||
const urlSchema = {
|
||||
oneOf: [
|
||||
{ type: 'string' },
|
||||
{
|
||||
type: 'object',
|
||||
properties: {
|
||||
protocol: { type: 'string' },
|
||||
hostname: { type: 'string' },
|
||||
pathname: { type: 'string' }
|
||||
// port type => any
|
||||
// query type => any
|
||||
},
|
||||
additionalProperties: true,
|
||||
required: ['pathname']
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const schema = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
url: urlSchema,
|
||||
path: urlSchema,
|
||||
cookies: {
|
||||
type: 'object',
|
||||
additionalProperties: true
|
||||
},
|
||||
headers: {
|
||||
type: 'object',
|
||||
additionalProperties: true
|
||||
},
|
||||
query: {
|
||||
anyOf: [
|
||||
{
|
||||
type: 'object',
|
||||
additionalProperties: true
|
||||
},
|
||||
{
|
||||
type: 'string'
|
||||
}
|
||||
]
|
||||
},
|
||||
simulate: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
end: { type: 'boolean' },
|
||||
split: { type: 'boolean' },
|
||||
error: { type: 'boolean' },
|
||||
close: { type: 'boolean' }
|
||||
}
|
||||
},
|
||||
authority: { type: 'string' },
|
||||
remoteAddress: { type: 'string' },
|
||||
method: { type: 'string', enum: http.METHODS.concat(http.METHODS.map(toLowerCase)) },
|
||||
validate: { type: 'boolean' }
|
||||
// payload type => any
|
||||
},
|
||||
additionalProperties: true,
|
||||
oneOf: [
|
||||
{ required: ['url'] },
|
||||
{ required: ['path'] }
|
||||
]
|
||||
}
|
||||
|
||||
function toLowerCase (m) { return m.toLowerCase() }
|
||||
|
||||
const factory = AjvStandaloneCompiler({
|
||||
readMode: false,
|
||||
storeFunction (routeOpts, schemaValidationCode) {
|
||||
const moduleCode = `// This file is autogenerated by ${__filename.replace(__dirname, 'build')}, do not edit
|
||||
/* istanbul ignore file */
|
||||
/* eslint-disable */
|
||||
${schemaValidationCode}
|
||||
`
|
||||
const file = path.join(__dirname, '..', 'lib', 'config-validator.js')
|
||||
fs.writeFileSync(file, moduleCode)
|
||||
console.log(`Saved ${file} file successfully`)
|
||||
}
|
||||
})
|
||||
|
||||
const compiler = factory({}, {
|
||||
customOptions: {
|
||||
code: {
|
||||
source: true,
|
||||
lines: true,
|
||||
optimize: 3
|
||||
},
|
||||
removeAdditional: true,
|
||||
coerceTypes: true
|
||||
}
|
||||
})
|
||||
|
||||
compiler({ schema })
|
||||
Reference in New Issue
Block a user