@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,26 @@
|
|
|
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} from '@deepkit/type';
|
|
9
|
+
import type {JitCode} from '../../types.ts';
|
|
10
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
11
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
12
|
+
|
|
13
|
+
export class DateRunType extends AtomicRunType<TypeClass> {
|
|
14
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
15
|
+
return {code: `(${comp.vλl} instanceof Date && !isNaN(${comp.vλl}.getTime()))`, type: 'E'};
|
|
16
|
+
}
|
|
17
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
18
|
+
return {code: `if (!(${comp.vλl} instanceof Date && !isNaN(${comp.vλl}.getTime()))) ${comp.callJitErr(this)}`, type: 'S'};
|
|
19
|
+
}
|
|
20
|
+
emitPrepareForJson(): JitCode {
|
|
21
|
+
return {code: undefined, type: 'S'};
|
|
22
|
+
}
|
|
23
|
+
emitRestoreFromJson(comp: JitFnCompiler): JitCode {
|
|
24
|
+
return {code: `new Date(${comp.vλl})`, type: 'E'};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 {TypeEnum} from '@deepkit/type';
|
|
9
|
+
import type {JitCode} from '../../types.ts';
|
|
10
|
+
import {toLiteral} from '../../lib/utils.ts';
|
|
11
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
12
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
13
|
+
|
|
14
|
+
export class EnumRunType extends AtomicRunType<TypeEnum> {
|
|
15
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
16
|
+
const items = this.src.values.map((v) => `${comp.vλl} === ${toLiteral(v)}`);
|
|
17
|
+
return {code: `(${items.join(' || ')})`, type: 'E'};
|
|
18
|
+
}
|
|
19
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
20
|
+
const items = this.src.values.map((v) => `${comp.vλl} === ${toLiteral(v)}`);
|
|
21
|
+
return {code: `if (!(${items.join(' || ')})) ${comp.callJitErr(this)}`, type: 'S'};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 TypeEnum} from '@deepkit/type';
|
|
9
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
10
|
+
import {JitCode} from '../../types.ts';
|
|
11
|
+
|
|
12
|
+
// TODO: not sure when run type will be generated but doesn't seem to be used when using reflection on enums
|
|
13
|
+
export class EnumMemberRunType extends AtomicRunType<TypeEnum> {
|
|
14
|
+
skipJit() {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
emitIsType(): JitCode {
|
|
18
|
+
throw new Error('Enum member operations are not supported');
|
|
19
|
+
}
|
|
20
|
+
emitTypeErrors(): JitCode {
|
|
21
|
+
throw new Error('Enum member operations are not supported');
|
|
22
|
+
}
|
|
23
|
+
emitPrepareForJson(): JitCode {
|
|
24
|
+
throw new Error('Enum member operations are not supported');
|
|
25
|
+
}
|
|
26
|
+
emitRestoreFromJson(): JitCode {
|
|
27
|
+
throw new Error('Enum member operations are not supported');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
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, type TypeLiteral} from '@deepkit/type';
|
|
9
|
+
import type {JitCode, RunType} from '../../types.ts';
|
|
10
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
11
|
+
import type {Mutable} from '@mionjs/core';
|
|
12
|
+
import {toLiteral} from '../../lib/utils.ts';
|
|
13
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
14
|
+
import {BigIntRunType} from './bigInt.ts';
|
|
15
|
+
import {RegexpRunType} from './regexp.ts';
|
|
16
|
+
import {SymbolRunType} from './symbol.ts';
|
|
17
|
+
import {AnyKindName} from '../../constants.kind.ts';
|
|
18
|
+
import {StringRunType} from './string.ts';
|
|
19
|
+
import {NumberRunType} from './number.ts';
|
|
20
|
+
import {BooleanRunType} from './boolean.ts';
|
|
21
|
+
|
|
22
|
+
const stringRt = new StringRunType();
|
|
23
|
+
const numberRt = new NumberRunType();
|
|
24
|
+
const booleanRt = new BooleanRunType();
|
|
25
|
+
const symbolRt = new SymbolRunType();
|
|
26
|
+
const regexpRt = new RegexpRunType();
|
|
27
|
+
const bigIntRt = new BigIntRunType();
|
|
28
|
+
|
|
29
|
+
type AnyLiteralRunType = StringRunType | NumberRunType | BooleanRunType | SymbolRunType | RegexpRunType | BigIntRunType;
|
|
30
|
+
|
|
31
|
+
export class LiteralRunType extends AtomicRunType<TypeLiteral> {
|
|
32
|
+
getRunTypeForLiteral(comp: JitFnCompiler): AnyLiteralRunType {
|
|
33
|
+
const noLiterals = comp.opts.noLiterals;
|
|
34
|
+
const lit = this.src.literal;
|
|
35
|
+
let rt: AnyLiteralRunType;
|
|
36
|
+
if (lit instanceof RegExp) {
|
|
37
|
+
rt = regexpRt;
|
|
38
|
+
(rt as Mutable<RunType>).src = this.src;
|
|
39
|
+
if (noLiterals) (this.src as any).kind = ReflectionKind.regexp;
|
|
40
|
+
return rt;
|
|
41
|
+
}
|
|
42
|
+
switch (typeof lit) {
|
|
43
|
+
case 'string':
|
|
44
|
+
rt = stringRt;
|
|
45
|
+
if (noLiterals) (this.src as any).kind = ReflectionKind.string;
|
|
46
|
+
break;
|
|
47
|
+
case 'number':
|
|
48
|
+
rt = numberRt;
|
|
49
|
+
if (noLiterals) (this.src as any).kind = ReflectionKind.number;
|
|
50
|
+
break;
|
|
51
|
+
case 'boolean':
|
|
52
|
+
rt = booleanRt;
|
|
53
|
+
if (noLiterals) (this.src as any).kind = ReflectionKind.boolean;
|
|
54
|
+
break;
|
|
55
|
+
case 'bigint':
|
|
56
|
+
rt = bigIntRt;
|
|
57
|
+
if (noLiterals) (this.src as any).kind = ReflectionKind.bigint;
|
|
58
|
+
break;
|
|
59
|
+
case 'symbol':
|
|
60
|
+
rt = symbolRt;
|
|
61
|
+
if (noLiterals) (this.src as any).kind = ReflectionKind.symbol;
|
|
62
|
+
break;
|
|
63
|
+
default:
|
|
64
|
+
throw new Error(`Unsupported literal type ${typeof lit}`);
|
|
65
|
+
}
|
|
66
|
+
(rt as Mutable<RunType>).src = this.src;
|
|
67
|
+
return rt;
|
|
68
|
+
}
|
|
69
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
70
|
+
if (comp.opts.noLiterals) return this.getRunTypeForLiteral(comp).emitIsType(comp);
|
|
71
|
+
return {code: compileIsLiteral(comp, this.src.literal), type: 'E'};
|
|
72
|
+
}
|
|
73
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
74
|
+
if (comp.opts.noLiterals) return this.getRunTypeForLiteral(comp).emitTypeErrors(comp);
|
|
75
|
+
return {code: compileTypeErrorsLiteral(comp, this.src.literal, this.getKindName()), type: 'S'};
|
|
76
|
+
}
|
|
77
|
+
emitPrepareForJson(comp: JitFnCompiler): JitCode {
|
|
78
|
+
return this.getRunTypeForLiteral(comp).emitPrepareForJson(comp);
|
|
79
|
+
}
|
|
80
|
+
emitRestoreFromJson(comp: JitFnCompiler): JitCode {
|
|
81
|
+
return this.getRunTypeForLiteral(comp).emitRestoreFromJson(comp);
|
|
82
|
+
}
|
|
83
|
+
getLiteralValue() {
|
|
84
|
+
return this.src.literal;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function compileIsLiteral(comp: JitFnCompiler, lit: TypeLiteral['literal']): string {
|
|
89
|
+
const literalType = typeof lit;
|
|
90
|
+
if (lit instanceof RegExp) return `${comp.vλl} instanceof RegExp && String(${comp.vλl}) === String(${lit})`;
|
|
91
|
+
switch (literalType) {
|
|
92
|
+
case 'string':
|
|
93
|
+
return `${comp.vλl} === ${toLiteral(lit)}`;
|
|
94
|
+
case 'number':
|
|
95
|
+
return `${comp.vλl} === ${toLiteral(lit)}`;
|
|
96
|
+
case 'boolean':
|
|
97
|
+
return `${comp.vλl} === ${toLiteral(lit)}`;
|
|
98
|
+
case 'bigint':
|
|
99
|
+
return `${comp.vλl} === ${toLiteral(lit)}`;
|
|
100
|
+
case 'symbol':
|
|
101
|
+
return `typeof ${comp.vλl} === 'symbol' && ${comp.vλl}.description === ${toLiteral((lit as symbol).description)}`;
|
|
102
|
+
default:
|
|
103
|
+
throw new Error(`Unsupported literal type ${literalType}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function compileTypeErrorsLiteral(comp: JitErrorsFnCompiler, lit: TypeLiteral['literal'], name: AnyKindName): string {
|
|
108
|
+
const literalType = typeof lit;
|
|
109
|
+
if (lit instanceof RegExp)
|
|
110
|
+
return `if (!(${comp.vλl} instanceof RegExp) || String(${comp.vλl}) !== String(${lit})) ${comp.callJitErr(name)}`;
|
|
111
|
+
switch (literalType) {
|
|
112
|
+
case 'string':
|
|
113
|
+
return `if (${comp.vλl} !== ${toLiteral(lit)}) ${comp.callJitErr(name)}`;
|
|
114
|
+
case 'number':
|
|
115
|
+
return `if (${comp.vλl} !== ${toLiteral(lit)}) ${comp.callJitErr(name)}`;
|
|
116
|
+
case 'boolean':
|
|
117
|
+
return `if (${comp.vλl} !== ${toLiteral(lit)}) ${comp.callJitErr(name)}`;
|
|
118
|
+
case 'bigint':
|
|
119
|
+
return `if (${comp.vλl} !== ${toLiteral(lit)}) ${comp.callJitErr(name)}`;
|
|
120
|
+
case 'symbol':
|
|
121
|
+
return `if (typeof ${comp.vλl} !== 'symbol' || ${comp.vλl}.description !== ${toLiteral((lit as symbol).description)}) {${comp.callJitErr(name)}}`;
|
|
122
|
+
default:
|
|
123
|
+
throw new Error(`Unsupported literal type ${literalType}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 {TypeNever} from '@deepkit/type';
|
|
9
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
10
|
+
import {JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
11
|
+
import {JitCode} from '../../types.ts';
|
|
12
|
+
|
|
13
|
+
export class NeverRunType extends AtomicRunType<TypeNever> {
|
|
14
|
+
emitIsType(): JitCode {
|
|
15
|
+
return {code: 'false', type: 'E'};
|
|
16
|
+
}
|
|
17
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
18
|
+
return {code: `${comp.callJitErr(this)}`, type: 'S'};
|
|
19
|
+
}
|
|
20
|
+
emitPrepareForJson(): JitCode {
|
|
21
|
+
throw new Error('Never type cannot be encoded to JSON.');
|
|
22
|
+
}
|
|
23
|
+
emitRestoreFromJson(): JitCode {
|
|
24
|
+
throw new Error('Never type cannot be decoded from JSON.');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 {TypeNull} from '@deepkit/type';
|
|
9
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
10
|
+
import type {JitCode} from '../../types.ts';
|
|
11
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
12
|
+
|
|
13
|
+
export class NullRunType extends AtomicRunType<TypeNull> {
|
|
14
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
15
|
+
return {code: `${comp.vλl} === null`, type: 'E'};
|
|
16
|
+
}
|
|
17
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
18
|
+
return {code: `if (${comp.vλl} !== null) ${comp.callJitErr(this)}`, type: 'S'};
|
|
19
|
+
}
|
|
20
|
+
emitPrepareForJson(): JitCode {
|
|
21
|
+
return {code: undefined, type: 'S'};
|
|
22
|
+
}
|
|
23
|
+
emitRestoreFromJson(): JitCode {
|
|
24
|
+
return {code: undefined, type: 'S'};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 {TypeNumber} from '@deepkit/type';
|
|
9
|
+
import type {JitCode} from '../../types.ts';
|
|
10
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
11
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
12
|
+
|
|
13
|
+
export class NumberRunType extends AtomicRunType<TypeNumber> {
|
|
14
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
15
|
+
return {code: `Number.isFinite(${comp.vλl})`, type: 'E'};
|
|
16
|
+
}
|
|
17
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
18
|
+
return {code: `if(!(Number.isFinite(${comp.vλl}))) ${comp.callJitErr(this)}`, type: 'S'};
|
|
19
|
+
}
|
|
20
|
+
emitPrepareForJson(): JitCode {
|
|
21
|
+
return {code: undefined, type: 'S'};
|
|
22
|
+
}
|
|
23
|
+
emitRestoreFromJson(): JitCode {
|
|
24
|
+
return {code: undefined, type: 'S'};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 {TypeAny, TypeUnknown} from '@deepkit/type';
|
|
9
|
+
import type {JitCode} from '../../types.ts';
|
|
10
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
11
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
12
|
+
|
|
13
|
+
export class ObjectRunType extends AtomicRunType<TypeAny | TypeUnknown> {
|
|
14
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
15
|
+
return {code: `(typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null)`, type: 'E'};
|
|
16
|
+
}
|
|
17
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
18
|
+
return {code: `if (!(typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null)) ${comp.callJitErr(this)}`, type: 'S'};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 {TypeRegexp} from '@deepkit/type';
|
|
9
|
+
import type {JitCode} from '../../types.ts';
|
|
10
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
11
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
12
|
+
|
|
13
|
+
export class RegexpRunType extends AtomicRunType<TypeRegexp> {
|
|
14
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
15
|
+
return {code: `(${comp.vλl} instanceof RegExp)`, type: 'E'};
|
|
16
|
+
}
|
|
17
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
18
|
+
return {code: `if (!(${comp.vλl} instanceof RegExp)) ${comp.callJitErr(this)}`, type: 'S'};
|
|
19
|
+
}
|
|
20
|
+
emitPrepareForJson(comp: JitFnCompiler): JitCode {
|
|
21
|
+
return {code: `${comp.vλl}.toString()`, type: 'E'};
|
|
22
|
+
}
|
|
23
|
+
emitRestoreFromJson(comp: JitFnCompiler): JitCode {
|
|
24
|
+
return {
|
|
25
|
+
code: `(function(){const parts = ${comp.vλl}.match(/\\/(.*)\\/(.*)?/) ;return new RegExp(parts[1], parts[2] || '')})()`,
|
|
26
|
+
type: 'E',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 {TypeString} from '@deepkit/type';
|
|
9
|
+
import type {JitCode} from '../../types.ts';
|
|
10
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
11
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
12
|
+
|
|
13
|
+
export class StringRunType extends AtomicRunType<TypeString> {
|
|
14
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
15
|
+
return {code: `typeof ${comp.vλl} === 'string'`, type: 'E'};
|
|
16
|
+
}
|
|
17
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
18
|
+
return {code: `if (typeof ${comp.vλl} !== 'string') ${comp.callJitErr(this)}`, type: 'S'};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
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 {TypeSymbol} from '@deepkit/type';
|
|
9
|
+
import type {JitCode} from '../../types.ts';
|
|
10
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
11
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
12
|
+
import {JitFunctions} from '../../constants.functions.ts';
|
|
13
|
+
|
|
14
|
+
export class SymbolRunType extends AtomicRunType<TypeSymbol> {
|
|
15
|
+
skipJit(comp: JitFnCompiler): boolean {
|
|
16
|
+
if (!comp) return true;
|
|
17
|
+
return comp.fnID !== JitFunctions.toJSCode.id;
|
|
18
|
+
}
|
|
19
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
20
|
+
return {code: `typeof ${comp.vλl} === 'symbol'`, type: 'E'};
|
|
21
|
+
}
|
|
22
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
23
|
+
return {code: `if (typeof ${comp.vλl} !== 'symbol') ${comp.callJitErr(this)}`, type: 'S'};
|
|
24
|
+
}
|
|
25
|
+
emitPrepareForJson(comp: JitFnCompiler): JitCode {
|
|
26
|
+
return {code: `'Symbol:' + (${comp.vλl}.description || '')`, type: 'E'};
|
|
27
|
+
}
|
|
28
|
+
emitRestoreFromJson(comp: JitFnCompiler): JitCode {
|
|
29
|
+
return {code: `Symbol(${comp.vλl}.substring(7))`, type: 'E'};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 {TypeUndefined} from '@deepkit/type';
|
|
9
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
10
|
+
import type {JitCode} from '../../types.ts';
|
|
11
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
12
|
+
|
|
13
|
+
export class UndefinedRunType extends AtomicRunType<TypeUndefined> {
|
|
14
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
15
|
+
return {code: `typeof ${comp.vλl} === 'undefined'`, type: 'E'};
|
|
16
|
+
}
|
|
17
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
18
|
+
return {code: `if (typeof ${comp.vλl} !== 'undefined') ${comp.callJitErr(this)}`, type: 'S'};
|
|
19
|
+
}
|
|
20
|
+
emitRestoreFromJson(): JitCode {
|
|
21
|
+
return {code: `undefined`, type: 'E'};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 {TypeVoid} from '@deepkit/type';
|
|
9
|
+
import type {JitCode} from '../../types.ts';
|
|
10
|
+
import {AtomicRunType} from '../../lib/baseRunTypes.ts';
|
|
11
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
12
|
+
|
|
13
|
+
export class VoidRunType extends AtomicRunType<TypeVoid> {
|
|
14
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
15
|
+
return {code: `${comp.vλl} === undefined`, type: 'E'};
|
|
16
|
+
}
|
|
17
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
18
|
+
return {code: `if (${comp.vλl} !== undefined) ${comp.callJitErr(this)}`, type: 'S'};
|
|
19
|
+
}
|
|
20
|
+
emitPrepareForJson(comp: JitFnCompiler): JitCode {
|
|
21
|
+
return {code: `${comp.vλl} = undefined`, type: 'E'};
|
|
22
|
+
}
|
|
23
|
+
emitRestoreFromJson(comp: JitFnCompiler): JitCode {
|
|
24
|
+
return {code: `${comp.vλl} = undefined`, type: 'E'};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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 {TypeClass} from '@deepkit/type';
|
|
8
|
+
import {InterfaceMember, InterfaceRunType} from './interface.ts';
|
|
9
|
+
import {JitFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
10
|
+
import {getJitUtils} from '@mionjs/core';
|
|
11
|
+
import {toLiteral} from '../../lib/utils.ts';
|
|
12
|
+
import {isConstructor} from '../../lib/guards.ts';
|
|
13
|
+
import {JitCode} from '../../types.ts';
|
|
14
|
+
|
|
15
|
+
export class ClassRunType extends InterfaceRunType<TypeClass> {
|
|
16
|
+
getClassName(): string {
|
|
17
|
+
return this.src.classType.name;
|
|
18
|
+
}
|
|
19
|
+
isClassWithEmptyConstructor(): boolean {
|
|
20
|
+
const children = this.getChildRunTypes() as InterfaceMember[];
|
|
21
|
+
const isEmpty = children.every((prop) => !isConstructor(prop) || prop.getParameters().getChildRunTypes().length === 0);
|
|
22
|
+
return isEmpty;
|
|
23
|
+
}
|
|
24
|
+
emitRestoreFromJson(comp: JitFnCompiler): JitCode {
|
|
25
|
+
const objJit = super.emitRestoreFromJson(comp);
|
|
26
|
+
const desFnVarName = comp.getLocalVarName('desFn', this);
|
|
27
|
+
const classLiteral = toLiteral(this.getClassName());
|
|
28
|
+
const code = `
|
|
29
|
+
${objJit.code};
|
|
30
|
+
let ${desFnVarName} = utl.${getJitUtils().getDeserializeFn.name}(${classLiteral});
|
|
31
|
+
if (${desFnVarName}) {${comp.vλl} = ${desFnVarName}(${comp.vλl})}
|
|
32
|
+
else if (${desFnVarName} = utl.${getJitUtils().getSerializeClass.name}(${classLiteral})) {${comp.vλl} = new ${desFnVarName}(${comp.vλl})}
|
|
33
|
+
`;
|
|
34
|
+
return {code, type: 'S'};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -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 {TypeFunction} from '@deepkit/type';
|
|
9
|
+
import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
|
|
10
|
+
import type {AnyParameterListRunType, JitCode} from '../../types.ts';
|
|
11
|
+
import {TupleRunType} from './tuple.ts';
|
|
12
|
+
import {ParameterRunType} from '../member/param.ts';
|
|
13
|
+
|
|
14
|
+
export class FunctionParamsRunType<ParamList extends AnyParameterListRunType = TypeFunction> extends TupleRunType<
|
|
15
|
+
ParamList,
|
|
16
|
+
ParameterRunType
|
|
17
|
+
> {
|
|
18
|
+
emitIsType(comp: JitFnCompiler): JitCode {
|
|
19
|
+
const children = this.getParamRunTypes(comp);
|
|
20
|
+
if (children.length === 0) return {code: `${comp.vλl}.length === 0`, type: 'E'};
|
|
21
|
+
const lengthCode = this.hasRestParameter(comp) ? '' : `${comp.vλl}.length <= ${children.length}`;
|
|
22
|
+
// Only include parameters that require validation
|
|
23
|
+
const paramsCode = children.map((p) => comp.compileIsType(p, 'E').code).filter(Boolean);
|
|
24
|
+
if (paramsCode.length === 0) return lengthCode ? {code: `(${lengthCode})`, type: 'E'} : {code: undefined, type: 'E'};
|
|
25
|
+
return lengthCode
|
|
26
|
+
? {code: `(${lengthCode} && ${paramsCode.join(' && ')})`, type: 'E'}
|
|
27
|
+
: {code: `(${paramsCode.join(' && ')})`, type: 'E'};
|
|
28
|
+
}
|
|
29
|
+
emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
|
|
30
|
+
const children = this.getParamRunTypes(comp);
|
|
31
|
+
if (children.length === 0) return {code: `if (${comp.vλl}.length !== 0) ${comp.callJitErr(this)}`, type: 'S'};
|
|
32
|
+
const lengthCode = this.hasRestParameter(comp) ? '' : `${comp.vλl}.length > ${children.length}`;
|
|
33
|
+
|
|
34
|
+
// Only include parameters that require validation
|
|
35
|
+
const paramsCode = children.map((p) => comp.compileTypeErrors(p, 'S').code).filter(Boolean);
|
|
36
|
+
if (paramsCode.length === 0)
|
|
37
|
+
return lengthCode ? {code: `if (${lengthCode}) ${comp.callJitErr(this)}`, type: 'S'} : {code: undefined, type: 'S'};
|
|
38
|
+
return lengthCode
|
|
39
|
+
? {code: `if (${lengthCode}) ${comp.callJitErr(this)}; else {${paramsCode.join(';')}}`, type: 'S'}
|
|
40
|
+
: {code: paramsCode.join(';'), type: 'S'};
|
|
41
|
+
}
|
|
42
|
+
}
|