This PR carries out general maintenance on TypeBox's build tooling as well as carries out a small refactor on the TypeBox redistributable package (renaming require and import sub directories to cjs and esm respectively). This to rename directories inline with community convention.
This PR also adds a https://esm.sh/ configuration to package.json to disable it's auto bundling strategy. It's noted that esm.sh will bundle each sub module entry point as a default, however this default behavior resulted in duplicates of TypeBox's FormatRegistry and TypeRegistry modules, meaning users registering types on the @sinclair/typebox registry would not be observed by the registry on @sinclair/typebox/value.
Additional information on this issue is documented at the following URLs
This configuration may be removed with the introduction on Type.Refine, with some consideration to providing users a side effect free alternative to type and format registration.
This PR carries out general maintenance on TypeBox's build tooling as well as carries out a small refactor on the TypeBox redistributable package (renaming
require
andimport
sub directories tocjs
andesm
respectively). This to rename directories inline with community convention.This PR also adds a https://esm.sh/ configuration to package.json to disable it's auto bundling strategy. It's noted that esm.sh will bundle each sub module entry point as a default, however this default behavior resulted in duplicates of TypeBox's FormatRegistry and TypeRegistry modules, meaning users registering types on the
@sinclair/typebox
registry would not be observed by the registry on@sinclair/typebox/value
.Additional information on this issue is documented at the following URLs
This configuration may be removed with the introduction on Type.Refine, with some consideration to providing users a side effect free alternative to type and format registration.