-
-
Notifications
You must be signed in to change notification settings - Fork 209
Open
Description
Prerequisites
- I have written a descriptive issue title
- I have searched existing issues to ensure the feature has not already been requested
🚀 Feature Proposal
Use the AJV code
option to decide if the standalone code generator would emit CJS (require/module
) or ESM (import/export
) instead of hardcoding require
and module.exports
as shown below in the standalone.js
file
fast-json-stringify/lib/standalone.js
Lines 14 to 23 in 74c35c0
const { dependencies } = require('fast-json-stringify/lib/standalone') | |
const { Serializer, Validator } = dependencies | |
const serializerState = ${JSON.stringify(serializer.getState())} | |
const serializer = Serializer.restoreFromState(serializerState) | |
${ajvDependencyCode} | |
module.exports = ${contextFunc.toString()}(validator, serializer)` |
Motivation
Typescript and ESM users will have to go through some build system configurations to resolve the require
in ESM runtime headache during development. Especially that the StandaloneValidator
from the @fastify/ajv-compiler
package respects the ESM AJV option out of the box.
If we can leverage the serializerOptions, Fastify users in ESM envirmenment can easily use a standalone serializers with the AJV options
ajv: {
code: { source: true, esm: true }
}
Example
No response
Metadata
Metadata
Assignees
Labels
No labels