@mionjs/run-types 0.8.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dist/cjs/index.cjs +209 -0
- package/.dist/cjs/index.cjs.map +1 -0
- package/.dist/cjs/index.d.ts +60 -0
- package/.dist/cjs/package.json +1 -0
- package/.dist/cjs/src/constants.cjs +79 -0
- package/.dist/cjs/src/constants.cjs.map +1 -0
- package/.dist/cjs/src/constants.d.ts +7 -0
- package/.dist/cjs/src/constants.functions.cjs +181 -0
- package/.dist/cjs/src/constants.functions.cjs.map +1 -0
- package/.dist/cjs/src/constants.functions.d.ts +385 -0
- package/.dist/cjs/src/constants.kind.cjs +74 -0
- package/.dist/cjs/src/constants.kind.cjs.map +1 -0
- package/.dist/cjs/src/constants.kind.d.ts +21 -0
- package/.dist/cjs/src/createRunType.cjs +284 -0
- package/.dist/cjs/src/createRunType.cjs.map +1 -0
- package/.dist/cjs/src/createRunType.d.ts +5 -0
- package/.dist/cjs/src/createRunTypeFunctions.cjs +78 -0
- package/.dist/cjs/src/createRunTypeFunctions.cjs.map +1 -0
- package/.dist/cjs/src/createRunTypeFunctions.d.ts +12 -0
- package/.dist/cjs/src/formats.runtype.cjs +7 -0
- package/.dist/cjs/src/formats.runtype.cjs.map +1 -0
- package/.dist/cjs/src/formats.runtype.d.ts +6 -0
- package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.cjs +109 -0
- package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.cjs.map +1 -0
- package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +30 -0
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs +383 -0
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs.map +1 -0
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts +7 -0
- package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs +338 -0
- package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs.map +1 -0
- package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts +7 -0
- package/.dist/cjs/src/jitCompilers/equalsHelpers.cjs +37 -0
- package/.dist/cjs/src/jitCompilers/equalsHelpers.cjs.map +1 -0
- package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts +4 -0
- package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.cjs +56 -0
- package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.cjs.map +1 -0
- package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +27 -0
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs +399 -0
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs.map +1 -0
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts +10 -0
- package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.cjs +51 -0
- package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.cjs.map +1 -0
- package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +27 -0
- package/.dist/cjs/src/jitCompilers/json/toJsCode.cjs +123 -0
- package/.dist/cjs/src/jitCompilers/json/toJsCode.cjs.map +1 -0
- package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts +5 -0
- package/.dist/cjs/src/lib/baseRunTypeFormat.cjs +200 -0
- package/.dist/cjs/src/lib/baseRunTypeFormat.cjs.map +1 -0
- package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts +50 -0
- package/.dist/cjs/src/lib/baseRunTypes.cjs +308 -0
- package/.dist/cjs/src/lib/baseRunTypes.cjs.map +1 -0
- package/.dist/cjs/src/lib/baseRunTypes.d.ts +75 -0
- package/.dist/cjs/src/lib/createJitFunction.cjs +60 -0
- package/.dist/cjs/src/lib/createJitFunction.cjs.map +1 -0
- package/.dist/cjs/src/lib/createJitFunction.d.ts +5 -0
- package/.dist/cjs/src/lib/dkProxy.cjs +23 -0
- package/.dist/cjs/src/lib/dkProxy.cjs.map +1 -0
- package/.dist/cjs/src/lib/dkProxy.d.ts +4 -0
- package/.dist/cjs/src/lib/formats.cjs +89 -0
- package/.dist/cjs/src/lib/formats.cjs.map +1 -0
- package/.dist/cjs/src/lib/formats.d.ts +18 -0
- package/.dist/cjs/src/lib/guards.cjs +243 -0
- package/.dist/cjs/src/lib/guards.cjs.map +1 -0
- package/.dist/cjs/src/lib/guards.d.ts +120 -0
- package/.dist/cjs/src/lib/jitFnCompiler.cjs +648 -0
- package/.dist/cjs/src/lib/jitFnCompiler.cjs.map +1 -0
- package/.dist/cjs/src/lib/jitFnCompiler.d.ts +109 -0
- package/.dist/cjs/src/lib/jitFnsRegistry.cjs +41 -0
- package/.dist/cjs/src/lib/jitFnsRegistry.cjs.map +1 -0
- package/.dist/cjs/src/lib/jitFnsRegistry.d.ts +6 -0
- package/.dist/cjs/src/lib/typeId.cjs +205 -0
- package/.dist/cjs/src/lib/typeId.cjs.map +1 -0
- package/.dist/cjs/src/lib/typeId.d.ts +6 -0
- package/.dist/cjs/src/lib/utils.cjs +325 -0
- package/.dist/cjs/src/lib/utils.cjs.map +1 -0
- package/.dist/cjs/src/lib/utils.d.ts +32 -0
- package/.dist/cjs/src/mocking/constants.mock.cjs +108 -0
- package/.dist/cjs/src/mocking/constants.mock.cjs.map +1 -0
- package/.dist/cjs/src/mocking/constants.mock.d.ts +85 -0
- package/.dist/cjs/src/mocking/mockRegistry.cjs +12 -0
- package/.dist/cjs/src/mocking/mockRegistry.cjs.map +1 -0
- package/.dist/cjs/src/mocking/mockRegistry.d.ts +3 -0
- package/.dist/cjs/src/mocking/mockType.cjs +310 -0
- package/.dist/cjs/src/mocking/mockType.cjs.map +1 -0
- package/.dist/cjs/src/mocking/mockType.d.ts +3 -0
- package/.dist/cjs/src/mocking/mockUtils.cjs +62 -0
- package/.dist/cjs/src/mocking/mockUtils.cjs.map +1 -0
- package/.dist/cjs/src/mocking/mockUtils.d.ts +15 -0
- package/.dist/cjs/src/nodes/atomic/any.cjs +18 -0
- package/.dist/cjs/src/nodes/atomic/any.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/any.d.ts +8 -0
- package/.dist/cjs/src/nodes/atomic/bigInt.cjs +20 -0
- package/.dist/cjs/src/nodes/atomic/bigInt.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/bigInt.d.ts +10 -0
- package/.dist/cjs/src/nodes/atomic/boolean.cjs +20 -0
- package/.dist/cjs/src/nodes/atomic/boolean.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/boolean.d.ts +10 -0
- package/.dist/cjs/src/nodes/atomic/date.cjs +20 -0
- package/.dist/cjs/src/nodes/atomic/date.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/date.d.ts +10 -0
- package/.dist/cjs/src/nodes/atomic/enum.cjs +22 -0
- package/.dist/cjs/src/nodes/atomic/enum.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/enum.d.ts +8 -0
- package/.dist/cjs/src/nodes/atomic/enumMember.cjs +24 -0
- package/.dist/cjs/src/nodes/atomic/enumMember.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/enumMember.d.ts +10 -0
- package/.dist/cjs/src/nodes/atomic/literal.cjs +126 -0
- package/.dist/cjs/src/nodes/atomic/literal.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/literal.d.ts +20 -0
- package/.dist/cjs/src/nodes/atomic/never.cjs +22 -0
- package/.dist/cjs/src/nodes/atomic/never.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/never.d.ts +10 -0
- package/.dist/cjs/src/nodes/atomic/null.cjs +20 -0
- package/.dist/cjs/src/nodes/atomic/null.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/null.d.ts +10 -0
- package/.dist/cjs/src/nodes/atomic/number.cjs +20 -0
- package/.dist/cjs/src/nodes/atomic/number.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/number.d.ts +10 -0
- package/.dist/cjs/src/nodes/atomic/object.cjs +14 -0
- package/.dist/cjs/src/nodes/atomic/object.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/object.d.ts +8 -0
- package/.dist/cjs/src/nodes/atomic/regexp.cjs +23 -0
- package/.dist/cjs/src/nodes/atomic/regexp.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/regexp.d.ts +10 -0
- package/.dist/cjs/src/nodes/atomic/string.cjs +14 -0
- package/.dist/cjs/src/nodes/atomic/string.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/string.d.ts +8 -0
- package/.dist/cjs/src/nodes/atomic/symbol.cjs +26 -0
- package/.dist/cjs/src/nodes/atomic/symbol.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/symbol.d.ts +11 -0
- package/.dist/cjs/src/nodes/atomic/undefined.cjs +17 -0
- package/.dist/cjs/src/nodes/atomic/undefined.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/undefined.d.ts +9 -0
- package/.dist/cjs/src/nodes/atomic/unknown.cjs +8 -0
- package/.dist/cjs/src/nodes/atomic/unknown.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/unknown.d.ts +3 -0
- package/.dist/cjs/src/nodes/atomic/void.cjs +20 -0
- package/.dist/cjs/src/nodes/atomic/void.cjs.map +1 -0
- package/.dist/cjs/src/nodes/atomic/void.d.ts +10 -0
- package/.dist/cjs/src/nodes/collection/class.cjs +38 -0
- package/.dist/cjs/src/nodes/collection/class.cjs.map +1 -0
- package/.dist/cjs/src/nodes/collection/class.d.ts +9 -0
- package/.dist/cjs/src/nodes/collection/functionParams.cjs +33 -0
- package/.dist/cjs/src/nodes/collection/functionParams.cjs.map +1 -0
- package/.dist/cjs/src/nodes/collection/functionParams.d.ts +9 -0
- package/.dist/cjs/src/nodes/collection/interface.cjs +221 -0
- package/.dist/cjs/src/nodes/collection/interface.cjs.map +1 -0
- package/.dist/cjs/src/nodes/collection/interface.d.ts +43 -0
- package/.dist/cjs/src/nodes/collection/intersection.cjs +21 -0
- package/.dist/cjs/src/nodes/collection/intersection.cjs.map +1 -0
- package/.dist/cjs/src/nodes/collection/intersection.d.ts +9 -0
- package/.dist/cjs/src/nodes/collection/tuple.cjs +74 -0
- package/.dist/cjs/src/nodes/collection/tuple.cjs.map +1 -0
- package/.dist/cjs/src/nodes/collection/tuple.d.ts +18 -0
- package/.dist/cjs/src/nodes/collection/union.cjs +162 -0
- package/.dist/cjs/src/nodes/collection/union.cjs.map +1 -0
- package/.dist/cjs/src/nodes/collection/union.d.ts +19 -0
- package/.dist/cjs/src/nodes/collection/unionDiscriminator.cjs +198 -0
- package/.dist/cjs/src/nodes/collection/unionDiscriminator.cjs.map +1 -0
- package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts +21 -0
- package/.dist/cjs/src/nodes/function/function.cjs +155 -0
- package/.dist/cjs/src/nodes/function/function.cjs.map +1 -0
- package/.dist/cjs/src/nodes/function/function.d.ts +33 -0
- package/.dist/cjs/src/nodes/member/array.cjs +154 -0
- package/.dist/cjs/src/nodes/member/array.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/array.d.ts +24 -0
- package/.dist/cjs/src/nodes/member/callSignature.cjs +40 -0
- package/.dist/cjs/src/nodes/member/callSignature.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/callSignature.d.ts +11 -0
- package/.dist/cjs/src/nodes/member/genericMember.cjs +68 -0
- package/.dist/cjs/src/nodes/member/genericMember.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/genericMember.d.ts +15 -0
- package/.dist/cjs/src/nodes/member/indexProperty.cjs +130 -0
- package/.dist/cjs/src/nodes/member/indexProperty.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/indexProperty.d.ts +21 -0
- package/.dist/cjs/src/nodes/member/method.cjs +41 -0
- package/.dist/cjs/src/nodes/member/method.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/method.d.ts +11 -0
- package/.dist/cjs/src/nodes/member/methodSignature.cjs +44 -0
- package/.dist/cjs/src/nodes/member/methodSignature.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/methodSignature.d.ts +12 -0
- package/.dist/cjs/src/nodes/member/param.cjs +17 -0
- package/.dist/cjs/src/nodes/member/param.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/param.d.ts +8 -0
- package/.dist/cjs/src/nodes/member/property.cjs +85 -0
- package/.dist/cjs/src/nodes/member/property.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/property.d.ts +19 -0
- package/.dist/cjs/src/nodes/member/restParams.cjs +15 -0
- package/.dist/cjs/src/nodes/member/restParams.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/restParams.d.ts +7 -0
- package/.dist/cjs/src/nodes/member/tupleMember.cjs +93 -0
- package/.dist/cjs/src/nodes/member/tupleMember.cjs.map +1 -0
- package/.dist/cjs/src/nodes/member/tupleMember.d.ts +20 -0
- package/.dist/cjs/src/nodes/native/Iterable.cjs +135 -0
- package/.dist/cjs/src/nodes/native/Iterable.cjs.map +1 -0
- package/.dist/cjs/src/nodes/native/Iterable.d.ts +18 -0
- package/.dist/cjs/src/nodes/native/map.cjs +96 -0
- package/.dist/cjs/src/nodes/native/map.cjs.map +1 -0
- package/.dist/cjs/src/nodes/native/map.d.ts +42 -0
- package/.dist/cjs/src/nodes/native/nonSerializable.cjs +36 -0
- package/.dist/cjs/src/nodes/native/nonSerializable.cjs.map +1 -0
- package/.dist/cjs/src/nodes/native/nonSerializable.d.ts +14 -0
- package/.dist/cjs/src/nodes/native/promise.cjs +38 -0
- package/.dist/cjs/src/nodes/native/promise.cjs.map +1 -0
- package/.dist/cjs/src/nodes/native/promise.d.ts +15 -0
- package/.dist/cjs/src/nodes/native/set.cjs +60 -0
- package/.dist/cjs/src/nodes/native/set.cjs.map +1 -0
- package/.dist/cjs/src/nodes/native/set.d.ts +30 -0
- package/.dist/cjs/src/run-types-pure-fns.cjs +112 -0
- package/.dist/cjs/src/run-types-pure-fns.cjs.map +1 -0
- package/.dist/cjs/src/run-types-pure-fns.d.ts +7 -0
- package/.dist/cjs/src/types.cjs +59 -0
- package/.dist/cjs/src/types.cjs.map +1 -0
- package/.dist/cjs/src/types.d.ts +152 -0
- package/.dist/esm/index.d.ts +60 -0
- package/.dist/esm/index.js +209 -0
- package/.dist/esm/index.js.map +1 -0
- package/.dist/esm/src/constants.d.ts +7 -0
- package/.dist/esm/src/constants.functions.d.ts +385 -0
- package/.dist/esm/src/constants.functions.js +181 -0
- package/.dist/esm/src/constants.functions.js.map +1 -0
- package/.dist/esm/src/constants.js +79 -0
- package/.dist/esm/src/constants.js.map +1 -0
- package/.dist/esm/src/constants.kind.d.ts +21 -0
- package/.dist/esm/src/constants.kind.js +74 -0
- package/.dist/esm/src/constants.kind.js.map +1 -0
- package/.dist/esm/src/createRunType.d.ts +5 -0
- package/.dist/esm/src/createRunType.js +284 -0
- package/.dist/esm/src/createRunType.js.map +1 -0
- package/.dist/esm/src/createRunTypeFunctions.d.ts +12 -0
- package/.dist/esm/src/createRunTypeFunctions.js +78 -0
- package/.dist/esm/src/createRunTypeFunctions.js.map +1 -0
- package/.dist/esm/src/formats.runtype.d.ts +6 -0
- package/.dist/esm/src/formats.runtype.js +7 -0
- package/.dist/esm/src/formats.runtype.js.map +1 -0
- package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +30 -0
- package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.js +109 -0
- package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.js.map +1 -0
- package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts +7 -0
- package/.dist/esm/src/jitCompilers/binary/fromBinary.js +383 -0
- package/.dist/esm/src/jitCompilers/binary/fromBinary.js.map +1 -0
- package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts +7 -0
- package/.dist/esm/src/jitCompilers/binary/toBinary.js +338 -0
- package/.dist/esm/src/jitCompilers/binary/toBinary.js.map +1 -0
- package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts +4 -0
- package/.dist/esm/src/jitCompilers/equalsHelpers.js +37 -0
- package/.dist/esm/src/jitCompilers/equalsHelpers.js.map +1 -0
- package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +27 -0
- package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.js +56 -0
- package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.js.map +1 -0
- package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts +10 -0
- package/.dist/esm/src/jitCompilers/json/stringifyJson.js +399 -0
- package/.dist/esm/src/jitCompilers/json/stringifyJson.js.map +1 -0
- package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +27 -0
- package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.js +51 -0
- package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.js.map +1 -0
- package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts +5 -0
- package/.dist/esm/src/jitCompilers/json/toJsCode.js +123 -0
- package/.dist/esm/src/jitCompilers/json/toJsCode.js.map +1 -0
- package/.dist/esm/src/lib/baseRunTypeFormat.d.ts +50 -0
- package/.dist/esm/src/lib/baseRunTypeFormat.js +200 -0
- package/.dist/esm/src/lib/baseRunTypeFormat.js.map +1 -0
- package/.dist/esm/src/lib/baseRunTypes.d.ts +75 -0
- package/.dist/esm/src/lib/baseRunTypes.js +308 -0
- package/.dist/esm/src/lib/baseRunTypes.js.map +1 -0
- package/.dist/esm/src/lib/createJitFunction.d.ts +5 -0
- package/.dist/esm/src/lib/createJitFunction.js +60 -0
- package/.dist/esm/src/lib/createJitFunction.js.map +1 -0
- package/.dist/esm/src/lib/dkProxy.d.ts +4 -0
- package/.dist/esm/src/lib/dkProxy.js +23 -0
- package/.dist/esm/src/lib/dkProxy.js.map +1 -0
- package/.dist/esm/src/lib/formats.d.ts +18 -0
- package/.dist/esm/src/lib/formats.js +89 -0
- package/.dist/esm/src/lib/formats.js.map +1 -0
- package/.dist/esm/src/lib/guards.d.ts +120 -0
- package/.dist/esm/src/lib/guards.js +243 -0
- package/.dist/esm/src/lib/guards.js.map +1 -0
- package/.dist/esm/src/lib/jitFnCompiler.d.ts +109 -0
- package/.dist/esm/src/lib/jitFnCompiler.js +648 -0
- package/.dist/esm/src/lib/jitFnCompiler.js.map +1 -0
- package/.dist/esm/src/lib/jitFnsRegistry.d.ts +6 -0
- package/.dist/esm/src/lib/jitFnsRegistry.js +41 -0
- package/.dist/esm/src/lib/jitFnsRegistry.js.map +1 -0
- package/.dist/esm/src/lib/typeId.d.ts +6 -0
- package/.dist/esm/src/lib/typeId.js +205 -0
- package/.dist/esm/src/lib/typeId.js.map +1 -0
- package/.dist/esm/src/lib/utils.d.ts +32 -0
- package/.dist/esm/src/lib/utils.js +325 -0
- package/.dist/esm/src/lib/utils.js.map +1 -0
- package/.dist/esm/src/mocking/constants.mock.d.ts +85 -0
- package/.dist/esm/src/mocking/constants.mock.js +108 -0
- package/.dist/esm/src/mocking/constants.mock.js.map +1 -0
- package/.dist/esm/src/mocking/mockRegistry.d.ts +3 -0
- package/.dist/esm/src/mocking/mockRegistry.js +12 -0
- package/.dist/esm/src/mocking/mockRegistry.js.map +1 -0
- package/.dist/esm/src/mocking/mockType.d.ts +3 -0
- package/.dist/esm/src/mocking/mockType.js +310 -0
- package/.dist/esm/src/mocking/mockType.js.map +1 -0
- package/.dist/esm/src/mocking/mockUtils.d.ts +15 -0
- package/.dist/esm/src/mocking/mockUtils.js +62 -0
- package/.dist/esm/src/mocking/mockUtils.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/any.d.ts +8 -0
- package/.dist/esm/src/nodes/atomic/any.js +18 -0
- package/.dist/esm/src/nodes/atomic/any.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/bigInt.d.ts +10 -0
- package/.dist/esm/src/nodes/atomic/bigInt.js +20 -0
- package/.dist/esm/src/nodes/atomic/bigInt.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/boolean.d.ts +10 -0
- package/.dist/esm/src/nodes/atomic/boolean.js +20 -0
- package/.dist/esm/src/nodes/atomic/boolean.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/date.d.ts +10 -0
- package/.dist/esm/src/nodes/atomic/date.js +20 -0
- package/.dist/esm/src/nodes/atomic/date.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/enum.d.ts +8 -0
- package/.dist/esm/src/nodes/atomic/enum.js +22 -0
- package/.dist/esm/src/nodes/atomic/enum.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/enumMember.d.ts +10 -0
- package/.dist/esm/src/nodes/atomic/enumMember.js +24 -0
- package/.dist/esm/src/nodes/atomic/enumMember.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/literal.d.ts +20 -0
- package/.dist/esm/src/nodes/atomic/literal.js +126 -0
- package/.dist/esm/src/nodes/atomic/literal.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/never.d.ts +10 -0
- package/.dist/esm/src/nodes/atomic/never.js +22 -0
- package/.dist/esm/src/nodes/atomic/never.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/null.d.ts +10 -0
- package/.dist/esm/src/nodes/atomic/null.js +20 -0
- package/.dist/esm/src/nodes/atomic/null.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/number.d.ts +10 -0
- package/.dist/esm/src/nodes/atomic/number.js +20 -0
- package/.dist/esm/src/nodes/atomic/number.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/object.d.ts +8 -0
- package/.dist/esm/src/nodes/atomic/object.js +14 -0
- package/.dist/esm/src/nodes/atomic/object.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/regexp.d.ts +10 -0
- package/.dist/esm/src/nodes/atomic/regexp.js +23 -0
- package/.dist/esm/src/nodes/atomic/regexp.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/string.d.ts +8 -0
- package/.dist/esm/src/nodes/atomic/string.js +14 -0
- package/.dist/esm/src/nodes/atomic/string.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/symbol.d.ts +11 -0
- package/.dist/esm/src/nodes/atomic/symbol.js +26 -0
- package/.dist/esm/src/nodes/atomic/symbol.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/undefined.d.ts +9 -0
- package/.dist/esm/src/nodes/atomic/undefined.js +17 -0
- package/.dist/esm/src/nodes/atomic/undefined.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/unknown.d.ts +3 -0
- package/.dist/esm/src/nodes/atomic/unknown.js +8 -0
- package/.dist/esm/src/nodes/atomic/unknown.js.map +1 -0
- package/.dist/esm/src/nodes/atomic/void.d.ts +10 -0
- package/.dist/esm/src/nodes/atomic/void.js +20 -0
- package/.dist/esm/src/nodes/atomic/void.js.map +1 -0
- package/.dist/esm/src/nodes/collection/class.d.ts +9 -0
- package/.dist/esm/src/nodes/collection/class.js +38 -0
- package/.dist/esm/src/nodes/collection/class.js.map +1 -0
- package/.dist/esm/src/nodes/collection/functionParams.d.ts +9 -0
- package/.dist/esm/src/nodes/collection/functionParams.js +33 -0
- package/.dist/esm/src/nodes/collection/functionParams.js.map +1 -0
- package/.dist/esm/src/nodes/collection/interface.d.ts +43 -0
- package/.dist/esm/src/nodes/collection/interface.js +221 -0
- package/.dist/esm/src/nodes/collection/interface.js.map +1 -0
- package/.dist/esm/src/nodes/collection/intersection.d.ts +9 -0
- package/.dist/esm/src/nodes/collection/intersection.js +21 -0
- package/.dist/esm/src/nodes/collection/intersection.js.map +1 -0
- package/.dist/esm/src/nodes/collection/tuple.d.ts +18 -0
- package/.dist/esm/src/nodes/collection/tuple.js +74 -0
- package/.dist/esm/src/nodes/collection/tuple.js.map +1 -0
- package/.dist/esm/src/nodes/collection/union.d.ts +19 -0
- package/.dist/esm/src/nodes/collection/union.js +162 -0
- package/.dist/esm/src/nodes/collection/union.js.map +1 -0
- package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts +21 -0
- package/.dist/esm/src/nodes/collection/unionDiscriminator.js +198 -0
- package/.dist/esm/src/nodes/collection/unionDiscriminator.js.map +1 -0
- package/.dist/esm/src/nodes/function/function.d.ts +33 -0
- package/.dist/esm/src/nodes/function/function.js +155 -0
- package/.dist/esm/src/nodes/function/function.js.map +1 -0
- package/.dist/esm/src/nodes/member/array.d.ts +24 -0
- package/.dist/esm/src/nodes/member/array.js +154 -0
- package/.dist/esm/src/nodes/member/array.js.map +1 -0
- package/.dist/esm/src/nodes/member/callSignature.d.ts +11 -0
- package/.dist/esm/src/nodes/member/callSignature.js +40 -0
- package/.dist/esm/src/nodes/member/callSignature.js.map +1 -0
- package/.dist/esm/src/nodes/member/genericMember.d.ts +15 -0
- package/.dist/esm/src/nodes/member/genericMember.js +68 -0
- package/.dist/esm/src/nodes/member/genericMember.js.map +1 -0
- package/.dist/esm/src/nodes/member/indexProperty.d.ts +21 -0
- package/.dist/esm/src/nodes/member/indexProperty.js +130 -0
- package/.dist/esm/src/nodes/member/indexProperty.js.map +1 -0
- package/.dist/esm/src/nodes/member/method.d.ts +11 -0
- package/.dist/esm/src/nodes/member/method.js +41 -0
- package/.dist/esm/src/nodes/member/method.js.map +1 -0
- package/.dist/esm/src/nodes/member/methodSignature.d.ts +12 -0
- package/.dist/esm/src/nodes/member/methodSignature.js +44 -0
- package/.dist/esm/src/nodes/member/methodSignature.js.map +1 -0
- package/.dist/esm/src/nodes/member/param.d.ts +8 -0
- package/.dist/esm/src/nodes/member/param.js +17 -0
- package/.dist/esm/src/nodes/member/param.js.map +1 -0
- package/.dist/esm/src/nodes/member/property.d.ts +19 -0
- package/.dist/esm/src/nodes/member/property.js +85 -0
- package/.dist/esm/src/nodes/member/property.js.map +1 -0
- package/.dist/esm/src/nodes/member/restParams.d.ts +7 -0
- package/.dist/esm/src/nodes/member/restParams.js +15 -0
- package/.dist/esm/src/nodes/member/restParams.js.map +1 -0
- package/.dist/esm/src/nodes/member/tupleMember.d.ts +20 -0
- package/.dist/esm/src/nodes/member/tupleMember.js +93 -0
- package/.dist/esm/src/nodes/member/tupleMember.js.map +1 -0
- package/.dist/esm/src/nodes/native/Iterable.d.ts +18 -0
- package/.dist/esm/src/nodes/native/Iterable.js +135 -0
- package/.dist/esm/src/nodes/native/Iterable.js.map +1 -0
- package/.dist/esm/src/nodes/native/map.d.ts +42 -0
- package/.dist/esm/src/nodes/native/map.js +96 -0
- package/.dist/esm/src/nodes/native/map.js.map +1 -0
- package/.dist/esm/src/nodes/native/nonSerializable.d.ts +14 -0
- package/.dist/esm/src/nodes/native/nonSerializable.js +36 -0
- package/.dist/esm/src/nodes/native/nonSerializable.js.map +1 -0
- package/.dist/esm/src/nodes/native/promise.d.ts +15 -0
- package/.dist/esm/src/nodes/native/promise.js +38 -0
- package/.dist/esm/src/nodes/native/promise.js.map +1 -0
- package/.dist/esm/src/nodes/native/set.d.ts +30 -0
- package/.dist/esm/src/nodes/native/set.js +60 -0
- package/.dist/esm/src/nodes/native/set.js.map +1 -0
- package/.dist/esm/src/run-types-pure-fns.d.ts +7 -0
- package/.dist/esm/src/run-types-pure-fns.js +112 -0
- package/.dist/esm/src/run-types-pure-fns.js.map +1 -0
- package/.dist/esm/src/types.d.ts +152 -0
- package/.dist/esm/src/types.js +59 -0
- package/.dist/esm/src/types.js.map +1 -0
- package/LICENSE +21 -0
- package/README.md +32 -0
- package/package.json +66 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const type = require("@deepkit/type");
|
|
4
|
+
const src_constants_kind = require("../../constants.kind.cjs");
|
|
5
|
+
const src_constants_functions = require("../../constants.functions.cjs");
|
|
6
|
+
const src_lib_utils = require("../../lib/utils.cjs");
|
|
7
|
+
const src_runTypesPureFns = require("../../run-types-pure-fns.cjs");
|
|
8
|
+
function createStringifyCompiler(fnID) {
|
|
9
|
+
const compileStringifyIterable = createStringifyIterable(fnID);
|
|
10
|
+
function compileStringify(runType, comp) {
|
|
11
|
+
const src = runType.src;
|
|
12
|
+
const kind = src.kind;
|
|
13
|
+
switch (kind) {
|
|
14
|
+
// ###################### ATOMIC RUNTYPES ######################
|
|
15
|
+
// Primitive types and other atomic types that don't contain other types
|
|
16
|
+
case type.ReflectionKind.unknown:
|
|
17
|
+
case type.ReflectionKind.any:
|
|
18
|
+
return { code: `JSON.stringify(${comp.vλl})`, type: "E" };
|
|
19
|
+
case type.ReflectionKind.bigint:
|
|
20
|
+
return { code: `'"'+${comp.vλl}.toString()+'"'`, type: "E" };
|
|
21
|
+
case type.ReflectionKind.boolean:
|
|
22
|
+
return { code: `(${comp.vλl} ? 'true' : 'false')`, type: "E" };
|
|
23
|
+
case type.ReflectionKind.enum:
|
|
24
|
+
if (src.indexType.kind === type.ReflectionKind.number) return { code: comp.vλl, type: "E" };
|
|
25
|
+
return { code: `JSON.stringify(${comp.vλl})`, type: "E" };
|
|
26
|
+
case type.ReflectionKind.enumMember:
|
|
27
|
+
throw new Error("StringifyJson enum member is not supported.");
|
|
28
|
+
case type.ReflectionKind.literal: {
|
|
29
|
+
const rt = runType;
|
|
30
|
+
if (src.literal instanceof RegExp) return compileStringify({ src: { kind: type.ReflectionKind.regexp } }, comp);
|
|
31
|
+
const literalRt = runType;
|
|
32
|
+
const originalKind = src.kind;
|
|
33
|
+
let result;
|
|
34
|
+
switch (typeof rt.src.literal) {
|
|
35
|
+
case "number":
|
|
36
|
+
literalRt.src.kind = type.ReflectionKind.number;
|
|
37
|
+
result = compileStringify(literalRt, comp);
|
|
38
|
+
break;
|
|
39
|
+
case "string":
|
|
40
|
+
literalRt.src.kind = type.ReflectionKind.string;
|
|
41
|
+
result = compileStringify(literalRt, comp);
|
|
42
|
+
break;
|
|
43
|
+
case "boolean":
|
|
44
|
+
literalRt.src.kind = type.ReflectionKind.boolean;
|
|
45
|
+
result = compileStringify(literalRt, comp);
|
|
46
|
+
break;
|
|
47
|
+
case "bigint":
|
|
48
|
+
literalRt.src.kind = type.ReflectionKind.bigint;
|
|
49
|
+
result = compileStringify(literalRt, comp);
|
|
50
|
+
break;
|
|
51
|
+
case "symbol":
|
|
52
|
+
literalRt.src.kind = type.ReflectionKind.symbol;
|
|
53
|
+
result = compileStringify(literalRt, comp);
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
result = { code: `JSON.stringify(${comp.vλl})`, type: "E" };
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
literalRt.src.kind = originalKind;
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
case type.ReflectionKind.never:
|
|
63
|
+
throw new Error("Never type cannot be stringified.");
|
|
64
|
+
case type.ReflectionKind.null: {
|
|
65
|
+
const isRoot = comp.getNestLevel(runType) === 0;
|
|
66
|
+
return { code: isRoot ? `String(${comp.vλl})` : comp.vλl, type: "E" };
|
|
67
|
+
}
|
|
68
|
+
case type.ReflectionKind.number: {
|
|
69
|
+
const isRoot = comp.getNestLevel(runType) === 0;
|
|
70
|
+
return { code: isRoot ? `String(${comp.vλl})` : comp.vλl, type: "E" };
|
|
71
|
+
}
|
|
72
|
+
case type.ReflectionKind.object:
|
|
73
|
+
return { code: `JSON.stringify(${comp.vλl})`, type: "E" };
|
|
74
|
+
case type.ReflectionKind.regexp: {
|
|
75
|
+
return { code: `JSON.stringify(${comp.vλl}.toString())`, type: "E" };
|
|
76
|
+
}
|
|
77
|
+
case type.ReflectionKind.string: {
|
|
78
|
+
return { code: `JSON.stringify(${comp.vλl})`, type: "E" };
|
|
79
|
+
}
|
|
80
|
+
case type.ReflectionKind.symbol:
|
|
81
|
+
return { code: `JSON.stringify('Symbol:' + (${comp.vλl}.description || ''))`, type: "E" };
|
|
82
|
+
case type.ReflectionKind.templateLiteral:
|
|
83
|
+
throw new Error("Template Literals are not supported.");
|
|
84
|
+
case type.ReflectionKind.undefined: {
|
|
85
|
+
const isRoot = comp.getNestLevel(runType) === 0;
|
|
86
|
+
if (isRoot) return { code: `undefined`, type: "E" };
|
|
87
|
+
const parentIsArray = src_lib_utils.parentIs(runType, type.ReflectionKind.array);
|
|
88
|
+
if (parentIsArray) return { code: `'null'`, type: "E" };
|
|
89
|
+
return { code: `null`, type: "E" };
|
|
90
|
+
}
|
|
91
|
+
case type.ReflectionKind.void:
|
|
92
|
+
return { code: "undefined", type: "E" };
|
|
93
|
+
// ###################### MEMBER RUNTYPES ######################
|
|
94
|
+
// Types that represent members of collections or other structures
|
|
95
|
+
case type.ReflectionKind.array: {
|
|
96
|
+
const rt = runType;
|
|
97
|
+
rt.checkNonSkipTypes(comp);
|
|
98
|
+
const childJit = comp.compile(rt.getJitChild(comp), "E", fnID);
|
|
99
|
+
if (!childJit?.code) return { code: `JSON.stringify(${comp.vλl})`, type: "RB" };
|
|
100
|
+
const jsonItems = comp.getLocalVarName("ls", rt);
|
|
101
|
+
const resultVal = comp.getLocalVarName("res", rt);
|
|
102
|
+
const index = rt.getChildVarName(comp);
|
|
103
|
+
return {
|
|
104
|
+
code: `
|
|
105
|
+
const ${jsonItems} = [];
|
|
106
|
+
for (let ${index} = ${rt.startIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {
|
|
107
|
+
const ${resultVal} = ${childJit.code};
|
|
108
|
+
${jsonItems}.push(${resultVal});
|
|
109
|
+
}
|
|
110
|
+
return '[' + ${jsonItems}.join(',') + ']';
|
|
111
|
+
`,
|
|
112
|
+
type: "RB"
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
case type.ReflectionKind.indexSignature: {
|
|
116
|
+
const rt = runType;
|
|
117
|
+
const child = rt.getJitChild(comp);
|
|
118
|
+
const childJit = comp.compile(child, "E", fnID);
|
|
119
|
+
if (!child || !childJit?.code) return { code: void 0, type: "RB" };
|
|
120
|
+
const varName = comp.vλl;
|
|
121
|
+
const prop = rt.getChildVarName(comp);
|
|
122
|
+
const arrName = comp.getLocalVarName("ls", rt);
|
|
123
|
+
const sep = rt.skipCommas ? "" : '+","';
|
|
124
|
+
const skipCode = rt.getSkipCode(comp, prop);
|
|
125
|
+
const asJSONStringFn = comp.addPureFunction(src_runTypesPureFns.cpf_asJSONString);
|
|
126
|
+
return {
|
|
127
|
+
code: `
|
|
128
|
+
const ${arrName} = [];
|
|
129
|
+
for (const ${prop} in ${varName}) {
|
|
130
|
+
${skipCode}
|
|
131
|
+
if (${prop} !== undefined) ${arrName}.push(${asJSONStringFn}(${prop}) + ':' + ${childJit.code});
|
|
132
|
+
}
|
|
133
|
+
if (!${arrName}.length) return '';
|
|
134
|
+
return ${arrName}.join(',')${sep};
|
|
135
|
+
`,
|
|
136
|
+
type: "RB"
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
case type.ReflectionKind.function:
|
|
140
|
+
case type.ReflectionKind.method:
|
|
141
|
+
case type.ReflectionKind.methodSignature:
|
|
142
|
+
case type.ReflectionKind.callSignature:
|
|
143
|
+
if (runType.src.subKind === src_constants_kind.ReflectionSubKind.params) {
|
|
144
|
+
const rt = runType;
|
|
145
|
+
const skip = rt.skipJit(comp);
|
|
146
|
+
if (skip) return { code: "", type: "E" };
|
|
147
|
+
const params = rt.getParamRunTypes(comp);
|
|
148
|
+
if (params.length === 0) return { code: `'[]'`, type: "E" };
|
|
149
|
+
const paramsCode = params.map((p) => comp.compile(p, "E", fnID).code).join("+");
|
|
150
|
+
return { code: `'['+${paramsCode}+']'`, type: "E" };
|
|
151
|
+
} else {
|
|
152
|
+
throw new Error(
|
|
153
|
+
`Compile function ${getOperationName()} not supported, call compileParams or compileReturn instead.`
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
case type.ReflectionKind.parameter: {
|
|
157
|
+
const rt = runType;
|
|
158
|
+
switch (src.subKind) {
|
|
159
|
+
case src_constants_kind.ReflectionSubKind.mapKey:
|
|
160
|
+
case src_constants_kind.ReflectionSubKind.mapValue:
|
|
161
|
+
case src_constants_kind.ReflectionSubKind.setItem:
|
|
162
|
+
return compileStringifyGenericMember(rt, comp);
|
|
163
|
+
default:
|
|
164
|
+
return compileStringifyParameter(rt, comp);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
case type.ReflectionKind.property:
|
|
168
|
+
case type.ReflectionKind.propertySignature: {
|
|
169
|
+
const rt = runType;
|
|
170
|
+
const child = rt.getJitChild(comp);
|
|
171
|
+
const childJit = comp.compile(child, "E", fnID);
|
|
172
|
+
if (!child || !childJit?.code) return { code: void 0, type: "E" };
|
|
173
|
+
const sep = rt.skipCommas ? "" : '+","';
|
|
174
|
+
const propDef = getPropName(rt, comp);
|
|
175
|
+
if (rt.src.optional) {
|
|
176
|
+
rt.tempChildVλl = comp.getChildVλl();
|
|
177
|
+
return { code: `(${rt.tempChildVλl} === undefined ? '' : ${propDef}+${childJit.code}${sep})`, type: "E" };
|
|
178
|
+
}
|
|
179
|
+
return { code: `${propDef}+${childJit.code}${sep}`, type: "E" };
|
|
180
|
+
}
|
|
181
|
+
case type.ReflectionKind.rest: {
|
|
182
|
+
const rt = runType;
|
|
183
|
+
const childJit = comp.compile(rt.getJitChild(comp), "E", fnID);
|
|
184
|
+
const itemCodeStr = childJit?.code || "JSON.stringify(" + comp.getChildVλl() + ")";
|
|
185
|
+
const arrName = comp.getLocalVarName("res", rt);
|
|
186
|
+
const itemName = comp.getLocalVarName("its", rt);
|
|
187
|
+
const index = rt.getChildVarName(comp);
|
|
188
|
+
const isFist = rt.getChildIndex(comp) === 0;
|
|
189
|
+
const sep = isFist ? "" : `','+`;
|
|
190
|
+
return {
|
|
191
|
+
code: `
|
|
192
|
+
const ${arrName} = [];
|
|
193
|
+
for (let ${index} = ${rt.getChildIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {
|
|
194
|
+
const ${itemName} = ${itemCodeStr};
|
|
195
|
+
if(${itemName}) ${arrName}.push(${itemName});
|
|
196
|
+
}
|
|
197
|
+
if (!${arrName}.length) {return '';}
|
|
198
|
+
else {return ${sep}${arrName}.join(',')}
|
|
199
|
+
`,
|
|
200
|
+
type: "RB"
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
case type.ReflectionKind.tupleMember: {
|
|
204
|
+
const rt = runType;
|
|
205
|
+
const childJit = comp.compile(rt.getJitChild(comp), "E", fnID);
|
|
206
|
+
const childCodeStr = childJit?.code || `null`;
|
|
207
|
+
if (rt.isRest()) return childJit || { code: `null`, type: "E" };
|
|
208
|
+
const isFirst = rt.getChildIndex(comp) === 0;
|
|
209
|
+
const sep = isFirst ? "" : `','+`;
|
|
210
|
+
if (rt.isOptional())
|
|
211
|
+
return { code: `(${comp.getChildVλl()} === undefined ? ${sep}'null' : ${sep}${childCodeStr})`, type: "E" };
|
|
212
|
+
return { code: `${sep}${childCodeStr}`, type: "E" };
|
|
213
|
+
}
|
|
214
|
+
case type.ReflectionKind.promise: {
|
|
215
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
216
|
+
}
|
|
217
|
+
// ###################### COLLECTION RUNTYPES ######################
|
|
218
|
+
// Types that contain other types as members
|
|
219
|
+
case type.ReflectionKind.objectLiteral:
|
|
220
|
+
case type.ReflectionKind.intersection: {
|
|
221
|
+
if (runType.src.subKind === src_constants_kind.ReflectionSubKind.nonSerializable) {
|
|
222
|
+
throw new Error(`${getOperationName()} is disabled for Non Serializable types.`);
|
|
223
|
+
} else {
|
|
224
|
+
const rt = runType;
|
|
225
|
+
return compileStringifyInterface(rt, comp);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
case type.ReflectionKind.class:
|
|
229
|
+
return compileStringifyClass(runType, comp);
|
|
230
|
+
case type.ReflectionKind.infer:
|
|
231
|
+
throw new Error("Infer is not supported.");
|
|
232
|
+
case type.ReflectionKind.tuple: {
|
|
233
|
+
const rt = runType;
|
|
234
|
+
const skip = rt.skipJit(comp);
|
|
235
|
+
if (skip) return { code: "", type: "E" };
|
|
236
|
+
if (rt.getChildRunTypes().length === 0) return { code: `'[]'`, type: "E" };
|
|
237
|
+
const paramsCode = rt.getChildRunTypes().map((p) => comp.compile(p, "E", fnID).code).join("+");
|
|
238
|
+
return { code: `'['+${paramsCode}+']'`, type: "E" };
|
|
239
|
+
}
|
|
240
|
+
case type.ReflectionKind.typeParameter:
|
|
241
|
+
throw new Error("Type parameter not implemented.");
|
|
242
|
+
case type.ReflectionKind.union: {
|
|
243
|
+
const urt = runType;
|
|
244
|
+
urt.checkAllowedChildren(comp);
|
|
245
|
+
const { simpleItems, objectTypes, anyItem } = urt.getUnionChildren(comp);
|
|
246
|
+
const errName = comp.getLocalVarName("uErr", urt);
|
|
247
|
+
const fail = `throw new Error(${errName});`;
|
|
248
|
+
comp.setContextItem(
|
|
249
|
+
errName,
|
|
250
|
+
`const ${errName} = "Can not ${getOperationName()} union: item does not belong to the union"`
|
|
251
|
+
);
|
|
252
|
+
const ifElse = src_lib_utils.createIfElseFn();
|
|
253
|
+
const getStringifyCode = (unionItem) => {
|
|
254
|
+
const childJit = comp.compile(unionItem, "E", fnID);
|
|
255
|
+
const encJit = comp.compilePrepareForJson(unionItem, "E");
|
|
256
|
+
const decJit = comp.compileRestoreFromJson(unionItem, "E");
|
|
257
|
+
const needsTupleEncoding = !!encJit?.code || !!decJit?.code;
|
|
258
|
+
const skiEncode = !childJit?.code || childJit.code === comp.vλl;
|
|
259
|
+
const stringifyCode = skiEncode ? comp.vλl : childJit.code;
|
|
260
|
+
const index = urt.getUnionItemIndex(comp, unionItem);
|
|
261
|
+
const toTuple = `'[${index},' + ${stringifyCode} + ']'`;
|
|
262
|
+
const tupleCode = unionItem.getFamily() === "A" ? `(${toTuple})` : toTuple;
|
|
263
|
+
return needsTupleEncoding ? `return ${tupleCode}` : `return ${stringifyCode}`;
|
|
264
|
+
};
|
|
265
|
+
const simpleCode = simpleItems.map((unionItem) => {
|
|
266
|
+
const isTypeCode = urt.getChildIsTypeWithLooseCheck(unionItem, comp);
|
|
267
|
+
return `${ifElse()} (${isTypeCode}) {${getStringifyCode(unionItem)}}`;
|
|
268
|
+
});
|
|
269
|
+
const objCode = objectTypes.length ? objectTypes.map((unionItem) => {
|
|
270
|
+
const isTypeCode = urt.getChildIsTypeWithLooseCheck(unionItem, comp);
|
|
271
|
+
return `${ifElse()} (typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null && ${isTypeCode}) {${getStringifyCode(unionItem)}}`;
|
|
272
|
+
}) : [];
|
|
273
|
+
const anyCode = anyItem ? `${ifElse(true)} {${getStringifyCode(anyItem)}}` : `${ifElse(true)} {${fail}}`;
|
|
274
|
+
return { code: [...simpleCode, ...objCode, anyCode].join(""), type: "RB" };
|
|
275
|
+
}
|
|
276
|
+
default:
|
|
277
|
+
throw new Error(`Cant ${getOperationName()} for unsupported RunType: ${runType.getTypeName()}`);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
function getOperationName() {
|
|
281
|
+
switch (fnID) {
|
|
282
|
+
case src_constants_functions.JitFunctions.stringifyJson.id:
|
|
283
|
+
return "StringifyJson";
|
|
284
|
+
case src_constants_functions.JitFunctions.toJSCode.id:
|
|
285
|
+
return "ToCode";
|
|
286
|
+
default:
|
|
287
|
+
throw new Error(`Unknown operation: ${fnID}`);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
function getPropName(rt, comp) {
|
|
291
|
+
if (!src_lib_utils.isSafePropName(rt.src.name)) return `${JSON.stringify(rt.getChildLiteral(comp))}+':'`;
|
|
292
|
+
if (fnID === src_constants_functions.JitFunctions.toJSCode.id) return `'${rt.getChildVarName(comp)}:'`;
|
|
293
|
+
return `'"${rt.getChildVarName(comp)}":'`;
|
|
294
|
+
}
|
|
295
|
+
function compileStringifyParameter(rt, comp) {
|
|
296
|
+
const childJit = comp.compile(rt.getJitChild(comp), "E", fnID);
|
|
297
|
+
const childCodeStr = childJit?.code || `null`;
|
|
298
|
+
if (rt.isRest()) return childJit || { code: `null`, type: "E" };
|
|
299
|
+
const isFirst = rt.getChildIndex(comp) === 0;
|
|
300
|
+
const sep = isFirst ? "" : `','+`;
|
|
301
|
+
if (rt.isOptional())
|
|
302
|
+
return { code: `(${comp.getChildVλl()} === undefined ? ${sep}'null' : ${sep}${childCodeStr})`, type: "E" };
|
|
303
|
+
return { code: `${sep}${childCodeStr}`, type: "E" };
|
|
304
|
+
}
|
|
305
|
+
function compileStringifyGenericMember(rt, comp) {
|
|
306
|
+
const child = rt.getJitChild(comp);
|
|
307
|
+
const argCode = comp.compile(child, "E", fnID);
|
|
308
|
+
if (!argCode?.code) return { code: void 0, type: "E" };
|
|
309
|
+
const isFirst = rt.getChildIndex(comp) === 0;
|
|
310
|
+
const sep = isFirst ? "" : `','+`;
|
|
311
|
+
if (rt.isOptional()) return { code: `(${comp.getChildVλl()} === undefined ? '': ${sep}${argCode.code})`, type: "E" };
|
|
312
|
+
return { code: `${sep}${argCode.code}`, type: "E" };
|
|
313
|
+
}
|
|
314
|
+
function compileStringifyInterface(rt, comp) {
|
|
315
|
+
if (rt.isCallable()) return comp.compile(rt.getCallSignature(), "E", fnID);
|
|
316
|
+
const children = rt.getJsonStringifySortedChildren(comp);
|
|
317
|
+
if (children.length === 0) return { code: `''`, type: "E" };
|
|
318
|
+
const allOptional = children.every((prop) => prop.isOptional());
|
|
319
|
+
if (allOptional) return compileInterfaceIntoArray(rt, comp, children);
|
|
320
|
+
const childrenCode = children.map((prop, i) => {
|
|
321
|
+
const nexChild = children[i + 1];
|
|
322
|
+
const isLast = !nexChild;
|
|
323
|
+
prop.skipCommas = isLast;
|
|
324
|
+
return comp.compile(prop, "E", fnID).code;
|
|
325
|
+
}).filter(Boolean).join("+");
|
|
326
|
+
return { code: `'{'+${childrenCode}+'}'`, type: "E" };
|
|
327
|
+
}
|
|
328
|
+
function compileInterfaceIntoArray(rt, comp, children) {
|
|
329
|
+
const arrName = comp.getLocalVarName("ns", rt);
|
|
330
|
+
const childrenCode = children.map((prop) => {
|
|
331
|
+
prop.skipCommas = true;
|
|
332
|
+
const childJit = comp.compile(prop, "E", fnID);
|
|
333
|
+
if (!childJit?.code) return "";
|
|
334
|
+
const code = `${arrName}.push(${childJit.code})`;
|
|
335
|
+
return prop.isOptional() && prop.tempChildVλl ? `if (${prop.tempChildVλl} !== undefined){${code}}` : `${code};`;
|
|
336
|
+
}).filter(Boolean).join("");
|
|
337
|
+
return { code: `(function(){const ${arrName} = [];${childrenCode};return '{'+${arrName}.join(',')+'}'})()`, type: "E" };
|
|
338
|
+
}
|
|
339
|
+
function compileStringifyClass(runType, comp) {
|
|
340
|
+
switch (runType.src.subKind) {
|
|
341
|
+
case src_constants_kind.ReflectionSubKind.date:
|
|
342
|
+
return { code: `'"'+${comp.vλl}.toJSON()+'"'`, type: "E" };
|
|
343
|
+
case src_constants_kind.ReflectionSubKind.map: {
|
|
344
|
+
const rt = runType;
|
|
345
|
+
return compileStringifyIterable(rt, comp);
|
|
346
|
+
}
|
|
347
|
+
case src_constants_kind.ReflectionSubKind.set: {
|
|
348
|
+
const rt = runType;
|
|
349
|
+
return compileStringifyIterable(rt, comp);
|
|
350
|
+
}
|
|
351
|
+
case src_constants_kind.ReflectionSubKind.nonSerializable:
|
|
352
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
353
|
+
default: {
|
|
354
|
+
const rt = runType;
|
|
355
|
+
if (rt.isCallable()) {
|
|
356
|
+
const callSignature = rt.getCallSignature();
|
|
357
|
+
if (callSignature) return comp.compile(callSignature, "E", fnID);
|
|
358
|
+
}
|
|
359
|
+
const children = rt.getJsonStringifySortedChildren(comp);
|
|
360
|
+
if (children.length === 0) return { code: `''`, type: "E" };
|
|
361
|
+
const childrenCode = children.map((prop, i) => {
|
|
362
|
+
const nexChild = children[i + 1];
|
|
363
|
+
const isLast = !nexChild;
|
|
364
|
+
prop.skipCommas = isLast;
|
|
365
|
+
return comp.compile(prop, "E", fnID).code;
|
|
366
|
+
}).filter(Boolean).join("+");
|
|
367
|
+
return { code: `'{'+${childrenCode}+'}'`, type: "E" };
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
return compileStringify;
|
|
372
|
+
}
|
|
373
|
+
function createStringifyIterable(fnID) {
|
|
374
|
+
return function compileStringifyIterable(rt, comp, codePrefix = "", codeSuffix = "") {
|
|
375
|
+
const entry = rt.getCustomVλl(comp)?.vλl || comp.vλl;
|
|
376
|
+
const jitChildren = rt.getJitChildren(comp);
|
|
377
|
+
const childrenCode = jitChildren.map((c) => comp.compile(c, "E", fnID).code).join("+");
|
|
378
|
+
const jsonItems = comp.getLocalVarName("ls", rt);
|
|
379
|
+
const resultVal = comp.getLocalVarName("res", rt);
|
|
380
|
+
const childrenResult = jitChildren.length > 1 ? `'['+${childrenCode}+']'` : childrenCode;
|
|
381
|
+
const earlyReturn = codePrefix && codeSuffix ? `if (!${jsonItems}.length) return '${codePrefix}${codeSuffix}';` : "";
|
|
382
|
+
return {
|
|
383
|
+
code: `
|
|
384
|
+
const ${jsonItems} = [];
|
|
385
|
+
for (const ${entry} of ${comp.vλl}) {
|
|
386
|
+
const ${resultVal} = ${childrenResult};
|
|
387
|
+
${jsonItems}.push(${resultVal});
|
|
388
|
+
}
|
|
389
|
+
${earlyReturn}return '${codePrefix}[' + ${jsonItems}.join(',') + ']${codeSuffix}'
|
|
390
|
+
`,
|
|
391
|
+
type: "RB"
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
const emitJsonStringify = createStringifyCompiler(src_constants_functions.JitFunctions.stringifyJson.id);
|
|
396
|
+
exports.createStringifyCompiler = createStringifyCompiler;
|
|
397
|
+
exports.createStringifyIterable = createStringifyIterable;
|
|
398
|
+
exports.emitJsonStringify = emitJsonStringify;
|
|
399
|
+
//# sourceMappingURL=stringifyJson.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringifyJson.cjs","sources":["../../../../../src/jitCompilers/json/stringifyJson.ts"],"sourcesContent":["/* ########\n * 2025 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {ReflectionKind} from '@deepkit/type';\nimport {ReflectionSubKind} from '../../constants.kind.ts';\nimport {JitFunctions} from '../../constants.functions.ts';\nimport {JitFnCompiler} from '../../lib/jitFnCompiler.ts';\nimport {createIfElseFn, isSafePropName, parentIs} from '../../lib/utils.ts';\nimport type {IndexSignatureRunType} from '../../nodes/member/indexProperty.ts';\nimport type {JitCode} from '../../types.ts';\nimport type {BaseRunType} from '../../lib/baseRunTypes.ts';\nimport type {ClassRunType} from '../../nodes/collection/class.ts';\nimport type {PropertyRunType} from '../../nodes/member/property.ts';\nimport type {MapRunType} from '../../nodes/native/map.ts';\nimport type {SetRunType} from '../../nodes/native/set.ts';\nimport type {InterfaceRunType} from '../../nodes/collection/interface.ts';\nimport type {TupleRunType} from '../../nodes/collection/tuple.ts';\nimport type {FunctionParamsRunType} from '../../nodes/collection/functionParams.ts';\nimport type {UnionRunType} from '../../nodes/collection/union.ts';\nimport type {ParameterRunType} from '../../nodes/member/param.ts';\nimport type {RestParamsRunType} from '../../nodes/member/restParams.ts';\nimport type {ArrayRunType} from '../../nodes/member/array.ts';\nimport type {MemberRunType} from '../../lib/baseRunTypes.ts';\nimport type {LiteralRunType} from '../../nodes/atomic/literal.ts';\nimport type {IterableRunType} from '../../nodes/native/Iterable.ts';\nimport {cpf_asJSONString} from '../../run-types-pure-fns.ts';\n\ntype Operation = typeof JitFunctions.stringifyJson.id | typeof JitFunctions.toJSCode.id;\n\nexport function createStringifyCompiler(fnID: Operation) {\n const compileStringifyIterable = createStringifyIterable(fnID);\n /** Centralized compile jit function with a switch statement that handles all node types. */\n function compileStringify(runType: BaseRunType, comp: JitFnCompiler): JitCode {\n const src = runType.src;\n const kind = src.kind;\n\n switch (kind) {\n // ###################### ATOMIC RUNTYPES ######################\n // Primitive types and other atomic types that don't contain other types\n case ReflectionKind.unknown:\n case ReflectionKind.any:\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.bigint:\n return {code: `'\"'+${comp.vλl}.toString()+'\"'`, type: 'E'};\n case ReflectionKind.boolean:\n return {code: `(${comp.vλl} ? 'true' : 'false')`, type: 'E'};\n case ReflectionKind.enum:\n if (src.indexType.kind === ReflectionKind.number) return {code: comp.vλl, type: 'E'};\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.enumMember:\n throw new Error('StringifyJson enum member is not supported.');\n case ReflectionKind.literal: {\n const rt = runType as LiteralRunType;\n if (src.literal instanceof RegExp) return compileStringify({src: {kind: ReflectionKind.regexp}} as any, comp);\n const literalRt = runType;\n const originalKind = src.kind;\n let result: JitCode;\n switch (typeof rt.src.literal) {\n case 'number':\n literalRt.src.kind = ReflectionKind.number;\n result = compileStringify(literalRt, comp);\n break;\n case 'string':\n literalRt.src.kind = ReflectionKind.string;\n result = compileStringify(literalRt, comp);\n break;\n case 'boolean':\n literalRt.src.kind = ReflectionKind.boolean;\n result = compileStringify(literalRt, comp);\n break;\n case 'bigint':\n literalRt.src.kind = ReflectionKind.bigint;\n result = compileStringify(literalRt, comp);\n break;\n case 'symbol':\n literalRt.src.kind = ReflectionKind.symbol;\n result = compileStringify(literalRt, comp);\n break;\n default:\n result = {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n break;\n }\n literalRt.src.kind = originalKind;\n return result;\n }\n case ReflectionKind.never:\n throw new Error('Never type cannot be stringified.');\n case ReflectionKind.null: {\n const isRoot = comp.getNestLevel(runType) === 0;\n return {code: isRoot ? `String(${comp.vλl})` : comp.vλl, type: 'E'};\n }\n case ReflectionKind.number: {\n const isRoot = comp.getNestLevel(runType) === 0;\n return {code: isRoot ? `String(${comp.vλl})` : comp.vλl, type: 'E'};\n }\n case ReflectionKind.object:\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.regexp: {\n return {code: `JSON.stringify(${comp.vλl}.toString())`, type: 'E'};\n }\n case ReflectionKind.string: {\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n }\n case ReflectionKind.symbol:\n return {code: `JSON.stringify('Symbol:' + (${comp.vλl}.description || ''))`, type: 'E'};\n case ReflectionKind.templateLiteral:\n throw new Error('Template Literals are not supported.');\n case ReflectionKind.undefined: {\n const isRoot = comp.getNestLevel(runType) === 0;\n if (isRoot) return {code: `undefined`, type: 'E'};\n const parentIsArray = parentIs(runType, ReflectionKind.array);\n if (parentIsArray) return {code: `'null'`, type: 'E'}; // we use array.join(',') to serialize arrays, so we need to return null literal (string)\n return {code: `null`, type: 'E'};\n }\n case ReflectionKind.void:\n return {code: 'undefined', type: 'E'};\n\n // ###################### MEMBER RUNTYPES ######################\n // Types that represent members of collections or other structures\n case ReflectionKind.array: {\n const rt = runType as ArrayRunType;\n rt.checkNonSkipTypes(comp);\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n if (!childJit?.code) return {code: `JSON.stringify(${comp.vλl})`, type: 'RB'};\n const jsonItems = comp.getLocalVarName('ls', rt);\n const resultVal = comp.getLocalVarName('res', rt);\n const index = rt.getChildVarName(comp);\n return {\n code: `\n const ${jsonItems} = [];\n for (let ${index} = ${rt.startIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {\n const ${resultVal} = ${childJit.code};\n ${jsonItems}.push(${resultVal});\n }\n return '[' + ${jsonItems}.join(',') + ']';\n `,\n type: 'RB',\n };\n }\n case ReflectionKind.indexSignature: {\n const rt = runType as IndexSignatureRunType;\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'E', fnID);\n if (!child || !childJit?.code) return {code: undefined, type: 'RB'};\n const varName = comp.vλl;\n const prop = rt.getChildVarName(comp);\n const arrName = comp.getLocalVarName('ls', rt);\n const sep = rt.skipCommas ? '' : '+\",\"';\n const skipCode = rt.getSkipCode(comp, prop);\n // asJSONString is more optimized for propNames than JSON.stringify\n // in Node, bun is actually slower so we might consider removing this and use native JSON.stringify\n const asJSONStringFn = comp.addPureFunction(cpf_asJSONString);\n return {\n code: `\n const ${arrName} = [];\n for (const ${prop} in ${varName}) {\n ${skipCode}\n if (${prop} !== undefined) ${arrName}.push(${asJSONStringFn}(${prop}) + ':' + ${childJit.code});\n }\n if (!${arrName}.length) return '';\n return ${arrName}.join(',')${sep};\n `,\n type: 'RB',\n };\n }\n case ReflectionKind.function:\n case ReflectionKind.method:\n case ReflectionKind.methodSignature:\n case ReflectionKind.callSignature:\n if (runType.src.subKind === ReflectionSubKind.params) {\n const rt = runType as FunctionParamsRunType;\n const skip = rt.skipJit(comp);\n if (skip) return {code: '', type: 'E'};\n const params = rt.getParamRunTypes(comp);\n if (params.length === 0) return {code: `'[]'`, type: 'E'};\n const paramsCode = params.map((p) => comp.compile(p, 'E', fnID).code).join('+');\n return {code: `'['+${paramsCode}+']'`, type: 'E'};\n } else {\n throw new Error(\n `Compile function ${getOperationName()} not supported, call compileParams or compileReturn instead.`\n );\n }\n case ReflectionKind.parameter: {\n const rt = runType as ParameterRunType;\n switch (src.subKind) {\n case ReflectionSubKind.mapKey:\n case ReflectionSubKind.mapValue:\n case ReflectionSubKind.setItem:\n return compileStringifyGenericMember(rt, comp);\n default:\n return compileStringifyParameter(rt, comp);\n }\n }\n case ReflectionKind.property:\n case ReflectionKind.propertySignature: {\n const rt = runType as PropertyRunType;\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'E', fnID);\n if (!child || !childJit?.code) return {code: undefined, type: 'E'};\n // this can´t be processed in the parent as we need to handle the empty string case when value is undefined\n const sep = rt.skipCommas ? '' : '+\",\"';\n // encoding safe property with ':' inside the string saves a little processing\n // when prop is not safe we need to double encode double quotes and escape characters\n const propDef = getPropName(rt, comp);\n if (rt.src.optional) {\n rt.tempChildVλl = comp.getChildVλl();\n // TODO: check if json for an object with first property undefined is valid (maybe the comma must be dynamic too)\n return {code: `(${rt.tempChildVλl} === undefined ? '' : ${propDef}+${childJit.code}${sep})`, type: 'E'};\n }\n return {code: `${propDef}+${childJit.code}${sep}`, type: 'E'};\n }\n case ReflectionKind.rest: {\n const rt = runType as RestParamsRunType;\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n const itemCodeStr = childJit?.code || 'JSON.stringify(' + comp.getChildVλl() + ')';\n const arrName = comp.getLocalVarName('res', rt);\n const itemName = comp.getLocalVarName('its', rt);\n const index = rt.getChildVarName(comp);\n const isFist = rt.getChildIndex(comp) === 0;\n const sep = isFist ? '' : `','+`;\n return {\n code: `\n const ${arrName} = [];\n for (let ${index} = ${rt.getChildIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {\n const ${itemName} = ${itemCodeStr};\n if(${itemName}) ${arrName}.push(${itemName});\n }\n if (!${arrName}.length) {return '';}\n else {return ${sep}${arrName}.join(',')}\n `,\n type: 'RB',\n };\n }\n case ReflectionKind.tupleMember: {\n const rt = runType as ParameterRunType;\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n const childCodeStr = childJit?.code || `null`; // non serializable types are set to null\n if (rt.isRest()) return childJit || {code: `null`, type: 'E'};\n const isFirst = rt.getChildIndex(comp) === 0;\n const sep = isFirst ? '' : `','+`;\n if (rt.isOptional())\n return {code: `(${comp.getChildVλl()} === undefined ? ${sep}'null' : ${sep}${childCodeStr})`, type: 'E'};\n return {code: `${sep}${childCodeStr}`, type: 'E'};\n }\n case ReflectionKind.promise: {\n throw new Error(`Jit compilation disabled for Non Serializable types.`);\n }\n\n // ###################### COLLECTION RUNTYPES ######################\n // Types that contain other types as members\n case ReflectionKind.objectLiteral:\n case ReflectionKind.intersection: {\n if (runType.src.subKind === ReflectionSubKind.nonSerializable) {\n throw new Error(`${getOperationName()} is disabled for Non Serializable types.`);\n } else {\n const rt = runType as InterfaceRunType;\n return compileStringifyInterface(rt, comp);\n }\n }\n case ReflectionKind.class:\n return compileStringifyClass(runType, comp);\n case ReflectionKind.infer:\n throw new Error('Infer is not supported.');\n case ReflectionKind.tuple: {\n const rt = runType as TupleRunType;\n const skip = rt.skipJit(comp);\n if (skip) return {code: '', type: 'E'};\n if (rt.getChildRunTypes().length === 0) return {code: `'[]'`, type: 'E'};\n const paramsCode = rt\n .getChildRunTypes()\n .map((p) => comp.compile(p, 'E', fnID).code)\n .join('+');\n return {code: `'['+${paramsCode}+']'`, type: 'E'};\n }\n case ReflectionKind.typeParameter:\n // Type parameter has been replaced by tuple member internally so this should never be called\n throw new Error('Type parameter not implemented.');\n case ReflectionKind.union: {\n const urt = runType as UnionRunType;\n urt.checkAllowedChildren(comp);\n const {simpleItems, objectTypes, anyItem} = urt.getUnionChildren(comp);\n const errName = comp.getLocalVarName('uErr', urt);\n const fail = `throw new Error(${errName});`;\n comp.setContextItem(\n errName,\n `const ${errName} = \"Can not ${getOperationName()} union: item does not belong to the union\"`\n );\n const ifElse = createIfElseFn();\n // Helper to generate stringify code for a union item\n const getStringifyCode = (unionItem: BaseRunType) => {\n const childJit = comp.compile(unionItem, 'E', fnID);\n const encJit = comp.compilePrepareForJson(unionItem, 'E');\n const decJit = comp.compileRestoreFromJson(unionItem, 'E');\n const needsTupleEncoding = !!encJit?.code || !!decJit?.code;\n const skiEncode = !childJit?.code || childJit.code === comp.vλl;\n const stringifyCode = skiEncode ? comp.vλl : childJit.code;\n const index = urt.getUnionItemIndex(comp, unionItem);\n const toTuple = `'[${index},' + ${stringifyCode} + ']'`;\n const tupleCode = unionItem.getFamily() === 'A' ? `(${toTuple})` : toTuple;\n return needsTupleEncoding ? `return ${tupleCode}` : `return ${stringifyCode}`;\n };\n // Generate code for simple items (atomic types)\n const simpleCode = simpleItems.map((unionItem) => {\n const isTypeCode = urt.getChildIsTypeWithLooseCheck(unionItem, comp);\n return `${ifElse()} (${isTypeCode}) {${getStringifyCode(unionItem)}}`;\n });\n // Generate code for object types (need null guard)\n const objCode = objectTypes.length\n ? objectTypes.map((unionItem) => {\n const isTypeCode = urt.getChildIsTypeWithLooseCheck(unionItem, comp);\n return `${ifElse()} (typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null && ${isTypeCode}) {${getStringifyCode(unionItem)}}`;\n })\n : [];\n // Generate code for anyItem (always matches, checked last as fallback)\n const anyCode = anyItem ? `${ifElse(true)} {${getStringifyCode(anyItem)}}` : `${ifElse(true)} {${fail}}`;\n\n return {code: [...simpleCode, ...objCode, anyCode].join(''), type: 'RB'};\n }\n default:\n throw new Error(`Cant ${getOperationName()} for unsupported RunType: ${runType.getTypeName()}`);\n }\n }\n\n function getOperationName() {\n switch (fnID) {\n case JitFunctions.stringifyJson.id:\n return 'StringifyJson';\n case JitFunctions.toJSCode.id:\n return 'ToCode';\n default:\n throw new Error(`Unknown operation: ${fnID}`);\n }\n }\n\n function getPropName(rt: PropertyRunType, comp: JitFnCompiler): string {\n if (!isSafePropName(rt.src.name)) return `${JSON.stringify(rt.getChildLiteral(comp) as string)}+':'`;\n if (fnID === JitFunctions.toJSCode.id) return `'${rt.getChildVarName(comp)}:'`;\n return `'\"${rt.getChildVarName(comp)}\":'`;\n }\n\n function compileStringifyParameter(rt: ParameterRunType, comp: JitFnCompiler): JitCode {\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n const childCodeStr = childJit?.code || `null`; // non serializable types are set to null\n if (rt.isRest()) return childJit || {code: `null`, type: 'E'};\n const isFirst = rt.getChildIndex(comp) === 0;\n const sep = isFirst ? '' : `','+`;\n if (rt.isOptional())\n return {code: `(${comp.getChildVλl()} === undefined ? ${sep}'null' : ${sep}${childCodeStr})`, type: 'E'};\n return {code: `${sep}${childCodeStr}`, type: 'E'};\n }\n\n function compileStringifyGenericMember(rt: ParameterRunType, comp: JitFnCompiler): JitCode {\n const child = rt.getJitChild(comp);\n const argCode = comp.compile(child, 'E', fnID);\n if (!argCode?.code) return {code: undefined, type: 'E'};\n const isFirst = rt.getChildIndex(comp) === 0;\n const sep = isFirst ? '' : `','+`;\n if (rt.isOptional()) return {code: `(${comp.getChildVλl()} === undefined ? '': ${sep}${argCode.code})`, type: 'E'};\n return {code: `${sep}${argCode.code}`, type: 'E'};\n }\n\n function compileStringifyInterface(rt: InterfaceRunType, comp: JitFnCompiler): JitCode {\n if (rt.isCallable()) return comp.compile(rt.getCallSignature(), 'E', fnID);\n const children = rt.getJsonStringifySortedChildren(comp);\n if (children.length === 0) return {code: `''`, type: 'E'};\n const allOptional = children.every((prop) => (prop as MemberRunType<any>).isOptional());\n // if all properties are optional, we can not optimize and use JSON.stringify\n if (allOptional) return compileInterfaceIntoArray(rt, comp, children);\n const childrenCode = children\n .map((prop, i) => {\n const nexChild = children[i + 1];\n const isLast = !nexChild;\n prop.skipCommas = isLast;\n return comp.compile(prop, 'E', fnID).code;\n })\n .filter(Boolean)\n .join('+');\n return {code: `'{'+${childrenCode}+'}'`, type: 'E'};\n }\n\n function compileInterfaceIntoArray(rt: InterfaceRunType, comp: JitFnCompiler, children: MemberRunType<any>[]): JitCode {\n const arrName = comp.getLocalVarName('ns', rt);\n const childrenCode = children\n .map((prop) => {\n prop.skipCommas = true;\n const childJit = comp.compile(prop, 'E', fnID);\n if (!childJit?.code) return '';\n const code = `${arrName}.push(${childJit.code})`;\n // makes an extra check to avoid pushing empty strings to the array (childJit also makes the same check but is better than having to filter the array after)\n return prop.isOptional() && prop.tempChildVλl ? `if (${prop.tempChildVλl} !== undefined){${code}}` : `${code};`;\n })\n .filter(Boolean)\n .join('');\n\n return {code: `(function(){const ${arrName} = [];${childrenCode};return '{'+${arrName}.join(',')+'}'})()`, type: 'E'};\n }\n\n function compileStringifyClass(runType: BaseRunType, comp: JitFnCompiler): JitCode {\n switch (runType.src.subKind) {\n case ReflectionSubKind.date:\n return {code: `'\"'+${comp.vλl}.toJSON()+'\"'`, type: 'E'};\n case ReflectionSubKind.map: {\n const rt = runType as unknown as MapRunType;\n return compileStringifyIterable(rt as unknown as IterableRunType, comp);\n }\n case ReflectionSubKind.set: {\n const rt = runType as unknown as SetRunType;\n return compileStringifyIterable(rt as unknown as IterableRunType, comp);\n }\n case ReflectionSubKind.nonSerializable:\n throw new Error(`Jit compilation disabled for Non Serializable types.`);\n default: {\n const rt = runType as unknown as ClassRunType;\n if (rt.isCallable()) {\n const callSignature = rt.getCallSignature();\n if (callSignature) return comp.compile(callSignature, 'E', fnID);\n }\n // optional and index properties must be compiled first to prevent trailing commas\n // this is because the last trailing comma is calculated statically\n // maybe we need to move that trailing comma compilation to be dynamic\n // but we would need to create a self invoking function for that\n const children = rt.getJsonStringifySortedChildren(comp);\n if (children.length === 0) return {code: `''`, type: 'E'};\n const childrenCode = children\n .map((prop, i) => {\n const nexChild = children[i + 1];\n const isLast = !nexChild;\n prop.skipCommas = isLast;\n return comp.compile(prop, 'E', fnID).code;\n })\n .filter(Boolean)\n .join('+');\n return {code: `'{'+${childrenCode}+'}'`, type: 'E'};\n }\n }\n }\n\n return compileStringify;\n}\n\nexport function createStringifyIterable(fnID: Operation) {\n return function compileStringifyIterable(\n rt: IterableRunType,\n comp: JitFnCompiler,\n /** prefix characters to add before the generated array, used when generating code instead json */\n codePrefix: string = '',\n /** suffix characters to add after the generated array, used when generating code instead json */\n codeSuffix: string = ''\n ): JitCode {\n const entry = rt.getCustomVλl(comp)?.vλl || comp.vλl;\n const jitChildren = rt.getJitChildren(comp);\n const childrenCode = jitChildren.map((c) => comp.compile(c, 'E', fnID).code).join('+');\n const jsonItems = comp.getLocalVarName('ls', rt);\n const resultVal = comp.getLocalVarName('res', rt);\n const childrenResult = jitChildren.length > 1 ? `'['+${childrenCode}+']'` : childrenCode;\n const earlyReturn = codePrefix && codeSuffix ? `if (!${jsonItems}.length) return '${codePrefix}${codeSuffix}';` : '';\n return {\n code: `\n const ${jsonItems} = [];\n for (const ${entry} of ${comp.vλl}) {\n const ${resultVal} = ${childrenResult};\n ${jsonItems}.push(${resultVal});\n }\n ${earlyReturn}return '${codePrefix}[' + ${jsonItems}.join(',') + ']${codeSuffix}'\n `,\n type: 'RB',\n };\n };\n}\n\nexport const emitJsonStringify = createStringifyCompiler(JitFunctions.stringifyJson.id);\n"],"names":["ReflectionKind","parentIs","cpf_asJSONString","ReflectionSubKind","createIfElseFn","JitFunctions","isSafePropName"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JitFunctions } from '../../constants.functions.ts';
|
|
2
|
+
import { JitFnCompiler } from '../../lib/jitFnCompiler.ts';
|
|
3
|
+
import { JitCode } from '../../types.ts';
|
|
4
|
+
import { BaseRunType } from '../../lib/baseRunTypes.ts';
|
|
5
|
+
import { IterableRunType } from '../../nodes/native/Iterable.ts';
|
|
6
|
+
type Operation = typeof JitFunctions.stringifyJson.id | typeof JitFunctions.toJSCode.id;
|
|
7
|
+
export declare function createStringifyCompiler(fnID: Operation): (runType: BaseRunType, comp: JitFnCompiler) => JitCode;
|
|
8
|
+
export declare function createStringifyIterable(fnID: Operation): (rt: IterableRunType, comp: JitFnCompiler, codePrefix?: string, codeSuffix?: string) => JitCode;
|
|
9
|
+
export declare const emitJsonStringify: (runType: BaseRunType, comp: JitFnCompiler) => JitCode;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const src_constants_functions = require("../../../constants.functions.cjs");
|
|
4
|
+
const SERIALIZE_FN = src_constants_functions.JitFunctions.stringifyJson;
|
|
5
|
+
const DESERIALIZE_FN = src_constants_functions.JitFunctions.restoreFromJson;
|
|
6
|
+
function createSerializationFns(rt) {
|
|
7
|
+
const serialize = rt.createJitFunction(SERIALIZE_FN);
|
|
8
|
+
const restoreFromJson = rt.createJitFunction(DESERIALIZE_FN);
|
|
9
|
+
const deserialize = (data) => restoreFromJson(JSON.parse(data));
|
|
10
|
+
return { serialize, deserialize };
|
|
11
|
+
}
|
|
12
|
+
function createSerializationParamsFn(rt, sliceStart) {
|
|
13
|
+
const params = typeof sliceStart === "number" ? { paramsSlice: { start: sliceStart } } : void 0;
|
|
14
|
+
const serialize = rt.createJitParamsFunction(SERIALIZE_FN, params);
|
|
15
|
+
const restoreFromJson = rt.createJitParamsFunction(DESERIALIZE_FN, params);
|
|
16
|
+
const deserialize = (data) => restoreFromJson(JSON.parse(data));
|
|
17
|
+
return { serialize, deserialize };
|
|
18
|
+
}
|
|
19
|
+
function createSerializationReturnFn(rt) {
|
|
20
|
+
const serialize = rt.createJitReturnFunction(SERIALIZE_FN);
|
|
21
|
+
const restoreFromJson = rt.createJitReturnFunction(DESERIALIZE_FN);
|
|
22
|
+
const deserialize = (data) => restoreFromJson(JSON.parse(data));
|
|
23
|
+
return { serialize, deserialize };
|
|
24
|
+
}
|
|
25
|
+
function createSerializationCallSignatureParamsFn(rt) {
|
|
26
|
+
const callSignature = rt.getCallSignature();
|
|
27
|
+
const serialize = callSignature.createJitParamsFunction(SERIALIZE_FN);
|
|
28
|
+
const restoreFromJson = callSignature.createJitParamsFunction(DESERIALIZE_FN);
|
|
29
|
+
const deserialize = (data) => restoreFromJson(JSON.parse(data));
|
|
30
|
+
return { serialize, deserialize };
|
|
31
|
+
}
|
|
32
|
+
function createSerializationCallSignatureReturnFn(rt) {
|
|
33
|
+
const callSignature = rt.getCallSignature();
|
|
34
|
+
const serialize = callSignature.createJitReturnFunction(SERIALIZE_FN);
|
|
35
|
+
const restoreFromJson = callSignature.createJitReturnFunction(DESERIALIZE_FN);
|
|
36
|
+
const deserialize = (data) => restoreFromJson(JSON.parse(data));
|
|
37
|
+
return { serialize, deserialize };
|
|
38
|
+
}
|
|
39
|
+
function roundTrip(serialize, deserialize, value) {
|
|
40
|
+
const serialized = serialize(value);
|
|
41
|
+
const deserialized = deserialize(serialized);
|
|
42
|
+
const result = { serialized, deserialized };
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
exports.createSerializationCallSignatureParamsFn = createSerializationCallSignatureParamsFn;
|
|
46
|
+
exports.createSerializationCallSignatureReturnFn = createSerializationCallSignatureReturnFn;
|
|
47
|
+
exports.createSerializationFns = createSerializationFns;
|
|
48
|
+
exports.createSerializationParamsFn = createSerializationParamsFn;
|
|
49
|
+
exports.createSerializationReturnFn = createSerializationReturnFn;
|
|
50
|
+
exports.roundTrip = roundTrip;
|
|
51
|
+
//# sourceMappingURL=stringifyHelpers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringifyHelpers.cjs","sources":["../../../../../../src/jitCompilers/json/stringifySpec/stringifyHelpers.ts"],"sourcesContent":["/* ########\n * 2025 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {JitFunctions} from '../../../constants.functions.ts';\nimport type {InterfaceRunType} from '../../../nodes/collection/interface.ts';\nimport type {FunctionRunType} from '../../../nodes/function/function.ts';\nimport type {RunType} from '../../../types.ts';\n\nconst SERIALIZE_FN = JitFunctions.stringifyJson;\nconst DESERIALIZE_FN = JitFunctions.restoreFromJson;\n\nexport function createSerializationFns(rt: RunType) {\n const serialize = rt.createJitFunction(SERIALIZE_FN);\n const restoreFromJson = rt.createJitFunction(DESERIALIZE_FN);\n const deserialize = (data: any) => restoreFromJson(JSON.parse(data));\n return {serialize, deserialize};\n}\n\nexport function createSerializationParamsFn(rt: FunctionRunType, sliceStart?: number) {\n const params = typeof sliceStart === 'number' ? {paramsSlice: {start: sliceStart}} : undefined;\n const serialize = rt.createJitParamsFunction(SERIALIZE_FN, params);\n const restoreFromJson = rt.createJitParamsFunction(DESERIALIZE_FN, params);\n const deserialize = (data: any) => restoreFromJson(JSON.parse(data));\n return {serialize, deserialize};\n}\n\nexport function createSerializationReturnFn(rt: FunctionRunType) {\n const serialize = rt.createJitReturnFunction(SERIALIZE_FN);\n const restoreFromJson = rt.createJitReturnFunction(DESERIALIZE_FN);\n const deserialize = (data: any) => restoreFromJson(JSON.parse(data));\n return {serialize, deserialize};\n}\n\nexport function createSerializationCallSignatureParamsFn(rt: InterfaceRunType) {\n const callSignature = rt.getCallSignature()!;\n const serialize = callSignature.createJitParamsFunction(SERIALIZE_FN);\n const restoreFromJson = callSignature.createJitParamsFunction(DESERIALIZE_FN);\n const deserialize = (data: any) => restoreFromJson(JSON.parse(data));\n return {serialize, deserialize};\n}\n\nexport function createSerializationCallSignatureReturnFn(rt: InterfaceRunType) {\n const callSignature = rt.getCallSignature()!;\n const serialize = callSignature.createJitReturnFunction(SERIALIZE_FN);\n const restoreFromJson = callSignature.createJitReturnFunction(DESERIALIZE_FN);\n const deserialize = (data: any) => restoreFromJson(JSON.parse(data));\n return {serialize, deserialize};\n}\n\nexport function roundTrip(serialize: (v: any) => string, deserialize: (v: string) => any, value: any) {\n const serialized = serialize(value);\n const deserialized = deserialize(serialized);\n const result = {serialized, deserialized};\n return result;\n}\n"],"names":["JitFunctions"],"mappings":";;;AAYA,MAAM,eAAeA,wBAAAA,aAAa;AAClC,MAAM,iBAAiBA,wBAAAA,aAAa;AAE7B,SAAS,uBAAuB,IAAa;AAChD,QAAM,YAAY,GAAG,kBAAkB,YAAY;AACnD,QAAM,kBAAkB,GAAG,kBAAkB,cAAc;AAC3D,QAAM,cAAc,CAAC,SAAc,gBAAgB,KAAK,MAAM,IAAI,CAAC;AACnE,SAAO,EAAC,WAAW,YAAA;AACvB;AAEO,SAAS,4BAA4B,IAAqB,YAAqB;AAClF,QAAM,SAAS,OAAO,eAAe,WAAW,EAAC,aAAa,EAAC,OAAO,WAAA,EAAU,IAAK;AACrF,QAAM,YAAY,GAAG,wBAAwB,cAAc,MAAM;AACjE,QAAM,kBAAkB,GAAG,wBAAwB,gBAAgB,MAAM;AACzE,QAAM,cAAc,CAAC,SAAc,gBAAgB,KAAK,MAAM,IAAI,CAAC;AACnE,SAAO,EAAC,WAAW,YAAA;AACvB;AAEO,SAAS,4BAA4B,IAAqB;AAC7D,QAAM,YAAY,GAAG,wBAAwB,YAAY;AACzD,QAAM,kBAAkB,GAAG,wBAAwB,cAAc;AACjE,QAAM,cAAc,CAAC,SAAc,gBAAgB,KAAK,MAAM,IAAI,CAAC;AACnE,SAAO,EAAC,WAAW,YAAA;AACvB;AAEO,SAAS,yCAAyC,IAAsB;AAC3E,QAAM,gBAAgB,GAAG,iBAAA;AACzB,QAAM,YAAY,cAAc,wBAAwB,YAAY;AACpE,QAAM,kBAAkB,cAAc,wBAAwB,cAAc;AAC5E,QAAM,cAAc,CAAC,SAAc,gBAAgB,KAAK,MAAM,IAAI,CAAC;AACnE,SAAO,EAAC,WAAW,YAAA;AACvB;AAEO,SAAS,yCAAyC,IAAsB;AAC3E,QAAM,gBAAgB,GAAG,iBAAA;AACzB,QAAM,YAAY,cAAc,wBAAwB,YAAY;AACpE,QAAM,kBAAkB,cAAc,wBAAwB,cAAc;AAC5E,QAAM,cAAc,CAAC,SAAc,gBAAgB,KAAK,MAAM,IAAI,CAAC;AACnE,SAAO,EAAC,WAAW,YAAA;AACvB;AAEO,SAAS,UAAU,WAA+B,aAAiC,OAAY;AAClG,QAAM,aAAa,UAAU,KAAK;AAClC,QAAM,eAAe,YAAY,UAAU;AAC3C,QAAM,SAAS,EAAC,YAAY,aAAA;AAC5B,SAAO;AACX;;;;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { InterfaceRunType } from '../../../nodes/collection/interface.ts';
|
|
2
|
+
import { FunctionRunType } from '../../../nodes/function/function.ts';
|
|
3
|
+
import { RunType } from '../../../types.ts';
|
|
4
|
+
export declare function createSerializationFns(rt: RunType): {
|
|
5
|
+
serialize: (...args: any[]) => any;
|
|
6
|
+
deserialize: (data: any) => any;
|
|
7
|
+
};
|
|
8
|
+
export declare function createSerializationParamsFn(rt: FunctionRunType, sliceStart?: number): {
|
|
9
|
+
serialize: (...args: any[]) => any;
|
|
10
|
+
deserialize: (data: any) => any;
|
|
11
|
+
};
|
|
12
|
+
export declare function createSerializationReturnFn(rt: FunctionRunType): {
|
|
13
|
+
serialize: (...args: any[]) => any;
|
|
14
|
+
deserialize: (data: any) => any;
|
|
15
|
+
};
|
|
16
|
+
export declare function createSerializationCallSignatureParamsFn(rt: InterfaceRunType): {
|
|
17
|
+
serialize: (...args: any[]) => any;
|
|
18
|
+
deserialize: (data: any) => any;
|
|
19
|
+
};
|
|
20
|
+
export declare function createSerializationCallSignatureReturnFn(rt: InterfaceRunType): {
|
|
21
|
+
serialize: (...args: any[]) => any;
|
|
22
|
+
deserialize: (data: any) => any;
|
|
23
|
+
};
|
|
24
|
+
export declare function roundTrip(serialize: (v: any) => string, deserialize: (v: string) => any, value: any): {
|
|
25
|
+
serialized: string;
|
|
26
|
+
deserialized: any;
|
|
27
|
+
};
|