| 1 | 'use strict' |
| 2 | |
| 3 | function buildStandaloneCode (contextFunc, context, serializer, validator) { |
| 4 | let ajvDependencyCode = '' |
| 5 | if (context.validatorSchemasIds.size > 0) { |
| 6 | ajvDependencyCode += 'const Validator = require(\'fast-json-stringify/lib/validator\')\n' |
| 7 | ajvDependencyCode += `const validatorState = ${JSON.stringify(validator.getState())}\n` |
| 8 | ajvDependencyCode += 'const validator = Validator.restoreFromState(validatorState)\n' |
| 9 | } else { |
| 10 | ajvDependencyCode += 'const validator = null\n' |
| 11 | } |
| 12 | |
| 13 | // Don't need to keep external schemas once compiled |
| 14 | // validatorState will hold external schemas if it needs them |
| 15 | const { schema, ...serializerState } = serializer.getState() |
| 16 | |
| 17 | return ` |
| 18 | 'use strict' |
| 19 | |
| 20 | const Serializer = require('fast-json-stringify/lib/serializer') |
| 21 | const serializerState = ${JSON.stringify(serializerState)} |
| 22 | const serializer = Serializer.restoreFromState(serializerState) |
| 23 | |
| 24 | ${ajvDependencyCode} |
| 25 | |
| 26 | module.exports = ${contextFunc.toString()}(validator, serializer)` |
| 27 | } |
| 28 | |
| 29 | module.exports = buildStandaloneCode |
| 30 | |