diff --git a/changelog/0.34.0.md b/changelog/0.34.0.md index c0c59d33..c43d2060 100644 --- a/changelog/0.34.0.md +++ b/changelog/0.34.0.md @@ -3,6 +3,8 @@ --- ### Revision Updates +- [Revision 0.34.28](https://github.com/sinclairzx81/typebox/pull/1187) + - Add Cast to Configurable Parse Pipeline - [Revision 0.34.27](https://github.com/sinclairzx81/typebox/pull/1182) - [1178](https://github.com/sinclairzx81/typebox/issues/1178) Support Deep Referential Transform Inference Inside Modules - [Revision 0.34.26](https://github.com/sinclairzx81/typebox/pull/1181) diff --git a/package-lock.json b/package-lock.json index ac510958..f8b32007 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@sinclair/typebox", - "version": "0.34.27", + "version": "0.34.28", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@sinclair/typebox", - "version": "0.34.27", + "version": "0.34.28", "license": "MIT", "devDependencies": { "@arethetypeswrong/cli": "^0.13.2", diff --git a/package.json b/package.json index e59f3ed4..418e5421 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@sinclair/typebox", - "version": "0.34.27", + "version": "0.34.28", "description": "Json Schema Type Builder with Static Type Resolution for TypeScript", "keywords": [ "typescript", diff --git a/src/value/parse/parse.ts b/src/value/parse/parse.ts index 9654f1d4..429b0084 100644 --- a/src/value/parse/parse.ts +++ b/src/value/parse/parse.ts @@ -31,10 +31,11 @@ import { TransformDecode, TransformEncode, HasTransform } from '../transform/ind import { TSchema } from '../../type/schema/index' import { StaticDecode } from '../../type/static/index' import { Assert } from '../assert/index' -import { Default } from '../default/index' -import { Convert } from '../convert/index' +import { Cast } from '../cast/index' import { Clean } from '../clean/index' import { Clone } from '../clone/index' +import { Convert } from '../convert/index' +import { Default } from '../default/index' // ------------------------------------------------------------------ // Guards @@ -53,18 +54,19 @@ export class ParseError extends TypeBoxError { // ------------------------------------------------------------------ // ParseRegistry // ------------------------------------------------------------------ -export type TParseOperation = 'Clone' | 'Clean' | 'Default' | 'Convert' | 'Assert' | 'Decode' | 'Encode' | ({} & string) +export type TParseOperation = 'Assert' | 'Cast' | 'Clean' | 'Clone' | 'Convert' | 'Decode' | 'Default' | 'Encode' | ({} & string) export type TParseFunction = (type: TSchema, references: TSchema[], value: unknown) => unknown // prettier-ignore export namespace ParseRegistry { const registry = new Map([ - ['Clone', (_type, _references, value: unknown) => Clone(value)], + ['Assert', (type, references, value: unknown) => { Assert(type, references, value); return value }], + ['Cast', (type, references, value: unknown) => Cast(type, references, value)], ['Clean', (type, references, value: unknown) => Clean(type, references, value)], - ['Default', (type, references, value: unknown) => Default(type, references, value)], + ['Clone', (_type, _references, value: unknown) => Clone(value)], ['Convert', (type, references, value: unknown) => Convert(type, references, value)], - ['Assert', (type, references, value: unknown) => { Assert(type, references, value); return value }], ['Decode', (type, references, value: unknown) => (HasTransform(type, references) ? TransformDecode(type, references, value) : value)], + ['Default', (type, references, value: unknown) => Default(type, references, value)], ['Encode', (type, references, value: unknown) => (HasTransform(type, references) ? TransformEncode(type, references, value) : value)], ]) // Deletes an entry from the registry @@ -81,7 +83,7 @@ export namespace ParseRegistry { } } // ------------------------------------------------------------------ -// Default Parse Sequence +// Default Parse Pipeline // ------------------------------------------------------------------ // prettier-ignore export const ParseDefault = [