@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,74 @@
|
|
|
1
|
+
import { ReflectionKind } from "@deepkit/type";
|
|
2
|
+
import { __ΩRunType as ___RunType } from "./types.js";
|
|
3
|
+
const ReflectionKindName = {
|
|
4
|
+
0: "never",
|
|
5
|
+
1: "any",
|
|
6
|
+
2: "unknown",
|
|
7
|
+
3: "void",
|
|
8
|
+
4: "objectLiteral",
|
|
9
|
+
// name was changed from deepkit's 'object' to 'objectLiteral'
|
|
10
|
+
5: "string",
|
|
11
|
+
6: "number",
|
|
12
|
+
7: "boolean",
|
|
13
|
+
8: "symbol",
|
|
14
|
+
9: "bigint",
|
|
15
|
+
10: "null",
|
|
16
|
+
11: "undefined",
|
|
17
|
+
12: "regexp",
|
|
18
|
+
13: "literal",
|
|
19
|
+
14: "templateLiteral",
|
|
20
|
+
15: "property",
|
|
21
|
+
16: "method",
|
|
22
|
+
17: "function",
|
|
23
|
+
18: "parameter",
|
|
24
|
+
19: "promise",
|
|
25
|
+
20: "class",
|
|
26
|
+
21: "typeParameter",
|
|
27
|
+
22: "enum",
|
|
28
|
+
23: "union",
|
|
29
|
+
24: "intersection",
|
|
30
|
+
25: "array",
|
|
31
|
+
26: "tuple",
|
|
32
|
+
27: "tupleMember",
|
|
33
|
+
28: "enumMember",
|
|
34
|
+
29: "rest",
|
|
35
|
+
30: "object",
|
|
36
|
+
// name was changed from deepkit's 'objectLiteral' to 'object' for better error messages
|
|
37
|
+
31: "indexSignature",
|
|
38
|
+
32: "propertySignature",
|
|
39
|
+
33: "methodSignature",
|
|
40
|
+
34: "infer",
|
|
41
|
+
35: "callSignature"
|
|
42
|
+
};
|
|
43
|
+
const ReflectionSubKind = {
|
|
44
|
+
// group of sub-kinds that extends ReflectionKind.class
|
|
45
|
+
date: 2001,
|
|
46
|
+
map: 2002,
|
|
47
|
+
set: 2003,
|
|
48
|
+
nonSerializable: 2004,
|
|
49
|
+
params: 1701,
|
|
50
|
+
mapKey: 1801,
|
|
51
|
+
mapValue: 1802,
|
|
52
|
+
setItem: 1803
|
|
53
|
+
};
|
|
54
|
+
const ReflectionSubNames = {
|
|
55
|
+
2001: "date",
|
|
56
|
+
2002: "map",
|
|
57
|
+
2003: "set",
|
|
58
|
+
1701: "params"
|
|
59
|
+
};
|
|
60
|
+
const __ΩAnyKindName = [() => ReflectionKind, () => ReflectionSubKind, "AnyKindName", 'Pi!gi"gJw#y'];
|
|
61
|
+
function getReflectionName(rt) {
|
|
62
|
+
if (rt.src.subKind)
|
|
63
|
+
return ReflectionSubNames[rt.src.subKind];
|
|
64
|
+
return ReflectionKindName[rt.src.kind];
|
|
65
|
+
}
|
|
66
|
+
getReflectionName.__type = [() => ___RunType, "rt", () => __ΩAnyKindName, "getReflectionName", 'Pn!2"n#/$'];
|
|
67
|
+
export {
|
|
68
|
+
ReflectionKindName,
|
|
69
|
+
ReflectionSubKind,
|
|
70
|
+
ReflectionSubNames,
|
|
71
|
+
__ΩAnyKindName,
|
|
72
|
+
getReflectionName
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=constants.kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.kind.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RunType } from './types.ts';
|
|
2
|
+
import { ReceiveType } from '@deepkit/type';
|
|
3
|
+
import { FunctionRunType } from './nodes/function/function.ts';
|
|
4
|
+
export declare function runType<T>(type?: ReceiveType<T>): RunType;
|
|
5
|
+
export declare function reflectFunction<Fn extends (...args: any[]) => any>(fn: Fn): FunctionRunType;
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { reflect, resolveReceiveType, stringifyType, typeAnnotation, ReflectionKind, __ΩReceiveType as ___ReceiveType } from "@deepkit/type";
|
|
2
|
+
import { hasType, hasReturn, hasIndexType, hasTypes, hasParameters, hasArguments, hasExtendsArguments, hasImplements, isNonSerializableObject, isNativeUtilityStringTypes, isNonSerializableClass } from "./lib/guards.js";
|
|
3
|
+
import { StringRunType } from "./nodes/atomic/string.js";
|
|
4
|
+
import { DateRunType } from "./nodes/atomic/date.js";
|
|
5
|
+
import { NumberRunType } from "./nodes/atomic/number.js";
|
|
6
|
+
import { BooleanRunType } from "./nodes/atomic/boolean.js";
|
|
7
|
+
import { NullRunType } from "./nodes/atomic/null.js";
|
|
8
|
+
import { BigIntRunType } from "./nodes/atomic/bigInt.js";
|
|
9
|
+
import { AnyRunType } from "./nodes/atomic/any.js";
|
|
10
|
+
import { UndefinedRunType } from "./nodes/atomic/undefined.js";
|
|
11
|
+
import { UnknownRunType } from "./nodes/atomic/unknown.js";
|
|
12
|
+
import { VoidRunType } from "./nodes/atomic/void.js";
|
|
13
|
+
import { ArrayRunType } from "./nodes/member/array.js";
|
|
14
|
+
import { LiteralRunType } from "./nodes/atomic/literal.js";
|
|
15
|
+
import { RegexpRunType } from "./nodes/atomic/regexp.js";
|
|
16
|
+
import { NeverRunType } from "./nodes/atomic/never.js";
|
|
17
|
+
import { EnumRunType } from "./nodes/atomic/enum.js";
|
|
18
|
+
import { EnumMemberRunType } from "./nodes/atomic/enumMember.js";
|
|
19
|
+
import { UnionRunType } from "./nodes/collection/union.js";
|
|
20
|
+
import { TupleRunType } from "./nodes/collection/tuple.js";
|
|
21
|
+
import { FunctionParamsRunType } from "./nodes/collection/functionParams.js";
|
|
22
|
+
import { TupleMemberRunType } from "./nodes/member/tupleMember.js";
|
|
23
|
+
import { InterfaceRunType } from "./nodes/collection/interface.js";
|
|
24
|
+
import { PropertyRunType } from "./nodes/member/property.js";
|
|
25
|
+
import { IndexSignatureRunType } from "./nodes/member/indexProperty.js";
|
|
26
|
+
import { MethodSignatureRunType } from "./nodes/member/methodSignature.js";
|
|
27
|
+
import { CallSignatureRunType } from "./nodes/member/callSignature.js";
|
|
28
|
+
import { FunctionRunType } from "./nodes/function/function.js";
|
|
29
|
+
import { PromiseRunType } from "./nodes/native/promise.js";
|
|
30
|
+
import { ObjectRunType } from "./nodes/atomic/object.js";
|
|
31
|
+
import { IntersectionRunType } from "./nodes/collection/intersection.js";
|
|
32
|
+
import { ParameterRunType } from "./nodes/member/param.js";
|
|
33
|
+
import { MethodRunType } from "./nodes/member/method.js";
|
|
34
|
+
import { RestParamsRunType } from "./nodes/member/restParams.js";
|
|
35
|
+
import { ClassRunType } from "./nodes/collection/class.js";
|
|
36
|
+
import { MapRunType } from "./nodes/native/map.js";
|
|
37
|
+
import { ReflectionSubKind } from "./constants.kind.js";
|
|
38
|
+
import { SetRunType } from "./nodes/native/set.js";
|
|
39
|
+
import { SymbolRunType } from "./nodes/atomic/symbol.js";
|
|
40
|
+
import { NonSerializableRunType } from "./nodes/native/nonSerializable.js";
|
|
41
|
+
import { registerErrorDeserializers } from "@mionjs/core";
|
|
42
|
+
function __assignType(fn, args) {
|
|
43
|
+
fn.__type = args;
|
|
44
|
+
return fn;
|
|
45
|
+
}
|
|
46
|
+
function runType(type = runType.Ω?.[0]) {
|
|
47
|
+
runType.Ω = void 0;
|
|
48
|
+
const start = Date.now();
|
|
49
|
+
const src = resolveReceiveType(type);
|
|
50
|
+
const took0 = Date.now() - start;
|
|
51
|
+
createRunTypes(src);
|
|
52
|
+
const took1 = Date.now() - start;
|
|
53
|
+
const diff = took1 - took0;
|
|
54
|
+
if (diff > 60)
|
|
55
|
+
console.warn(`RunType overhead is very long: ${diff}ms for ${stringifyType(src)}`);
|
|
56
|
+
return src._rt;
|
|
57
|
+
}
|
|
58
|
+
runType.__type = [() => ___ReceiveType, "type", "RunType", "runType", 'P"o!"2"8"w#/$'];
|
|
59
|
+
function reflectFunction(fn) {
|
|
60
|
+
const src = reflect(fn);
|
|
61
|
+
runType(src);
|
|
62
|
+
return src._rt;
|
|
63
|
+
}
|
|
64
|
+
reflectFunction.__type = ["fn", () => FunctionRunType, "reflectFunction", 'P"2!P7"/#'];
|
|
65
|
+
function createRunTypes(src) {
|
|
66
|
+
registerErrorDeserializers();
|
|
67
|
+
const stack = [src];
|
|
68
|
+
while (stack.length > 0) {
|
|
69
|
+
const current = stack.pop();
|
|
70
|
+
if (!current || current._rt)
|
|
71
|
+
continue;
|
|
72
|
+
try {
|
|
73
|
+
createRunType(current);
|
|
74
|
+
} catch (error) {
|
|
75
|
+
const typesStackMessage = "\nTypes Stack: " + stack.map(__assignType((t) => t.typeName || t.kind, ["t", "", 'P"2!"/"'])).join(", ");
|
|
76
|
+
error.message += typesStackMessage;
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
if (hasType(current))
|
|
80
|
+
stack.push(current.type);
|
|
81
|
+
if (hasReturn(current))
|
|
82
|
+
stack.push(current.return);
|
|
83
|
+
if (hasIndexType(current))
|
|
84
|
+
stack.push(current.indexType);
|
|
85
|
+
if (current.origin)
|
|
86
|
+
stack.push(current.origin);
|
|
87
|
+
if (current.indexAccessOrigin?.index)
|
|
88
|
+
stack.push(current.indexAccessOrigin?.index);
|
|
89
|
+
if (current.indexAccessOrigin?.container)
|
|
90
|
+
stack.push(current.indexAccessOrigin?.container);
|
|
91
|
+
if (hasTypes(current))
|
|
92
|
+
pushToStack(current.types, stack);
|
|
93
|
+
if (hasParameters(current))
|
|
94
|
+
pushToStack(current.parameters, stack);
|
|
95
|
+
if (hasArguments(current))
|
|
96
|
+
pushToStack(current.arguments, stack);
|
|
97
|
+
if (hasExtendsArguments(current))
|
|
98
|
+
pushToStack(current.extendsArguments, stack);
|
|
99
|
+
if (hasImplements(current))
|
|
100
|
+
pushToStack(current.implements, stack);
|
|
101
|
+
if (current.typeArguments)
|
|
102
|
+
pushToStack(current.typeArguments, stack);
|
|
103
|
+
if (current.decorators)
|
|
104
|
+
pushToStack(current.decorators, stack);
|
|
105
|
+
if (current.scheduleDecorators)
|
|
106
|
+
pushToStack(current.scheduleDecorators, stack);
|
|
107
|
+
if (current.annotations) {
|
|
108
|
+
const annotations = typeAnnotation.getAnnotations(current);
|
|
109
|
+
for (const annotation of annotations)
|
|
110
|
+
stack.push(annotation.options);
|
|
111
|
+
}
|
|
112
|
+
current.originTypes?.forEach(__assignType((ot) => {
|
|
113
|
+
if (ot.typeArguments)
|
|
114
|
+
pushToStack(ot.typeArguments, stack);
|
|
115
|
+
}, ["ot", "", 'P"2!"/"']));
|
|
116
|
+
if (current.parent && !current.parent?._rt)
|
|
117
|
+
stack.push(current.parent);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
createRunTypes.__type = ["SrcType", "src", "createRunTypes", 'P"w!2"$/#'];
|
|
121
|
+
function pushToStack(subTypes, stack) {
|
|
122
|
+
if (Array.isArray(subTypes))
|
|
123
|
+
stack.push(...subTypes);
|
|
124
|
+
}
|
|
125
|
+
pushToStack.__type = ["Type", "subTypes", "stack", "pushToStack", 'P"w!F2""w!F2#"/$'];
|
|
126
|
+
function createRunType(deepkitType) {
|
|
127
|
+
const existingType = deepkitType._rt;
|
|
128
|
+
if (existingType)
|
|
129
|
+
return existingType;
|
|
130
|
+
let rt;
|
|
131
|
+
switch (deepkitType.kind) {
|
|
132
|
+
// ###################### ATOMIC RUNTYPES ######################
|
|
133
|
+
// Primitive types and other atomic types that don't contain other types
|
|
134
|
+
case ReflectionKind.any:
|
|
135
|
+
rt = new AnyRunType();
|
|
136
|
+
break;
|
|
137
|
+
case ReflectionKind.bigint:
|
|
138
|
+
rt = new BigIntRunType();
|
|
139
|
+
break;
|
|
140
|
+
case ReflectionKind.boolean:
|
|
141
|
+
rt = new BooleanRunType();
|
|
142
|
+
break;
|
|
143
|
+
case ReflectionKind.enum:
|
|
144
|
+
rt = new EnumRunType();
|
|
145
|
+
break;
|
|
146
|
+
case ReflectionKind.enumMember:
|
|
147
|
+
rt = new EnumMemberRunType();
|
|
148
|
+
break;
|
|
149
|
+
case ReflectionKind.literal:
|
|
150
|
+
rt = new LiteralRunType();
|
|
151
|
+
break;
|
|
152
|
+
case ReflectionKind.never:
|
|
153
|
+
rt = isNativeUtilityStringTypes(deepkitType) ? new StringRunType() : new NeverRunType();
|
|
154
|
+
break;
|
|
155
|
+
case ReflectionKind.null:
|
|
156
|
+
rt = new NullRunType();
|
|
157
|
+
break;
|
|
158
|
+
case ReflectionKind.number:
|
|
159
|
+
rt = new NumberRunType();
|
|
160
|
+
break;
|
|
161
|
+
case ReflectionKind.object:
|
|
162
|
+
rt = new ObjectRunType();
|
|
163
|
+
break;
|
|
164
|
+
case ReflectionKind.regexp:
|
|
165
|
+
rt = new RegexpRunType();
|
|
166
|
+
break;
|
|
167
|
+
case ReflectionKind.string:
|
|
168
|
+
rt = new StringRunType();
|
|
169
|
+
break;
|
|
170
|
+
case ReflectionKind.symbol:
|
|
171
|
+
rt = new SymbolRunType();
|
|
172
|
+
break;
|
|
173
|
+
case ReflectionKind.templateLiteral:
|
|
174
|
+
throw new Error("Template Literals are resolved by the compiler to Literals ie: const tl = `${string}World`. Template literal types are not supported. ie type TL = `${string}World`");
|
|
175
|
+
case ReflectionKind.undefined:
|
|
176
|
+
rt = new UndefinedRunType();
|
|
177
|
+
break;
|
|
178
|
+
case ReflectionKind.unknown:
|
|
179
|
+
rt = new UnknownRunType();
|
|
180
|
+
break;
|
|
181
|
+
case ReflectionKind.void:
|
|
182
|
+
rt = new VoidRunType();
|
|
183
|
+
break;
|
|
184
|
+
// ###################### MEMBER RUNTYPES ######################
|
|
185
|
+
// Types that represent members of collections or other structures
|
|
186
|
+
case ReflectionKind.array:
|
|
187
|
+
rt = new ArrayRunType();
|
|
188
|
+
break;
|
|
189
|
+
case ReflectionKind.callSignature:
|
|
190
|
+
rt = new CallSignatureRunType();
|
|
191
|
+
break;
|
|
192
|
+
case ReflectionKind.function:
|
|
193
|
+
if (deepkitType.subKind === ReflectionSubKind.params) {
|
|
194
|
+
rt = new FunctionParamsRunType();
|
|
195
|
+
} else {
|
|
196
|
+
const frt = new FunctionRunType();
|
|
197
|
+
frt.parameterRunTypes.src = deepkitType;
|
|
198
|
+
rt = frt;
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
case ReflectionKind.indexSignature:
|
|
202
|
+
rt = new IndexSignatureRunType();
|
|
203
|
+
break;
|
|
204
|
+
case ReflectionKind.method:
|
|
205
|
+
rt = new MethodRunType();
|
|
206
|
+
break;
|
|
207
|
+
case ReflectionKind.methodSignature:
|
|
208
|
+
rt = new MethodSignatureRunType();
|
|
209
|
+
break;
|
|
210
|
+
case ReflectionKind.parameter:
|
|
211
|
+
rt = new ParameterRunType();
|
|
212
|
+
break;
|
|
213
|
+
case ReflectionKind.property:
|
|
214
|
+
case ReflectionKind.propertySignature:
|
|
215
|
+
rt = new PropertyRunType();
|
|
216
|
+
break;
|
|
217
|
+
case ReflectionKind.rest:
|
|
218
|
+
rt = new RestParamsRunType();
|
|
219
|
+
break;
|
|
220
|
+
case ReflectionKind.tupleMember:
|
|
221
|
+
rt = new TupleMemberRunType();
|
|
222
|
+
break;
|
|
223
|
+
case ReflectionKind.promise:
|
|
224
|
+
rt = new PromiseRunType();
|
|
225
|
+
break;
|
|
226
|
+
// ###################### COLLECTION RUNTYPES ######################
|
|
227
|
+
case ReflectionKind.objectLiteral:
|
|
228
|
+
if (isNonSerializableObject(deepkitType)) {
|
|
229
|
+
rt = new NonSerializableRunType();
|
|
230
|
+
} else {
|
|
231
|
+
rt = new InterfaceRunType();
|
|
232
|
+
}
|
|
233
|
+
break;
|
|
234
|
+
case ReflectionKind.class:
|
|
235
|
+
rt = initClassRunType(deepkitType);
|
|
236
|
+
break;
|
|
237
|
+
// Types that contain other types as members
|
|
238
|
+
case ReflectionKind.infer:
|
|
239
|
+
throw new Error("Infer type not supported, ie: type MyType =Type<T> = T extends (...args: any[]) => infer R ? R : any; https://www.typescriptlang.org/docs/handbook/2/conditional-types.html");
|
|
240
|
+
case ReflectionKind.intersection:
|
|
241
|
+
rt = new IntersectionRunType();
|
|
242
|
+
break;
|
|
243
|
+
case ReflectionKind.tuple:
|
|
244
|
+
rt = new TupleRunType();
|
|
245
|
+
break;
|
|
246
|
+
case ReflectionKind.typeParameter:
|
|
247
|
+
throw new Error('TypeParameter not implemented. Type parameters are the generic placeholders in type definitions (e.g., T in Array<T>, ErrType in TypedError<ErrType>). Type parameters are typically resolved during type instantiation and should not appear in runtime type checking.This error is typically caused by a generic type missing type arguments, e.g.: TypedError instead of TypedError<"my-error">.');
|
|
248
|
+
// rType = resolveTypeParameter(deepkitType, opts, mapper);
|
|
249
|
+
case ReflectionKind.union:
|
|
250
|
+
rt = new UnionRunType();
|
|
251
|
+
break;
|
|
252
|
+
default:
|
|
253
|
+
rt = new AnyRunType();
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
rt.onCreated(deepkitType);
|
|
257
|
+
return rt;
|
|
258
|
+
}
|
|
259
|
+
createRunType.__type = ["Mutable", "deepkitType", "RunType", "createRunType", 'P"w!2""w#/$'];
|
|
260
|
+
function initClassRunType(src) {
|
|
261
|
+
switch (src.classType) {
|
|
262
|
+
case Date:
|
|
263
|
+
src.subKind = ReflectionSubKind.date;
|
|
264
|
+
return new DateRunType();
|
|
265
|
+
case Map:
|
|
266
|
+
src.subKind = ReflectionSubKind.map;
|
|
267
|
+
return new MapRunType();
|
|
268
|
+
case Set:
|
|
269
|
+
src.subKind = ReflectionSubKind.set;
|
|
270
|
+
return new SetRunType();
|
|
271
|
+
default:
|
|
272
|
+
if (isNonSerializableClass(src)) {
|
|
273
|
+
src.subKind = ReflectionSubKind.nonSerializable;
|
|
274
|
+
return new NonSerializableRunType();
|
|
275
|
+
}
|
|
276
|
+
return new ClassRunType();
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
initClassRunType.__type = ["TypeClass", "subKind", "src", "BaseRunType", "initClassRunType", `PP"w!P'4"8MK2#"w$/%`];
|
|
280
|
+
export {
|
|
281
|
+
reflectFunction,
|
|
282
|
+
runType
|
|
283
|
+
};
|
|
284
|
+
//# sourceMappingURL=createRunType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRunType.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReceiveType } from '@deepkit/type';
|
|
2
|
+
import { RunTypeOptions } from './types.ts';
|
|
3
|
+
import { FromBinaryFn, IsTypeFn, JsonStringifyFn, PrepareForJsonFn, RestoreFromJsonFn, ToBinaryFn, ToCodeFn, TypeErrorsFn } from '@mionjs/core';
|
|
4
|
+
export declare function createIsTypeFn<T>(opts?: RunTypeOptions, type?: ReceiveType<T>): Promise<IsTypeFn>;
|
|
5
|
+
export declare function createTypeErrorsFn<T>(opts?: RunTypeOptions, type?: ReceiveType<T>): Promise<TypeErrorsFn>;
|
|
6
|
+
export declare function createPrepareForJsonFn<T>(opts?: RunTypeOptions, type?: ReceiveType<T>): Promise<PrepareForJsonFn>;
|
|
7
|
+
export declare function createRestoreFromJsonFn<T>(opts?: RunTypeOptions, type?: ReceiveType<T>): Promise<RestoreFromJsonFn>;
|
|
8
|
+
export declare function createStringifyJsonFn<T>(opts?: RunTypeOptions, type?: ReceiveType<T>): Promise<JsonStringifyFn>;
|
|
9
|
+
export declare function createToBinaryFn<T>(opts?: RunTypeOptions, type?: ReceiveType<T>): Promise<ToBinaryFn>;
|
|
10
|
+
export declare function createFromBinaryFn<T>(opts?: RunTypeOptions, type?: ReceiveType<T>): Promise<FromBinaryFn>;
|
|
11
|
+
export declare function createToJavascriptFn<T>(opts?: RunTypeOptions, type?: ReceiveType<T>): ToCodeFn;
|
|
12
|
+
export declare function createMockTypeFn<T>(type?: ReceiveType<T>): Promise<(opts?: Partial<RunTypeOptions>) => T>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { JitFunctions } from "./constants.functions.js";
|
|
2
|
+
import { __ΩReceiveType as ___ReceiveType } from "@deepkit/type";
|
|
3
|
+
import { runType } from "./createRunType.js";
|
|
4
|
+
import { __ΩRunTypeOptions as ___RunTypeOptions } from "./types.js";
|
|
5
|
+
import { __ΩIsTypeFn as ___IsTypeFn, __ΩTypeErrorsFn as ___TypeErrorsFn, __ΩPrepareForJsonFn as ___PrepareForJsonFn, __ΩRestoreFromJsonFn as ___RestoreFromJsonFn, __ΩJsonStringifyFn as ___JsonStringifyFn, __ΩToBinaryFn as ___ToBinaryFn, __ΩFromBinaryFn as ___FromBinaryFn, __ΩToCodeFn as ___ToCodeFn } from "@mionjs/core";
|
|
6
|
+
import { registerJitFunctionCompiler } from "./lib/jitFnsRegistry.js";
|
|
7
|
+
const __ΩPartial = ["T", "Partial", 'l+e#!e"!fRb!Pde"!gN#"w"y'];
|
|
8
|
+
function __assignType(fn, args) {
|
|
9
|
+
fn.__type = args;
|
|
10
|
+
return fn;
|
|
11
|
+
}
|
|
12
|
+
async function createIsTypeFn(opts, type = createIsTypeFn.Ω?.[0]) {
|
|
13
|
+
createIsTypeFn.Ω = void 0;
|
|
14
|
+
const rt = runType(type);
|
|
15
|
+
return rt.createJitFunction(JitFunctions.isType, opts);
|
|
16
|
+
}
|
|
17
|
+
createIsTypeFn.__type = [() => ___RunTypeOptions, "opts", () => ___ReceiveType, "type", () => ___IsTypeFn, "createIsTypeFn", 'Pn!2"8"o#"2$8n%`/&'];
|
|
18
|
+
async function createTypeErrorsFn(opts, type = createTypeErrorsFn.Ω?.[0]) {
|
|
19
|
+
createTypeErrorsFn.Ω = void 0;
|
|
20
|
+
const rt = runType(type);
|
|
21
|
+
return rt.createJitFunction(JitFunctions.typeErrors, opts);
|
|
22
|
+
}
|
|
23
|
+
createTypeErrorsFn.__type = [() => ___RunTypeOptions, "opts", () => ___ReceiveType, "type", () => ___TypeErrorsFn, "createTypeErrorsFn", 'Pn!2"8"o#"2$8n%`/&'];
|
|
24
|
+
async function createPrepareForJsonFn(opts, type = createPrepareForJsonFn.Ω?.[0]) {
|
|
25
|
+
createPrepareForJsonFn.Ω = void 0;
|
|
26
|
+
const rt = runType(type);
|
|
27
|
+
return rt.createJitFunction(JitFunctions.prepareForJson, opts);
|
|
28
|
+
}
|
|
29
|
+
createPrepareForJsonFn.__type = [() => ___RunTypeOptions, "opts", () => ___ReceiveType, "type", () => ___PrepareForJsonFn, "createPrepareForJsonFn", 'Pn!2"8"o#"2$8n%`/&'];
|
|
30
|
+
async function createRestoreFromJsonFn(opts, type = createRestoreFromJsonFn.Ω?.[0]) {
|
|
31
|
+
createRestoreFromJsonFn.Ω = void 0;
|
|
32
|
+
const rt = runType(type);
|
|
33
|
+
return rt.createJitFunction(JitFunctions.restoreFromJson, opts);
|
|
34
|
+
}
|
|
35
|
+
createRestoreFromJsonFn.__type = [() => ___RunTypeOptions, "opts", () => ___ReceiveType, "type", () => ___RestoreFromJsonFn, "createRestoreFromJsonFn", 'Pn!2"8"o#"2$8n%`/&'];
|
|
36
|
+
async function createStringifyJsonFn(opts, type = createStringifyJsonFn.Ω?.[0]) {
|
|
37
|
+
createStringifyJsonFn.Ω = void 0;
|
|
38
|
+
const rt = runType(type);
|
|
39
|
+
return rt.createJitFunction(JitFunctions.stringifyJson, opts);
|
|
40
|
+
}
|
|
41
|
+
createStringifyJsonFn.__type = [() => ___RunTypeOptions, "opts", () => ___ReceiveType, "type", () => ___JsonStringifyFn, "createStringifyJsonFn", 'Pn!2"8"o#"2$8n%`/&'];
|
|
42
|
+
async function createToBinaryFn(opts, type = createToBinaryFn.Ω?.[0]) {
|
|
43
|
+
createToBinaryFn.Ω = void 0;
|
|
44
|
+
const rt = runType(type);
|
|
45
|
+
return rt.createJitFunction(JitFunctions.toBinary, opts);
|
|
46
|
+
}
|
|
47
|
+
createToBinaryFn.__type = [() => ___RunTypeOptions, "opts", () => ___ReceiveType, "type", () => ___ToBinaryFn, "createToBinaryFn", 'Pn!2"8"o#"2$8n%`/&'];
|
|
48
|
+
async function createFromBinaryFn(opts, type = createFromBinaryFn.Ω?.[0]) {
|
|
49
|
+
createFromBinaryFn.Ω = void 0;
|
|
50
|
+
const rt = runType(type);
|
|
51
|
+
return rt.createJitFunction(JitFunctions.fromBinary, opts);
|
|
52
|
+
}
|
|
53
|
+
createFromBinaryFn.__type = [() => ___RunTypeOptions, "opts", () => ___ReceiveType, "type", () => ___FromBinaryFn, "createFromBinaryFn", 'Pn!2"8"o#"2$8n%`/&'];
|
|
54
|
+
function createToJavascriptFn(opts, type = createToJavascriptFn.Ω?.[0]) {
|
|
55
|
+
createToJavascriptFn.Ω = void 0;
|
|
56
|
+
const rt = runType(type);
|
|
57
|
+
return rt.createJitFunction(JitFunctions.toJSCode, opts);
|
|
58
|
+
}
|
|
59
|
+
createToJavascriptFn.__type = [() => ___RunTypeOptions, "opts", () => ___ReceiveType, "type", () => ___ToCodeFn, "createToJavascriptFn", 'Pn!2"8"o#"2$8n%/&'];
|
|
60
|
+
async function createMockTypeFn(type = createMockTypeFn.Ω?.[0]) {
|
|
61
|
+
createMockTypeFn.Ω = void 0;
|
|
62
|
+
const rt = runType(type);
|
|
63
|
+
await registerJitFunctionCompiler(JitFunctions.mock);
|
|
64
|
+
return __assignType((opts) => rt.mockType(opts), [() => __ΩPartial, () => ___RunTypeOptions, "opts", "", 'Pn"o!"2#8"/$']);
|
|
65
|
+
}
|
|
66
|
+
createMockTypeFn.__type = [() => ___ReceiveType, "type", () => __ΩPartial, () => ___RunTypeOptions, "opts", "", "createMockTypeFn", 'P"o!"2"8Pn$o#"2%8"/&`/\''];
|
|
67
|
+
export {
|
|
68
|
+
createFromBinaryFn,
|
|
69
|
+
createIsTypeFn,
|
|
70
|
+
createMockTypeFn,
|
|
71
|
+
createPrepareForJsonFn,
|
|
72
|
+
createRestoreFromJsonFn,
|
|
73
|
+
createStringifyJsonFn,
|
|
74
|
+
createToBinaryFn,
|
|
75
|
+
createToJavascriptFn,
|
|
76
|
+
createTypeErrorsFn
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=createRunTypeFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRunTypeFunctions.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TypeAnnotation } from '@deepkit/core';
|
|
2
|
+
import { TypeFormatParams, Brand, TypeFormatPrimitives } from '@mionjs/core';
|
|
3
|
+
export type TypeFormat<BaseType extends TypeFormatPrimitives, Name extends string, P extends TypeFormatParams, BrandName extends string = never> = [BrandName] extends [never] ? BaseType & TypeAnnotation<Name, P> : Brand<BaseType, BrandName> & TypeAnnotation<Name, P & {
|
|
4
|
+
brand: BrandName;
|
|
5
|
+
}>;
|
|
6
|
+
export declare type __ΩTypeFormat = any[];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { __ΩTypeAnnotation as ___TypeAnnotation } from "@deepkit/core";
|
|
2
|
+
import { __ΩBrand as ___Brand } from "@mionjs/core";
|
|
3
|
+
const __ΩTypeFormat = ["BaseType", "Name", "P", "BrandName", () => ___TypeAnnotation, () => ___Brand, () => ___TypeAnnotation, "brand", "TypeFormat", `lPPe$!e$"e$#o%#KRPe$!e$$o&#e$"Pe%#Pe&$4(MKo'#KRb!b"b#!c$PPe#$GP!Gqk#2Qw)y`];
|
|
4
|
+
export {
|
|
5
|
+
__ΩTypeFormat
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=formats.runtype.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formats.runtype.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FunctionRunType } from '../../../nodes/function/function.ts';
|
|
2
|
+
import { DataViewDeserializer, DataViewSerializer, StrictArrayBuffer } from '@mionjs/core';
|
|
3
|
+
import { InterfaceRunType } from '../../../nodes/collection/interface.ts';
|
|
4
|
+
import { RunType } from '../../../types.ts';
|
|
5
|
+
export declare const serContext: DataViewSerializer;
|
|
6
|
+
export declare const desContext: DataViewDeserializer;
|
|
7
|
+
export declare function createSerializationFns(rt: RunType): {
|
|
8
|
+
serialize: (v: any) => StrictArrayBuffer;
|
|
9
|
+
deserialize: (data: StrictArrayBuffer) => any;
|
|
10
|
+
};
|
|
11
|
+
export declare function createSerializationParamsFn(rt: FunctionRunType, sliceStart?: number): {
|
|
12
|
+
serialize: (v: any) => StrictArrayBuffer;
|
|
13
|
+
deserialize: (data: StrictArrayBuffer) => any;
|
|
14
|
+
};
|
|
15
|
+
export declare function createSerializationReturnFn(rt: FunctionRunType): {
|
|
16
|
+
serialize: (v: any) => StrictArrayBuffer;
|
|
17
|
+
deserialize: (data: StrictArrayBuffer) => any;
|
|
18
|
+
};
|
|
19
|
+
export declare function createSerializationCallSignatureParamsFn(rt: InterfaceRunType): {
|
|
20
|
+
serialize: (v: any) => StrictArrayBuffer;
|
|
21
|
+
deserialize: (data: StrictArrayBuffer) => any;
|
|
22
|
+
};
|
|
23
|
+
export declare function createSerializationCallSignatureReturnFn(rt: InterfaceRunType): {
|
|
24
|
+
serialize: (v: any) => StrictArrayBuffer;
|
|
25
|
+
deserialize: (data: StrictArrayBuffer) => any;
|
|
26
|
+
};
|
|
27
|
+
export declare function roundTrip(serialize: (v: any) => StrictArrayBuffer, deserialize: (v: StrictArrayBuffer) => any, value: any): {
|
|
28
|
+
serialized: StrictArrayBuffer;
|
|
29
|
+
deserialized: any;
|
|
30
|
+
};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { JitFunctions } from "../../../constants.functions.js";
|
|
2
|
+
import { getENV, setSerializationOptions, createDataViewSerializer, createDataViewDeserializer } from "@mionjs/core";
|
|
3
|
+
import { afterAll, expect } from "vitest";
|
|
4
|
+
const DEBUG = getENV("DEBUG_JIT") === "print";
|
|
5
|
+
const toJsonSerializers = /* @__PURE__ */ new Map();
|
|
6
|
+
setSerializationOptions({ bufferSize: 1024 });
|
|
7
|
+
const serContext = createDataViewSerializer("test");
|
|
8
|
+
const desContext = createDataViewDeserializer("test", new ArrayBuffer(0));
|
|
9
|
+
const SERIALIZE_FN = JitFunctions.toBinary;
|
|
10
|
+
const DESERIALIZE_FN = JitFunctions.fromBinary;
|
|
11
|
+
function createSerializationFns(rt) {
|
|
12
|
+
const toBinary = rt.createJitFunction(SERIALIZE_FN);
|
|
13
|
+
const fromBinary = rt.createJitFunction(DESERIALIZE_FN);
|
|
14
|
+
const serialize = (v) => (toBinary(v, serContext), serContext.getBuffer());
|
|
15
|
+
const deserialize = (data) => (desContext.setBuffer(data), fromBinary(void 0, desContext));
|
|
16
|
+
if (DEBUG) {
|
|
17
|
+
const toJson = rt.createJitFunction(JitFunctions.prepareForJson);
|
|
18
|
+
const stringify = (v) => JSON.stringify(toJson(v));
|
|
19
|
+
toJsonSerializers.set(serialize, stringify);
|
|
20
|
+
}
|
|
21
|
+
return { serialize, deserialize };
|
|
22
|
+
}
|
|
23
|
+
function createSerializationParamsFn(rt, sliceStart) {
|
|
24
|
+
const params = typeof sliceStart === "number" ? { paramsSlice: { start: sliceStart } } : void 0;
|
|
25
|
+
const toBinary = rt.createJitParamsFunction(SERIALIZE_FN, params);
|
|
26
|
+
const fromBinary = rt.createJitParamsFunction(DESERIALIZE_FN, params);
|
|
27
|
+
const serialize = (v) => (toBinary(v, serContext), serContext.getBuffer());
|
|
28
|
+
const deserialize = (data) => (desContext.setBuffer(data), fromBinary(void 0, desContext));
|
|
29
|
+
if (DEBUG) {
|
|
30
|
+
const toJson = rt.createJitParamsFunction(JitFunctions.prepareForJson, params);
|
|
31
|
+
const stringify = (v) => JSON.stringify(toJson(v));
|
|
32
|
+
toJsonSerializers.set(serialize, stringify);
|
|
33
|
+
}
|
|
34
|
+
return { serialize, deserialize };
|
|
35
|
+
}
|
|
36
|
+
function createSerializationReturnFn(rt) {
|
|
37
|
+
const toBinary = rt.createJitReturnFunction(SERIALIZE_FN);
|
|
38
|
+
const fromBinary = rt.createJitReturnFunction(DESERIALIZE_FN);
|
|
39
|
+
const serialize = (v) => (toBinary(v, serContext), serContext.getBuffer());
|
|
40
|
+
const deserialize = (data) => (desContext.setBuffer(data), fromBinary(void 0, desContext));
|
|
41
|
+
if (DEBUG) {
|
|
42
|
+
const toJson = rt.createJitReturnFunction(JitFunctions.prepareForJson);
|
|
43
|
+
const stringify = (v) => JSON.stringify(toJson(v));
|
|
44
|
+
toJsonSerializers.set(serialize, stringify);
|
|
45
|
+
}
|
|
46
|
+
return { serialize, deserialize };
|
|
47
|
+
}
|
|
48
|
+
function createSerializationCallSignatureParamsFn(rt) {
|
|
49
|
+
const callSignature = rt.getCallSignature();
|
|
50
|
+
const toBinary = callSignature.createJitParamsFunction(SERIALIZE_FN);
|
|
51
|
+
const fromBinary = callSignature.createJitParamsFunction(DESERIALIZE_FN);
|
|
52
|
+
const serialize = (v) => (toBinary(v, serContext), serContext.getBuffer());
|
|
53
|
+
const deserialize = (data) => (desContext.setBuffer(data), fromBinary(void 0, desContext));
|
|
54
|
+
if (DEBUG) {
|
|
55
|
+
const toJson = callSignature.createJitParamsFunction(JitFunctions.prepareForJson);
|
|
56
|
+
const stringify = (v) => JSON.stringify(toJson(v));
|
|
57
|
+
toJsonSerializers.set(serialize, stringify);
|
|
58
|
+
}
|
|
59
|
+
return { serialize, deserialize };
|
|
60
|
+
}
|
|
61
|
+
function createSerializationCallSignatureReturnFn(rt) {
|
|
62
|
+
const callSignature = rt.getCallSignature();
|
|
63
|
+
const toBinary = callSignature.createJitReturnFunction(SERIALIZE_FN);
|
|
64
|
+
const fromBinary = callSignature.createJitReturnFunction(DESERIALIZE_FN);
|
|
65
|
+
const serialize = (v) => (toBinary(v, serContext), serContext.getBuffer());
|
|
66
|
+
const deserialize = (data) => (desContext.setBuffer(data), fromBinary(void 0, desContext));
|
|
67
|
+
if (DEBUG) {
|
|
68
|
+
const toJson = callSignature.createJitReturnFunction(JitFunctions.prepareForJson);
|
|
69
|
+
const stringify = (v) => JSON.stringify(toJson(v));
|
|
70
|
+
toJsonSerializers.set(serialize, stringify);
|
|
71
|
+
}
|
|
72
|
+
return { serialize, deserialize };
|
|
73
|
+
}
|
|
74
|
+
const sizesEntries = [];
|
|
75
|
+
const valuesEntries = [];
|
|
76
|
+
function roundTrip(serialize, deserialize, value) {
|
|
77
|
+
serContext.reset();
|
|
78
|
+
const serialized = serialize(value);
|
|
79
|
+
const deserialized = deserialize(serialized);
|
|
80
|
+
if (DEBUG) {
|
|
81
|
+
const stringify = toJsonSerializers.get(serialize);
|
|
82
|
+
let json = "";
|
|
83
|
+
try {
|
|
84
|
+
json = new Blob([stringify(value)]).size;
|
|
85
|
+
} catch (e) {
|
|
86
|
+
json = "-";
|
|
87
|
+
}
|
|
88
|
+
const sizes = { name: expect.getState().currentTestName, json, binary: serialized.byteLength };
|
|
89
|
+
sizesEntries.push(sizes);
|
|
90
|
+
valuesEntries.push({ value, deserialized });
|
|
91
|
+
}
|
|
92
|
+
const result = { serialized, deserialized };
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
afterAll(() => {
|
|
96
|
+
if (sizesEntries.length) console.table(sizesEntries);
|
|
97
|
+
if (valuesEntries.length) console.table(valuesEntries);
|
|
98
|
+
});
|
|
99
|
+
export {
|
|
100
|
+
createSerializationCallSignatureParamsFn,
|
|
101
|
+
createSerializationCallSignatureReturnFn,
|
|
102
|
+
createSerializationFns,
|
|
103
|
+
createSerializationParamsFn,
|
|
104
|
+
createSerializationReturnFn,
|
|
105
|
+
desContext,
|
|
106
|
+
roundTrip,
|
|
107
|
+
serContext
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=binaryHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binaryHelpers.js","sources":["../../../../../../src/jitCompilers/binary/binarySpec/binaryHelpers.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 {FunctionRunType} from '../../../nodes/function/function.ts';\nimport type {DataViewDeserializer, DataViewSerializer, StrictArrayBuffer} from '@mionjs/core';\nimport type {InterfaceRunType} from '../../../nodes/collection/interface.ts';\nimport type {RunType} from '../../../types.ts';\nimport {createDataViewDeserializer, createDataViewSerializer, setSerializationOptions, getENV} from '@mionjs/core';\nimport {afterAll, expect} from 'vitest';\n\nconst DEBUG = getENV('DEBUG_JIT') === 'print';\n/** maps a binary serializer to json serializer */\nconst toJsonSerializers: Map<(v: any) => any, (v: any) => string> = new Map();\n\nsetSerializationOptions({bufferSize: 1024});\nexport const serContext: DataViewSerializer = createDataViewSerializer('test');\nexport const desContext: DataViewDeserializer = createDataViewDeserializer('test', new ArrayBuffer(0));\n\nconst SERIALIZE_FN = JitFunctions.toBinary;\nconst DESERIALIZE_FN = JitFunctions.fromBinary;\n\nexport function createSerializationFns(rt: RunType) {\n const toBinary = rt.createJitFunction(SERIALIZE_FN);\n const fromBinary = rt.createJitFunction(DESERIALIZE_FN);\n const serialize = (v: any) => (toBinary(v, serContext), serContext.getBuffer());\n const deserialize = (data: StrictArrayBuffer) => (desContext.setBuffer(data), fromBinary(undefined, desContext));\n if (DEBUG) {\n const toJson = rt.createJitFunction(JitFunctions.prepareForJson);\n const stringify = (v: any) => JSON.stringify(toJson(v));\n toJsonSerializers.set(serialize, stringify);\n }\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 toBinary = rt.createJitParamsFunction(SERIALIZE_FN, params);\n const fromBinary = rt.createJitParamsFunction(DESERIALIZE_FN, params);\n const serialize = (v: any) => (toBinary(v, serContext), serContext.getBuffer());\n const deserialize = (data: StrictArrayBuffer) => (desContext.setBuffer(data), fromBinary(undefined, desContext));\n if (DEBUG) {\n const toJson = rt.createJitParamsFunction(JitFunctions.prepareForJson, params);\n const stringify = (v: any) => JSON.stringify(toJson(v));\n toJsonSerializers.set(serialize, stringify);\n }\n return {serialize, deserialize};\n}\n\nexport function createSerializationReturnFn(rt: FunctionRunType) {\n const toBinary = rt.createJitReturnFunction(SERIALIZE_FN);\n const fromBinary = rt.createJitReturnFunction(DESERIALIZE_FN);\n const serialize = (v: any) => (toBinary(v, serContext), serContext.getBuffer());\n const deserialize = (data: StrictArrayBuffer) => (desContext.setBuffer(data), fromBinary(undefined, desContext));\n if (DEBUG) {\n const toJson = rt.createJitReturnFunction(JitFunctions.prepareForJson);\n const stringify = (v: any) => JSON.stringify(toJson(v));\n toJsonSerializers.set(serialize, stringify);\n }\n return {serialize, deserialize};\n}\n\nexport function createSerializationCallSignatureParamsFn(rt: InterfaceRunType) {\n const callSignature = rt.getCallSignature()!;\n const toBinary = callSignature.createJitParamsFunction(SERIALIZE_FN);\n const fromBinary = callSignature.createJitParamsFunction(DESERIALIZE_FN);\n const serialize = (v: any) => (toBinary(v, serContext), serContext.getBuffer());\n const deserialize = (data: StrictArrayBuffer) => (desContext.setBuffer(data), fromBinary(undefined, desContext));\n if (DEBUG) {\n const toJson = callSignature.createJitParamsFunction(JitFunctions.prepareForJson);\n const stringify = (v: any) => JSON.stringify(toJson(v));\n toJsonSerializers.set(serialize, stringify);\n }\n return {serialize, deserialize};\n}\n\nexport function createSerializationCallSignatureReturnFn(rt: InterfaceRunType) {\n const callSignature = rt.getCallSignature()!;\n const toBinary = callSignature.createJitReturnFunction(SERIALIZE_FN);\n const fromBinary = callSignature.createJitReturnFunction(DESERIALIZE_FN);\n const serialize = (v: any) => (toBinary(v, serContext), serContext.getBuffer());\n const deserialize = (data: StrictArrayBuffer) => (desContext.setBuffer(data), fromBinary(undefined, desContext));\n if (DEBUG) {\n const toJson = callSignature.createJitReturnFunction(JitFunctions.prepareForJson);\n const stringify = (v: any) => JSON.stringify(toJson(v));\n toJsonSerializers.set(serialize, stringify);\n }\n return {serialize, deserialize};\n}\n\nconst sizesEntries: any[] = [];\nconst valuesEntries: any[] = [];\n\nexport function roundTrip(serialize: (v: any) => StrictArrayBuffer, deserialize: (v: StrictArrayBuffer) => any, value: any) {\n serContext.reset();\n const serialized = serialize(value);\n const deserialized = deserialize(serialized);\n if (DEBUG) {\n const stringify = toJsonSerializers.get(serialize)!;\n let json: number | string = '';\n // eslint-disable-next-line\n try { json = new Blob([stringify(value)]).size; } catch (e) { json = '-'; } // prettier-ignore\n const sizes = {name: expect.getState().currentTestName, json, binary: serialized.byteLength};\n sizesEntries.push(sizes);\n valuesEntries.push({value, deserialized});\n }\n const result = {serialized, deserialized};\n return result;\n}\n\nafterAll(() => {\n if (sizesEntries.length) console.table(sizesEntries);\n if (valuesEntries.length) console.table(valuesEntries);\n});\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jitBinaryDeserializerArgs, JitFunctions } from '../../constants.functions.ts';
|
|
2
|
+
import { JitCode } from '../../types.ts';
|
|
3
|
+
import { BaseRunType } from '../../lib/baseRunTypes.ts';
|
|
4
|
+
import { BaseFnCompiler } from '../../lib/jitFnCompiler.ts';
|
|
5
|
+
type BinaryCompiler = BaseFnCompiler<typeof jitBinaryDeserializerArgs, typeof JitFunctions.fromBinary.id>;
|
|
6
|
+
export declare function emitFromBinary(runType: BaseRunType, comp: BinaryCompiler): JitCode;
|
|
7
|
+
export {};
|