@mionjs/run-types 0.8.7 → 0.8.10
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.d.ts +1 -0
- package/.dist/cjs/index.d.ts.map +1 -0
- package/.dist/cjs/src/constants.d.ts +1 -0
- package/.dist/cjs/src/constants.d.ts.map +1 -0
- package/.dist/cjs/src/constants.functions.d.ts +1 -0
- package/.dist/cjs/src/constants.functions.d.ts.map +1 -0
- package/.dist/cjs/src/constants.kind.d.ts +1 -0
- package/.dist/cjs/src/constants.kind.d.ts.map +1 -0
- package/.dist/cjs/src/createRunType.cjs +3 -1
- package/.dist/cjs/src/createRunType.cjs.map +1 -1
- package/.dist/cjs/src/createRunType.d.ts +1 -0
- package/.dist/cjs/src/createRunType.d.ts.map +1 -0
- package/.dist/cjs/src/createRunTypeFunctions.d.ts +1 -0
- package/.dist/cjs/src/createRunTypeFunctions.d.ts.map +1 -0
- package/.dist/cjs/src/formats.runtype.d.ts +1 -0
- package/.dist/cjs/src/formats.runtype.d.ts.map +1 -0
- package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +1 -0
- package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts.map +1 -0
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs +1 -1
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs.map +1 -1
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts +1 -0
- package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts.map +1 -0
- package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs +1 -1
- package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs.map +1 -1
- package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts +1 -0
- package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts.map +1 -0
- package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts +1 -0
- package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts.map +1 -0
- package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +1 -0
- package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts.map +1 -0
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs +1 -1
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs.map +1 -1
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts +1 -0
- package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts.map +1 -0
- package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +1 -0
- package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts.map +1 -0
- package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts +1 -0
- package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts.map +1 -0
- package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts +1 -0
- package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts.map +1 -0
- package/.dist/cjs/src/lib/baseRunTypes.d.ts +1 -0
- package/.dist/cjs/src/lib/baseRunTypes.d.ts.map +1 -0
- package/.dist/cjs/src/lib/createJitFunction.d.ts +1 -0
- package/.dist/cjs/src/lib/createJitFunction.d.ts.map +1 -0
- package/.dist/cjs/src/lib/dkProxy.d.ts +1 -0
- package/.dist/cjs/src/lib/dkProxy.d.ts.map +1 -0
- package/.dist/cjs/src/lib/formats.d.ts +1 -0
- package/.dist/cjs/src/lib/formats.d.ts.map +1 -0
- package/.dist/cjs/src/lib/guards.d.ts +1 -0
- package/.dist/cjs/src/lib/guards.d.ts.map +1 -0
- package/.dist/cjs/src/lib/jitFnCompiler.d.ts +1 -0
- package/.dist/cjs/src/lib/jitFnCompiler.d.ts.map +1 -0
- package/.dist/cjs/src/lib/jitFnsRegistry.d.ts +1 -0
- package/.dist/cjs/src/lib/jitFnsRegistry.d.ts.map +1 -0
- package/.dist/cjs/src/lib/typeId.d.ts +1 -0
- package/.dist/cjs/src/lib/typeId.d.ts.map +1 -0
- package/.dist/cjs/src/lib/utils.d.ts +1 -0
- package/.dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/.dist/cjs/src/mocking/constants.mock.d.ts +1 -0
- package/.dist/cjs/src/mocking/constants.mock.d.ts.map +1 -0
- package/.dist/cjs/src/mocking/mockRegistry.d.ts +1 -0
- package/.dist/cjs/src/mocking/mockRegistry.d.ts.map +1 -0
- package/.dist/cjs/src/mocking/mockType.cjs +46 -1
- package/.dist/cjs/src/mocking/mockType.cjs.map +1 -1
- package/.dist/cjs/src/mocking/mockType.d.ts +1 -0
- package/.dist/cjs/src/mocking/mockType.d.ts.map +1 -0
- package/.dist/cjs/src/mocking/mockUtils.d.ts +1 -0
- package/.dist/cjs/src/mocking/mockUtils.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/any.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/any.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/bigInt.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/bigInt.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/boolean.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/boolean.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/date.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/date.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/enum.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/enum.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/enumMember.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/enumMember.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/literal.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/literal.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/never.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/never.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/null.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/null.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/number.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/number.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/object.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/object.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/regexp.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/regexp.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/string.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/string.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/symbol.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/symbol.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/undefined.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/undefined.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/unknown.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/unknown.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/atomic/void.d.ts +1 -0
- package/.dist/cjs/src/nodes/atomic/void.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/collection/class.d.ts +1 -0
- package/.dist/cjs/src/nodes/collection/class.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/collection/functionParams.d.ts +1 -0
- package/.dist/cjs/src/nodes/collection/functionParams.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/collection/interface.d.ts +1 -0
- package/.dist/cjs/src/nodes/collection/interface.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/collection/intersection.d.ts +1 -0
- package/.dist/cjs/src/nodes/collection/intersection.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/collection/templateLiteral.cjs +73 -0
- package/.dist/cjs/src/nodes/collection/templateLiteral.cjs.map +1 -0
- package/.dist/cjs/src/nodes/collection/templateLiteral.d.ts +16 -0
- package/.dist/cjs/src/nodes/collection/templateLiteral.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/collection/tuple.d.ts +1 -0
- package/.dist/cjs/src/nodes/collection/tuple.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/collection/union.d.ts +1 -0
- package/.dist/cjs/src/nodes/collection/union.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts +1 -0
- package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/function/function.d.ts +1 -0
- package/.dist/cjs/src/nodes/function/function.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/array.d.ts +1 -0
- package/.dist/cjs/src/nodes/member/array.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/callSignature.d.ts +1 -0
- package/.dist/cjs/src/nodes/member/callSignature.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/genericMember.d.ts +1 -0
- package/.dist/cjs/src/nodes/member/genericMember.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/indexProperty.cjs +69 -22
- package/.dist/cjs/src/nodes/member/indexProperty.cjs.map +1 -1
- package/.dist/cjs/src/nodes/member/indexProperty.d.ts +2 -0
- package/.dist/cjs/src/nodes/member/indexProperty.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/method.d.ts +1 -0
- package/.dist/cjs/src/nodes/member/method.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/methodSignature.d.ts +1 -0
- package/.dist/cjs/src/nodes/member/methodSignature.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/param.d.ts +1 -0
- package/.dist/cjs/src/nodes/member/param.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/property.d.ts +1 -0
- package/.dist/cjs/src/nodes/member/property.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/restParams.d.ts +1 -0
- package/.dist/cjs/src/nodes/member/restParams.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/member/tupleMember.d.ts +1 -0
- package/.dist/cjs/src/nodes/member/tupleMember.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/native/Iterable.d.ts +1 -0
- package/.dist/cjs/src/nodes/native/Iterable.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/native/map.d.ts +1 -0
- package/.dist/cjs/src/nodes/native/map.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/native/nonSerializable.d.ts +1 -0
- package/.dist/cjs/src/nodes/native/nonSerializable.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/native/promise.d.ts +1 -0
- package/.dist/cjs/src/nodes/native/promise.d.ts.map +1 -0
- package/.dist/cjs/src/nodes/native/set.d.ts +1 -0
- package/.dist/cjs/src/nodes/native/set.d.ts.map +1 -0
- package/.dist/cjs/src/run-types-pure-fns.d.ts +1 -0
- package/.dist/cjs/src/run-types-pure-fns.d.ts.map +1 -0
- package/.dist/cjs/src/types.d.ts +1 -0
- package/.dist/cjs/src/types.d.ts.map +1 -0
- package/.dist/esm/index.d.ts +1 -0
- package/.dist/esm/index.d.ts.map +1 -0
- package/.dist/esm/src/constants.d.ts +1 -0
- package/.dist/esm/src/constants.d.ts.map +1 -0
- package/.dist/esm/src/constants.functions.d.ts +1 -0
- package/.dist/esm/src/constants.functions.d.ts.map +1 -0
- package/.dist/esm/src/constants.kind.d.ts +1 -0
- package/.dist/esm/src/constants.kind.d.ts.map +1 -0
- package/.dist/esm/src/createRunType.d.ts +1 -0
- package/.dist/esm/src/createRunType.d.ts.map +1 -0
- package/.dist/esm/src/createRunType.js +3 -1
- package/.dist/esm/src/createRunType.js.map +1 -1
- package/.dist/esm/src/createRunTypeFunctions.d.ts +1 -0
- package/.dist/esm/src/createRunTypeFunctions.d.ts.map +1 -0
- package/.dist/esm/src/formats.runtype.d.ts +1 -0
- package/.dist/esm/src/formats.runtype.d.ts.map +1 -0
- package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +1 -0
- package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts.map +1 -0
- package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts +1 -0
- package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts.map +1 -0
- package/.dist/esm/src/jitCompilers/binary/fromBinary.js +1 -1
- package/.dist/esm/src/jitCompilers/binary/fromBinary.js.map +1 -1
- package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts +1 -0
- package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts.map +1 -0
- package/.dist/esm/src/jitCompilers/binary/toBinary.js +1 -1
- package/.dist/esm/src/jitCompilers/binary/toBinary.js.map +1 -1
- package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts +1 -0
- package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts.map +1 -0
- package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +1 -0
- package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts.map +1 -0
- package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts +1 -0
- package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts.map +1 -0
- package/.dist/esm/src/jitCompilers/json/stringifyJson.js +1 -1
- package/.dist/esm/src/jitCompilers/json/stringifyJson.js.map +1 -1
- package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +1 -0
- package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts.map +1 -0
- package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts +1 -0
- package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts.map +1 -0
- package/.dist/esm/src/lib/baseRunTypeFormat.d.ts +1 -0
- package/.dist/esm/src/lib/baseRunTypeFormat.d.ts.map +1 -0
- package/.dist/esm/src/lib/baseRunTypes.d.ts +1 -0
- package/.dist/esm/src/lib/baseRunTypes.d.ts.map +1 -0
- package/.dist/esm/src/lib/createJitFunction.d.ts +1 -0
- package/.dist/esm/src/lib/createJitFunction.d.ts.map +1 -0
- package/.dist/esm/src/lib/dkProxy.d.ts +1 -0
- package/.dist/esm/src/lib/dkProxy.d.ts.map +1 -0
- package/.dist/esm/src/lib/formats.d.ts +1 -0
- package/.dist/esm/src/lib/formats.d.ts.map +1 -0
- package/.dist/esm/src/lib/guards.d.ts +1 -0
- package/.dist/esm/src/lib/guards.d.ts.map +1 -0
- package/.dist/esm/src/lib/jitFnCompiler.d.ts +1 -0
- package/.dist/esm/src/lib/jitFnCompiler.d.ts.map +1 -0
- package/.dist/esm/src/lib/jitFnsRegistry.d.ts +1 -0
- package/.dist/esm/src/lib/jitFnsRegistry.d.ts.map +1 -0
- package/.dist/esm/src/lib/typeId.d.ts +1 -0
- package/.dist/esm/src/lib/typeId.d.ts.map +1 -0
- package/.dist/esm/src/lib/utils.d.ts +1 -0
- package/.dist/esm/src/lib/utils.d.ts.map +1 -0
- package/.dist/esm/src/mocking/constants.mock.d.ts +1 -0
- package/.dist/esm/src/mocking/constants.mock.d.ts.map +1 -0
- package/.dist/esm/src/mocking/mockRegistry.d.ts +1 -0
- package/.dist/esm/src/mocking/mockRegistry.d.ts.map +1 -0
- package/.dist/esm/src/mocking/mockType.d.ts +1 -0
- package/.dist/esm/src/mocking/mockType.d.ts.map +1 -0
- package/.dist/esm/src/mocking/mockType.js +47 -2
- package/.dist/esm/src/mocking/mockType.js.map +1 -1
- package/.dist/esm/src/mocking/mockUtils.d.ts +1 -0
- package/.dist/esm/src/mocking/mockUtils.d.ts.map +1 -0
- package/.dist/esm/src/mocking/mockUtils.js +1 -1
- package/.dist/esm/src/nodes/atomic/any.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/any.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/bigInt.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/bigInt.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/boolean.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/boolean.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/date.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/date.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/enum.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/enum.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/enumMember.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/enumMember.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/literal.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/literal.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/never.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/never.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/null.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/null.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/number.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/number.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/object.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/object.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/regexp.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/regexp.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/string.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/string.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/symbol.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/symbol.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/undefined.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/undefined.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/unknown.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/unknown.d.ts.map +1 -0
- package/.dist/esm/src/nodes/atomic/void.d.ts +1 -0
- package/.dist/esm/src/nodes/atomic/void.d.ts.map +1 -0
- package/.dist/esm/src/nodes/collection/class.d.ts +1 -0
- package/.dist/esm/src/nodes/collection/class.d.ts.map +1 -0
- package/.dist/esm/src/nodes/collection/functionParams.d.ts +1 -0
- package/.dist/esm/src/nodes/collection/functionParams.d.ts.map +1 -0
- package/.dist/esm/src/nodes/collection/interface.d.ts +1 -0
- package/.dist/esm/src/nodes/collection/interface.d.ts.map +1 -0
- package/.dist/esm/src/nodes/collection/intersection.d.ts +1 -0
- package/.dist/esm/src/nodes/collection/intersection.d.ts.map +1 -0
- package/.dist/esm/src/nodes/collection/templateLiteral.d.ts +16 -0
- package/.dist/esm/src/nodes/collection/templateLiteral.d.ts.map +1 -0
- package/.dist/esm/src/nodes/collection/templateLiteral.js +73 -0
- package/.dist/esm/src/nodes/collection/templateLiteral.js.map +1 -0
- package/.dist/esm/src/nodes/collection/tuple.d.ts +1 -0
- package/.dist/esm/src/nodes/collection/tuple.d.ts.map +1 -0
- package/.dist/esm/src/nodes/collection/union.d.ts +1 -0
- package/.dist/esm/src/nodes/collection/union.d.ts.map +1 -0
- package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts +1 -0
- package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts.map +1 -0
- package/.dist/esm/src/nodes/function/function.d.ts +1 -0
- package/.dist/esm/src/nodes/function/function.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/array.d.ts +1 -0
- package/.dist/esm/src/nodes/member/array.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/callSignature.d.ts +1 -0
- package/.dist/esm/src/nodes/member/callSignature.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/genericMember.d.ts +1 -0
- package/.dist/esm/src/nodes/member/genericMember.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/indexProperty.d.ts +2 -0
- package/.dist/esm/src/nodes/member/indexProperty.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/indexProperty.js +70 -23
- package/.dist/esm/src/nodes/member/indexProperty.js.map +1 -1
- package/.dist/esm/src/nodes/member/method.d.ts +1 -0
- package/.dist/esm/src/nodes/member/method.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/methodSignature.d.ts +1 -0
- package/.dist/esm/src/nodes/member/methodSignature.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/param.d.ts +1 -0
- package/.dist/esm/src/nodes/member/param.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/property.d.ts +1 -0
- package/.dist/esm/src/nodes/member/property.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/restParams.d.ts +1 -0
- package/.dist/esm/src/nodes/member/restParams.d.ts.map +1 -0
- package/.dist/esm/src/nodes/member/tupleMember.d.ts +1 -0
- package/.dist/esm/src/nodes/member/tupleMember.d.ts.map +1 -0
- package/.dist/esm/src/nodes/native/Iterable.d.ts +1 -0
- package/.dist/esm/src/nodes/native/Iterable.d.ts.map +1 -0
- package/.dist/esm/src/nodes/native/map.d.ts +1 -0
- package/.dist/esm/src/nodes/native/map.d.ts.map +1 -0
- package/.dist/esm/src/nodes/native/nonSerializable.d.ts +1 -0
- package/.dist/esm/src/nodes/native/nonSerializable.d.ts.map +1 -0
- package/.dist/esm/src/nodes/native/promise.d.ts +1 -0
- package/.dist/esm/src/nodes/native/promise.d.ts.map +1 -0
- package/.dist/esm/src/nodes/native/set.d.ts +1 -0
- package/.dist/esm/src/nodes/native/set.d.ts.map +1 -0
- package/.dist/esm/src/run-types-pure-fns.d.ts +1 -0
- package/.dist/esm/src/run-types-pure-fns.d.ts.map +1 -0
- package/.dist/esm/src/types.d.ts +1 -0
- package/.dist/esm/src/types.d.ts.map +1 -0
- package/index.ts +70 -0
- package/package.json +8 -4
- package/src/constants.functions.ts +196 -0
- package/src/constants.kind.ts +76 -0
- package/src/constants.ts +85 -0
- package/src/createRunType.ts +322 -0
- package/src/createRunTypeFunctions.ts +93 -0
- package/src/formats.runtype.ts +35 -0
- package/src/jitCompilers/binary/binarySPEC.md +138 -0
- package/src/jitCompilers/binary/binarySpec/binaryHelpers.ts +118 -0
- package/src/jitCompilers/binary/fromBinary.ts +493 -0
- package/src/jitCompilers/binary/toBinary.ts +436 -0
- package/src/jitCompilers/equalsHelpers.ts +62 -0
- package/src/jitCompilers/json/jsonSpec/jsonHelpers.ts +64 -0
- package/src/jitCompilers/json/stringifyJson.ts +476 -0
- package/src/jitCompilers/json/stringifySpec/stringifyHelpers.ts +59 -0
- package/src/jitCompilers/json/toJsCode.ts +182 -0
- package/src/jitCompilers/serialization-suite.ts +1689 -0
- package/src/jitCompilers/xyz-Template/fromXYZ.ts +212 -0
- package/src/jitCompilers/xyz-Template/toXYZ.ts +217 -0
- package/src/jitCompilers/xyz-Template/xyzReadme.md +6 -0
- package/src/jitCompilers/xyz-Template/xyzSpec/xyzHelpers.ts +66 -0
- package/src/lib/baseRunTypeFormat.ts +320 -0
- package/src/lib/baseRunTypes.ts +367 -0
- package/src/lib/createJitFunction.ts +87 -0
- package/src/lib/dkProxy.ts +47 -0
- package/src/lib/formats.ts +144 -0
- package/src/lib/guards.ts +290 -0
- package/src/lib/jitFnCompiler.ts +783 -0
- package/src/lib/jitFnsRegistry.ts +53 -0
- package/src/lib/typeId.ts +225 -0
- package/src/lib/utils.ts +402 -0
- package/src/mocking/constants.mock.ts +87 -0
- package/src/mocking/mockRegistry.ts +20 -0
- package/src/mocking/mockType.ts +409 -0
- package/src/mocking/mockUtils.ts +82 -0
- package/src/nodes/atomic/any.ts +22 -0
- package/src/nodes/atomic/bigInt.ts +26 -0
- package/src/nodes/atomic/boolean.ts +26 -0
- package/src/nodes/atomic/date.ts +26 -0
- package/src/nodes/atomic/enum.ts +23 -0
- package/src/nodes/atomic/enumMember.ts +29 -0
- package/src/nodes/atomic/literal.ts +125 -0
- package/src/nodes/atomic/never.ts +26 -0
- package/src/nodes/atomic/null.ts +26 -0
- package/src/nodes/atomic/number.ts +26 -0
- package/src/nodes/atomic/object.ts +20 -0
- package/src/nodes/atomic/regexp.ts +29 -0
- package/src/nodes/atomic/string.ts +20 -0
- package/src/nodes/atomic/symbol.ts +31 -0
- package/src/nodes/atomic/undefined.ts +23 -0
- package/src/nodes/atomic/unknown.ts +10 -0
- package/src/nodes/atomic/void.ts +26 -0
- package/src/nodes/collection/class.ts +36 -0
- package/src/nodes/collection/functionParams.ts +42 -0
- package/src/nodes/collection/interface.ts +300 -0
- package/src/nodes/collection/intersection.ts +30 -0
- package/src/nodes/collection/templateLiteral.ts +87 -0
- package/src/nodes/collection/tuple.ts +80 -0
- package/src/nodes/collection/union.ts +205 -0
- package/src/nodes/collection/unionDiscriminator.ts +259 -0
- package/src/nodes/function/function.ts +166 -0
- package/src/nodes/member/array.ts +150 -0
- package/src/nodes/member/callSignature.ts +34 -0
- package/src/nodes/member/genericMember.ts +63 -0
- package/src/nodes/member/indexProperty.ts +174 -0
- package/src/nodes/member/method.ts +30 -0
- package/src/nodes/member/methodSignature.ts +31 -0
- package/src/nodes/member/param.ts +22 -0
- package/src/nodes/member/property.ts +75 -0
- package/src/nodes/member/restParams.ts +22 -0
- package/src/nodes/member/tupleMember.ts +93 -0
- package/src/nodes/native/Iterable.ts +153 -0
- package/src/nodes/native/map.ts +91 -0
- package/src/nodes/native/nonSerializable.ts +42 -0
- package/src/nodes/native/promise.ts +43 -0
- package/src/nodes/native/set.ts +56 -0
- package/src/run-types-pure-fns.ts +116 -0
- package/src/types.ts +206 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* ########
|
|
2
|
+
* 2024 mion
|
|
3
|
+
* Author: Ma-jerez
|
|
4
|
+
* License: MIT
|
|
5
|
+
* The software is provided "as is", without warranty of any kind.
|
|
6
|
+
* ######## */
|
|
7
|
+
|
|
8
|
+
import {ReflectionKind, TypeTupleMember, type TypeParameter} from '@deepkit/type';
|
|
9
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
10
|
+
import {MemberRunType} from '../../lib/baseRunTypes.ts';
|
|
11
|
+
import {JitCode} from '../../types.ts';
|
|
12
|
+
import {childIsExpression, getParamIndex} from '../../lib/utils.ts';
|
|
13
|
+
|
|
14
|
+
type TupleMemberT = TypeParameter | TypeTupleMember;
|
|
15
|
+
export class TupleMemberRunType<T extends TupleMemberT = TypeTupleMember> extends MemberRunType<T> {
|
|
16
|
+
isOptional(): boolean {
|
|
17
|
+
return !!this.src.optional || this.isRest() || this.hasDefaultValue();
|
|
18
|
+
}
|
|
19
|
+
getChildIndex(comp: JitFnCompiler): number {
|
|
20
|
+
const start = comp?.opts?.paramsSlice?.start;
|
|
21
|
+
if (start) return getParamIndex(this.src as TypeParameter) - start;
|
|
22
|
+
return getParamIndex(this.src as TypeParameter);
|
|
23
|
+
}
|
|
24
|
+
getChildVarName(comp: JitFnCompiler): number {
|
|
25
|
+
// For tuple members, use the index in the parent tuple
|
|
26
|
+
const src = this.src as any;
|
|
27
|
+
if (src.parent?.types) {
|
|
28
|
+
return src.parent.types.indexOf(this.src);
|
|
29
|
+
}
|
|
30
|
+
// Fallback to parameter index for non-tuple members
|
|
31
|
+
return this.getChildIndex(comp);
|
|
32
|
+
}
|
|
33
|
+
getChildLiteral(comp: JitFnCompiler): number {
|
|
34
|
+
return this.getChildVarName(comp);
|
|
35
|
+
}
|
|
36
|
+
useArrayAccessor(): true {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
isRest(): boolean {
|
|
40
|
+
return this.getMemberType().src.kind === ReflectionKind.rest;
|
|
41
|
+
}
|
|
42
|
+
skipSettingAccessor() {
|
|
43
|
+
return this.isRest();
|
|
44
|
+
}
|
|
45
|
+
hasDefaultValue(): boolean {
|
|
46
|
+
return !!(this.src as TypeParameter).default;
|
|
47
|
+
}
|
|
48
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
49
|
+
const child = this.getJitChild(comp);
|
|
50
|
+
const skipChild = child?.skipJit(comp);
|
|
51
|
+
const childJit = comp.compileIsType(child, 'E');
|
|
52
|
+
const isNonSerializable = skipChild || (!childJit?.code && !child);
|
|
53
|
+
if (isNonSerializable) return {code: `${comp.getChildVλl()} === undefined`, type: 'E'}; // non serializable types must be undefined
|
|
54
|
+
if (!childJit?.code) return {code: undefined, type: 'E'};
|
|
55
|
+
if (this.isRest()) return childJit;
|
|
56
|
+
return this.isOptional() ? {code: `(${comp.getChildVλl()} === undefined || (${childJit.code}))`, type: 'E'} : childJit;
|
|
57
|
+
}
|
|
58
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
59
|
+
const child = this.getJitChild(comp);
|
|
60
|
+
const skipChild = child?.skipJit(comp);
|
|
61
|
+
const childJit = comp.compileTypeErrors(child, 'S');
|
|
62
|
+
const isNonSerializable = skipChild || (!childJit?.code && !child);
|
|
63
|
+
if (isNonSerializable)
|
|
64
|
+
return {
|
|
65
|
+
code: `if (${comp.getChildVλl()} !== undefined) ${comp.callJitErrWithPath('undefined', this.getChildIndex(comp))}`,
|
|
66
|
+
type: 'S',
|
|
67
|
+
}; // non serializable types must be undefined
|
|
68
|
+
if (!childJit?.code) return {code: undefined, type: 'S'};
|
|
69
|
+
if (this.isRest()) return childJit;
|
|
70
|
+
return this.isOptional() ? {code: `if (${comp.getChildVλl()} !== undefined) {${childJit.code}}`, type: 'S'} : childJit;
|
|
71
|
+
}
|
|
72
|
+
emitPrepareForJson(comp: JitFnCompiler): JitCode {
|
|
73
|
+
const child = this.getJitChild(comp);
|
|
74
|
+
const childJit = comp.compilePrepareForJson(child, 'S');
|
|
75
|
+
const optionalCode = `if (${comp.getChildVλl()} === undefined ) {if (${comp.vλl}.length > ${this.getChildIndex(comp)}) ${comp.getChildVλl()} = null}`;
|
|
76
|
+
if (!child || !childJit?.code) return this.isOptional() ? {code: optionalCode, type: 'S'} : {code: undefined, type: 'S'};
|
|
77
|
+
const isExpression = childIsExpression(childJit, child);
|
|
78
|
+
const code = isExpression ? `${comp.getChildVλl()} = ${childJit.code};` : childJit.code || '';
|
|
79
|
+
return this.isOptional() ? {code: `${optionalCode} else {${code}}`, type: 'S'} : {code, type: 'S'};
|
|
80
|
+
}
|
|
81
|
+
emitRestoreFromJson(comp: JitFnCompiler): JitCode {
|
|
82
|
+
if (!this.getJitChild(comp)) return {code: `${comp.getChildVλl()} = undefined;`, type: 'S'}; // non serializable are restored to undefined
|
|
83
|
+
const child = this.getJitChild(comp);
|
|
84
|
+
const childJit = comp.compileRestoreFromJson(child, 'S');
|
|
85
|
+
const optionalCOde = `if (${comp.getChildVλl()} === null ) {${comp.getChildVλl()} = undefined}`;
|
|
86
|
+
if (!child || !childJit?.code) return this.isOptional() ? {code: optionalCOde, type: 'S'} : {code: undefined, type: 'S'};
|
|
87
|
+
const isExpression = childIsExpression(childJit, child);
|
|
88
|
+
const code = isExpression ? `${comp.getChildVλl()} = ${childJit.code};` : childJit.code || '';
|
|
89
|
+
return this.isOptional()
|
|
90
|
+
? {code: `${optionalCOde} else if (${comp.getChildVλl()} !== undefined) {${code}}`, type: 'S'}
|
|
91
|
+
: {code, type: 'S'};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/* ########
|
|
2
|
+
* 2024 mion
|
|
3
|
+
* Author: Ma-jerez
|
|
4
|
+
* License: MIT
|
|
5
|
+
* The software is provided "as is", without warranty of any kind.
|
|
6
|
+
* ######## */
|
|
7
|
+
import type {JitCode} from '../../types.ts';
|
|
8
|
+
import {ClassRunType} from '../collection/class.ts';
|
|
9
|
+
import {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
10
|
+
import {BaseRunType} from '../../lib/baseRunTypes.ts';
|
|
11
|
+
|
|
12
|
+
// This is the base class for all iterable run types, like SetRunType and MapRunType
|
|
13
|
+
export abstract class IterableRunType extends ClassRunType {
|
|
14
|
+
abstract children: BaseRunType[];
|
|
15
|
+
abstract constructorName: string;
|
|
16
|
+
getIndexVarName(comp: JitFnCompiler): string {
|
|
17
|
+
return comp.getLocalVarName('e', this);
|
|
18
|
+
}
|
|
19
|
+
getChildRunTypes = (): BaseRunType[] => {
|
|
20
|
+
return this.children;
|
|
21
|
+
};
|
|
22
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
23
|
+
const entry = this.getCustomVλl(comp)?.vλl || comp.vλl;
|
|
24
|
+
const childrenCode = this.getJitChildren(comp)
|
|
25
|
+
.map((c) => `if (!(${comp.compileIsType(c, 'E').code})) return false`)
|
|
26
|
+
.join(';');
|
|
27
|
+
return {
|
|
28
|
+
code: `
|
|
29
|
+
if (!(${comp.vλl} instanceof ${this.constructorName})) return false;
|
|
30
|
+
for (const ${entry} of ${comp.vλl}) {${childrenCode}} return true;
|
|
31
|
+
`,
|
|
32
|
+
type: 'RB',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
36
|
+
const entry = this.getCustomVλl(comp)?.vλl || comp.vλl;
|
|
37
|
+
const childrenCode = this.getJitChildren(comp)
|
|
38
|
+
.map((c) => comp.compileTypeErrors(c, 'S').code)
|
|
39
|
+
.join(';');
|
|
40
|
+
const index = this.getIndexVarName(comp);
|
|
41
|
+
return {
|
|
42
|
+
code: `
|
|
43
|
+
if (!(${comp.vλl} instanceof ${this.constructorName})){${comp.callJitErr(this)}}
|
|
44
|
+
else {let ${index} = 0;for (const ${entry} of ${comp.vλl}) {${childrenCode}; ${index}++}}
|
|
45
|
+
`,
|
|
46
|
+
type: 'S',
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
emitPrepareForJson(comp: JitFnCompiler): JitCode {
|
|
50
|
+
const entry = this.getCustomVλl(comp)?.vλl || comp.vλl;
|
|
51
|
+
const resName = comp.getLocalVarName('ml', this);
|
|
52
|
+
const childrenCode = this.getJitChildren(comp)
|
|
53
|
+
.map((c) => comp.compilePrepareForJson(c, 'S').code)
|
|
54
|
+
.filter(Boolean)
|
|
55
|
+
.join(';');
|
|
56
|
+
if (!childrenCode) return {code: `${comp.vλl} = Array.from(${comp.vλl})`, type: 'S'};
|
|
57
|
+
return {
|
|
58
|
+
code: `
|
|
59
|
+
const ${resName} = [];
|
|
60
|
+
for (let ${entry} of ${comp.vλl}) {${childrenCode} ${resName}.push(${entry})}
|
|
61
|
+
${comp.vλl} = ${resName};
|
|
62
|
+
`,
|
|
63
|
+
type: 'S',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
emitRestoreFromJson(comp: JitFnCompiler): JitCode {
|
|
67
|
+
const children = this.getJitChildren(comp);
|
|
68
|
+
if (!children.length) return {code: `${comp.vλl} = new Map(${comp.vλl})`, type: 'S'};
|
|
69
|
+
const index = this.getCustomVλl(comp)?.vλl || comp.vλl;
|
|
70
|
+
const childrenCode = children
|
|
71
|
+
.map((c) => comp.compileRestoreFromJson(c, 'S').code)
|
|
72
|
+
.filter(Boolean)
|
|
73
|
+
.join(';');
|
|
74
|
+
if (!childrenCode) return {code: `${comp.vλl} = new ${this.constructorName}(${comp.vλl})`, type: 'S'};
|
|
75
|
+
return {
|
|
76
|
+
code: `
|
|
77
|
+
for (let ${index} = 0; ${index} < ${comp.vλl}.length; ${index}++) {${childrenCode}}
|
|
78
|
+
${comp.vλl} = new ${this.constructorName}(${comp.vλl})
|
|
79
|
+
`,
|
|
80
|
+
type: 'S',
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// TODO: Implement the following methods, should just call same compile method for children, look into to array run type
|
|
85
|
+
|
|
86
|
+
emitHasUnknownKeys(comp: JitFnCompiler): JitCode {
|
|
87
|
+
const childrenCode = this.getJitChildren(comp)
|
|
88
|
+
.map((child) => {
|
|
89
|
+
const itemJit = comp.compileHasUnknownKeys(child, 'E');
|
|
90
|
+
return itemJit?.code ? `if (${itemJit.code}) return true;` : '';
|
|
91
|
+
})
|
|
92
|
+
.filter(Boolean)
|
|
93
|
+
.join('');
|
|
94
|
+
if (!childrenCode) return {code: 'return false', type: 'RB'};
|
|
95
|
+
const entry = this.getCustomVλl(comp)?.vλl || comp.vλl;
|
|
96
|
+
return {
|
|
97
|
+
code: `
|
|
98
|
+
if (!(${comp.vλl} instanceof ${this.constructorName})) return false;
|
|
99
|
+
for (const ${entry} of ${comp.vλl}) {${childrenCode}} return false;
|
|
100
|
+
`,
|
|
101
|
+
type: 'RB',
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
emitUnknownKeyErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
106
|
+
const childrenCode = this.getJitChildren(comp)
|
|
107
|
+
.map((child) => comp.compileUnknownKeyErrors(child, 'S').code)
|
|
108
|
+
.filter(Boolean)
|
|
109
|
+
.join(';');
|
|
110
|
+
if (!childrenCode) return {code: undefined, type: 'S'};
|
|
111
|
+
const entry = this.getCustomVλl(comp)?.vλl || comp.vλl;
|
|
112
|
+
const index = this.getIndexVarName(comp);
|
|
113
|
+
return {
|
|
114
|
+
code: `
|
|
115
|
+
if (!(${comp.vλl} instanceof ${this.constructorName})) return;
|
|
116
|
+
let ${index} = 0; for (const ${entry} of ${comp.vλl}) {${childrenCode}; ${index}++}
|
|
117
|
+
`,
|
|
118
|
+
type: 'S',
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
emitStripUnknownKeys(comp: JitFnCompiler): JitCode {
|
|
123
|
+
const childrenCode = this.getJitChildren(comp)
|
|
124
|
+
.map((child) => comp.compileStripUnknownKeys(child, 'S').code)
|
|
125
|
+
.filter(Boolean)
|
|
126
|
+
.join(';');
|
|
127
|
+
if (!childrenCode) return {code: undefined, type: 'S'};
|
|
128
|
+
const entry = this.getCustomVλl(comp)?.vλl || comp.vλl;
|
|
129
|
+
return {
|
|
130
|
+
code: `
|
|
131
|
+
if (!(${comp.vλl} instanceof ${this.constructorName})) return;
|
|
132
|
+
for (const ${entry} of ${comp.vλl}) {${childrenCode}}
|
|
133
|
+
`,
|
|
134
|
+
type: 'S',
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
emitUnknownKeysToUndefined(comp: JitFnCompiler): JitCode {
|
|
139
|
+
const childrenCode = this.getJitChildren(comp)
|
|
140
|
+
.map((child) => comp.compileUnknownKeysToUndefined(child, 'S').code)
|
|
141
|
+
.filter(Boolean)
|
|
142
|
+
.join(';');
|
|
143
|
+
if (!childrenCode) return {code: undefined, type: 'S'};
|
|
144
|
+
const entry = this.getCustomVλl(comp)?.vλl || comp.vλl;
|
|
145
|
+
return {
|
|
146
|
+
code: `
|
|
147
|
+
if (!(${comp.vλl} instanceof ${this.constructorName})) return;
|
|
148
|
+
for (const ${entry} of ${comp.vλl}) {${childrenCode}}
|
|
149
|
+
`,
|
|
150
|
+
type: 'S',
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/* ########
|
|
2
|
+
* 2024 mion
|
|
3
|
+
* Author: Ma-jerez
|
|
4
|
+
* License: MIT
|
|
5
|
+
* The software is provided "as is", without warranty of any kind.
|
|
6
|
+
* ######## */
|
|
7
|
+
import type {SrcType} from '../../types.ts';
|
|
8
|
+
import {GenericMemberRunType} from '../member/genericMember.ts';
|
|
9
|
+
import {ReflectionSubKind} from '../../constants.kind.ts';
|
|
10
|
+
import {ReflectionKind, TypeClass} from '@deepkit/type';
|
|
11
|
+
import {IterableRunType} from './Iterable.ts';
|
|
12
|
+
import {JitFunctions} from '../../constants.functions.ts';
|
|
13
|
+
import type {JitFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
14
|
+
import {cpf_safeIterableKey} from '../../run-types-pure-fns.ts';
|
|
15
|
+
|
|
16
|
+
export class MapRunType extends IterableRunType {
|
|
17
|
+
keyRT = new MapKeyRunType();
|
|
18
|
+
valueRT = new MapValueRunType();
|
|
19
|
+
children = [this.keyRT, this.valueRT];
|
|
20
|
+
constructorName = 'Map';
|
|
21
|
+
onCreated(src: SrcType<TypeClass>): void {
|
|
22
|
+
const types = src.arguments;
|
|
23
|
+
if (!types || types.length !== 2) throw new Error(`Map expects 2 type arguments: ie: Map<string, number>`);
|
|
24
|
+
super.onCreated(src);
|
|
25
|
+
this.keyRT.onCreated({
|
|
26
|
+
kind: ReflectionKind.parameter,
|
|
27
|
+
parent: src,
|
|
28
|
+
type: types[0],
|
|
29
|
+
subKind: ReflectionSubKind.mapKey,
|
|
30
|
+
});
|
|
31
|
+
this.valueRT.onCreated({
|
|
32
|
+
kind: ReflectionKind.parameter,
|
|
33
|
+
parent: src,
|
|
34
|
+
type: types[1],
|
|
35
|
+
subKind: ReflectionSubKind.mapValue,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
getCustomVλl(comp: JitFnCompiler) {
|
|
39
|
+
// restoreFromJson is decoding a regular array so no need to use an special case for vλl as other operations
|
|
40
|
+
if (comp.fnID === JitFunctions.restoreFromJson.id)
|
|
41
|
+
return {vλl: comp.getLocalVarName('it', this), isStandalone: false, useArrayAccessor: true};
|
|
42
|
+
// other operations use an special case for vλl where all parents are skipped
|
|
43
|
+
return {vλl: comp.getLocalVarName('it', this), isStandalone: true};
|
|
44
|
+
}
|
|
45
|
+
getMapKeyVλl(comp: JitFnCompiler) {
|
|
46
|
+
return comp.getLocalVarName('mpk', this);
|
|
47
|
+
}
|
|
48
|
+
getMapValueVλl(comp: JitFnCompiler) {
|
|
49
|
+
return comp.getLocalVarName('mpV', this);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
class MapKeyRunType extends GenericMemberRunType<any> {
|
|
54
|
+
index = 0;
|
|
55
|
+
getStaticPathLiteral(comp: JitFnCompiler): string | number {
|
|
56
|
+
const parent = this.getParent()! as MapRunType;
|
|
57
|
+
const custom = parent.getCustomVλl(comp)!;
|
|
58
|
+
const safeKeyFn = comp.addPureFunction(cpf_safeIterableKey);
|
|
59
|
+
return `{key:${safeKeyFn}(${custom.vλl}[0]),index:${parent.getIndexVarName(comp)},failed:'mapKey'}`;
|
|
60
|
+
}
|
|
61
|
+
getCustomVλl(comp: JitFnCompiler) {
|
|
62
|
+
// temp variable to assign mapKey
|
|
63
|
+
if (comp.fnID === JitFunctions.fromBinary.id)
|
|
64
|
+
return {
|
|
65
|
+
vλl: (this.getParent()! as MapRunType).getMapKeyVλl(comp),
|
|
66
|
+
isStandalone: true,
|
|
67
|
+
useArrayAccessor: false,
|
|
68
|
+
};
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
class MapValueRunType extends GenericMemberRunType<any> {
|
|
74
|
+
index = 1;
|
|
75
|
+
getStaticPathLiteral(comp: JitFnCompiler): string | number {
|
|
76
|
+
const parent = this.getParent()! as MapRunType;
|
|
77
|
+
const custom = parent.getCustomVλl(comp)!;
|
|
78
|
+
const safeKeyFn = comp.addPureFunction(cpf_safeIterableKey);
|
|
79
|
+
return `{key:${safeKeyFn}(${custom.vλl}[0]),index:${parent.getIndexVarName(comp)},failed:'mapVal'}`;
|
|
80
|
+
}
|
|
81
|
+
getCustomVλl(comp: JitFnCompiler) {
|
|
82
|
+
// temp variable to assign mapKey
|
|
83
|
+
if (comp.fnID === JitFunctions.fromBinary.id)
|
|
84
|
+
return {
|
|
85
|
+
vλl: (this.getParent()! as MapRunType).getMapValueVλl(comp),
|
|
86
|
+
isStandalone: true,
|
|
87
|
+
useArrayAccessor: false,
|
|
88
|
+
};
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/* ########
|
|
2
|
+
* 2024 mion
|
|
3
|
+
* Author: Ma-jerez
|
|
4
|
+
* License: MIT
|
|
5
|
+
* The software is provided "as is", without warranty of any kind.
|
|
6
|
+
* ######## */
|
|
7
|
+
|
|
8
|
+
import type {TypeClass, TypeObjectLiteral} from '@deepkit/type';
|
|
9
|
+
import {JitCode} from '../../types.ts';
|
|
10
|
+
import {InterfaceRunType} from '../collection/interface.ts';
|
|
11
|
+
|
|
12
|
+
// Non serializable types might not be Atomic but will be skipped so it doesn't matter
|
|
13
|
+
export class NonSerializableRunType extends InterfaceRunType<TypeObjectLiteral | TypeClass> {
|
|
14
|
+
skipJit() {
|
|
15
|
+
// skip return false so we ensure the compile functions will throw when a NonSerializable type is used
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
emitIsType(): JitCode {
|
|
19
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
20
|
+
}
|
|
21
|
+
emitTypeErrors(): JitCode {
|
|
22
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
23
|
+
}
|
|
24
|
+
emitPrepareForJson(): JitCode {
|
|
25
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
26
|
+
}
|
|
27
|
+
emitRestoreFromJson(): JitCode {
|
|
28
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
29
|
+
}
|
|
30
|
+
emitHasUnknownKeys(): JitCode {
|
|
31
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
32
|
+
}
|
|
33
|
+
emitUnknownKeyErrors(): JitCode {
|
|
34
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
35
|
+
}
|
|
36
|
+
emitStripUnknownKeys(): JitCode {
|
|
37
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
38
|
+
}
|
|
39
|
+
emitUnknownKeysToUndefined(): JitCode {
|
|
40
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* ########
|
|
2
|
+
* 2024 mion
|
|
3
|
+
* Author: Ma-jerez
|
|
4
|
+
* License: MIT
|
|
5
|
+
* The software is provided "as is", without warranty of any kind.
|
|
6
|
+
* ######## */
|
|
7
|
+
import {type TypePromise} from '@deepkit/type';
|
|
8
|
+
import type {JitCode} from '../../types.ts';
|
|
9
|
+
import {MemberRunType} from '../../lib/baseRunTypes.ts';
|
|
10
|
+
import {JitFunctions} from '../../constants.functions.ts';
|
|
11
|
+
import type {JitFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
12
|
+
|
|
13
|
+
export class PromiseRunType extends MemberRunType<TypePromise> {
|
|
14
|
+
skipJit(comp: JitFnCompiler): boolean {
|
|
15
|
+
return comp?.fnID !== JitFunctions.toJSCode.id;
|
|
16
|
+
}
|
|
17
|
+
emitIsType(): JitCode {
|
|
18
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
19
|
+
}
|
|
20
|
+
emitTypeErrors(): JitCode {
|
|
21
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
22
|
+
}
|
|
23
|
+
emitPrepareForJson(): JitCode {
|
|
24
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
25
|
+
}
|
|
26
|
+
emitRestoreFromJson(): JitCode {
|
|
27
|
+
throw new Error(`Jit compilation disabled for Non Serializable types.`);
|
|
28
|
+
}
|
|
29
|
+
isOptional(): boolean {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33
|
+
getChildVarName(comp: JitFnCompiler): string | number {
|
|
34
|
+
return comp.getLocalVarName('p', this);
|
|
35
|
+
}
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
37
|
+
getChildLiteral(comp: JitFnCompiler): string | number {
|
|
38
|
+
return this.getChildVarName(comp);
|
|
39
|
+
}
|
|
40
|
+
useArrayAccessor(): boolean {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/* ########
|
|
2
|
+
* 2024 mion
|
|
3
|
+
* Author: Ma-jerez
|
|
4
|
+
* License: MIT
|
|
5
|
+
* The software is provided "as is", without warranty of any kind.
|
|
6
|
+
* ######## */
|
|
7
|
+
import type {SrcType} from '../../types.ts';
|
|
8
|
+
import {ReflectionSubKind} from '../../constants.kind.ts';
|
|
9
|
+
import {ReflectionKind, type TypeClass} from '@deepkit/type';
|
|
10
|
+
import {GenericMemberRunType} from '../member/genericMember.ts';
|
|
11
|
+
import {IterableRunType} from './Iterable.ts';
|
|
12
|
+
import {JitFunctions} from '../../constants.functions.ts';
|
|
13
|
+
import type {JitFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
14
|
+
import {cpf_safeIterableKey} from '../../run-types-pure-fns.ts';
|
|
15
|
+
export class SetRunType extends IterableRunType {
|
|
16
|
+
keyRT = new SetKeyRunType();
|
|
17
|
+
children = [this.keyRT];
|
|
18
|
+
constructorName = 'Set';
|
|
19
|
+
onCreated(src: SrcType<TypeClass>): void {
|
|
20
|
+
const types = src.arguments;
|
|
21
|
+
if (!types || types.length !== 1) throw new Error(`Set expects 1 type argument: ie: Set<number>`);
|
|
22
|
+
super.onCreated(src);
|
|
23
|
+
this.keyRT.onCreated({
|
|
24
|
+
kind: ReflectionKind.parameter,
|
|
25
|
+
parent: src,
|
|
26
|
+
type: types[0],
|
|
27
|
+
subKind: ReflectionSubKind.setItem,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
getCustomVλl(comp: JitFnCompiler) {
|
|
31
|
+
// restoreFromJson is decoding a regular array so no need to use an special case for vλl as other operations
|
|
32
|
+
if (comp.fnID === JitFunctions.restoreFromJson.id)
|
|
33
|
+
return {vλl: comp.getLocalVarName('it', this), isStandalone: false, useArrayAccessor: true};
|
|
34
|
+
// other operations use an special case for vλl where all parents are skipped
|
|
35
|
+
return {vλl: comp.getLocalVarName('it', this), isStandalone: true};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export class SetKeyRunType extends GenericMemberRunType<any> {
|
|
40
|
+
index = 0;
|
|
41
|
+
skipSettingAccessor() {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
getStaticPathLiteral(comp: JitFnCompiler): string {
|
|
45
|
+
const parent = this.getParent()! as SetRunType;
|
|
46
|
+
const custom = parent.getCustomVλl(comp)!;
|
|
47
|
+
const safeKeyFn = comp.addPureFunction(cpf_safeIterableKey);
|
|
48
|
+
return `{key:${safeKeyFn}(${custom.vλl}),index:${parent.getIndexVarName(comp)}}`;
|
|
49
|
+
}
|
|
50
|
+
getCustomVλl(comp: JitFnCompiler) {
|
|
51
|
+
if (comp.fnID === JitFunctions.fromBinary.id)
|
|
52
|
+
return {vλl: comp.getLocalVarName('sK', this), isStandalone: true, useArrayAccessor: false};
|
|
53
|
+
// other operations use an special case for vλl where all parents are skipped
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/* ########
|
|
2
|
+
* 2025 mion
|
|
3
|
+
* Author: Ma-jerez
|
|
4
|
+
* License: MIT
|
|
5
|
+
* The software is provided "as is", without warranty of any kind.
|
|
6
|
+
* ######## */
|
|
7
|
+
import type {TypeFormatError, StrNumber, RunTypeError} from '@mionjs/core';
|
|
8
|
+
import {registerPureFnFactory} from '@mionjs/core';
|
|
9
|
+
|
|
10
|
+
export const cpf_asJSONString = registerPureFnFactory('mion', 'asJSONString', function () {
|
|
11
|
+
// @ts-expect-error 2867
|
|
12
|
+
if (typeof Bun !== 'undefined') return JSON.stringify; // bun has a faster JSON.stringify
|
|
13
|
+
// eslint-disable-next-line no-control-regex
|
|
14
|
+
const STR_ESCAPE = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;
|
|
15
|
+
const MAX_SCAPE_TEST_LENGTH = 1000;
|
|
16
|
+
return function _asJSONStringRegexOnly(str) {
|
|
17
|
+
// Always use regex test for strings >= 42 chars (n o for loop)
|
|
18
|
+
if (str.length < MAX_SCAPE_TEST_LENGTH && STR_ESCAPE.test(str) === false) {
|
|
19
|
+
return '"' + str + '"';
|
|
20
|
+
} else {
|
|
21
|
+
return JSON.stringify(str);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export const cpf_getUnknownKeysFromArray = registerPureFnFactory('mion', 'getUnknownKeysFromArray', function () {
|
|
27
|
+
const MAX_UNKNOWN_KEYS = 10;
|
|
28
|
+
return function _getUnknownKeysFromArray(obj: Record<StrNumber, any>, keys: StrNumber[]): StrNumber[] {
|
|
29
|
+
const unknownKeys: StrNumber[] = [];
|
|
30
|
+
for (const prop in obj) {
|
|
31
|
+
let found = false;
|
|
32
|
+
for (let j = 0; j < keys.length; j++) {
|
|
33
|
+
if (keys[j] === prop) {
|
|
34
|
+
found = true;
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (!found) {
|
|
39
|
+
unknownKeys.push(prop as string);
|
|
40
|
+
if (unknownKeys.length >= MAX_UNKNOWN_KEYS) throw new Error('Too many unknown keys');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return unknownKeys;
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
export const cpf_hasUnknownKeysFromArray = registerPureFnFactory('mion', 'hasUnknownKeysFromArray', function () {
|
|
48
|
+
return function _hasUnknownKeysFromArray(obj: Record<StrNumber, any>, keys: StrNumber[]): boolean {
|
|
49
|
+
for (const prop in obj) {
|
|
50
|
+
// iterates over the object keys and if not found prop adds to unknownKeys
|
|
51
|
+
let found = false;
|
|
52
|
+
for (let j = 0; j < keys.length; j++) {
|
|
53
|
+
if (keys[j] === prop) {
|
|
54
|
+
found = true;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (!found) return true;
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
export const cpf_newRunTypeErr = registerPureFnFactory('mion', 'newRunTypeErr', function () {
|
|
65
|
+
return function _err(
|
|
66
|
+
pλth: readonly StrNumber[],
|
|
67
|
+
εrr: RunTypeError[],
|
|
68
|
+
expected: string,
|
|
69
|
+
accessPath?: readonly StrNumber[]
|
|
70
|
+
): void {
|
|
71
|
+
const path = accessPath?.length ? [...pλth, ...accessPath] : [...pλth];
|
|
72
|
+
const runTypeErr: RunTypeError = {expected, path};
|
|
73
|
+
εrr.push(runTypeErr);
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
export const cpf_formatErr = registerPureFnFactory('mion', 'formatErr', function () {
|
|
78
|
+
return function _formatErr(
|
|
79
|
+
pλth: StrNumber[],
|
|
80
|
+
εrr: RunTypeError[],
|
|
81
|
+
expected: string,
|
|
82
|
+
fmtName: string,
|
|
83
|
+
paramName: string,
|
|
84
|
+
paramVal: string | number | boolean | bigint,
|
|
85
|
+
fmtPath: StrNumber[],
|
|
86
|
+
accessPath?: StrNumber[],
|
|
87
|
+
fmtAccessPath?: StrNumber[]
|
|
88
|
+
): void {
|
|
89
|
+
const path = accessPath?.length ? [...pλth, ...accessPath] : [...pλth];
|
|
90
|
+
const formatPath = fmtAccessPath?.length ? [...fmtPath, ...fmtAccessPath, paramName] : [...fmtPath, paramName];
|
|
91
|
+
const format: TypeFormatError = {name: fmtName, formatPath: formatPath, val: paramVal};
|
|
92
|
+
const runTypeErr: Required<RunTypeError> = {expected, path, format};
|
|
93
|
+
εrr.push(runTypeErr);
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
export const cpf_safeIterableKey = registerPureFnFactory('mion', 'safeIterableKey', function () {
|
|
98
|
+
return function _safeKey(value: any): any {
|
|
99
|
+
if (value === undefined) return null;
|
|
100
|
+
if (value === null) return null;
|
|
101
|
+
const type = typeof value;
|
|
102
|
+
if (type === 'number' || type === 'string' || type === 'boolean') return value;
|
|
103
|
+
return null;
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
/** @reflection never */
|
|
108
|
+
export const cpf_sanitizeCompiledFn = registerPureFnFactory('mion', 'sanitizeCompiledFn', function () {
|
|
109
|
+
const anonymousRegex = /^\s*function\s+anonymous\s*\(/;
|
|
110
|
+
return function sanitizeCompiled(fnCode: string): string {
|
|
111
|
+
if (anonymousRegex.test(fnCode)) {
|
|
112
|
+
return fnCode.replace(anonymousRegex, 'function (');
|
|
113
|
+
}
|
|
114
|
+
return fnCode;
|
|
115
|
+
};
|
|
116
|
+
});
|