typia
Version:
Superfast runtime validators with only one line
24 lines (23 loc) • 1.26 kB
JavaScript
import { _notationAssign } from "./_notationAssign.mjs";
//#region src/internal/_notationAny.ts
const _notationAny = (rename) => {
const main = (input) => {
if (typeof input === "object") if (input === null) return null;
else if (Array.isArray(input)) return input.map(main);
else if (input instanceof Boolean || input instanceof BigInt || input instanceof Number || input instanceof String) return input.valueOf();
else if (input instanceof Date) return new Date(input);
else if (input instanceof Uint8Array || input instanceof Uint8ClampedArray || input instanceof Uint16Array || input instanceof Uint32Array || input instanceof BigUint64Array || input instanceof Int8Array || input instanceof Int16Array || input instanceof Int32Array || input instanceof BigInt64Array || input instanceof Float32Array || input instanceof Float64Array || input instanceof DataView) return input;
else return object(input);
return input;
};
const object = (input) => {
const output = {};
const sources = Object.create(null);
for (const [key, value] of Object.entries(input)) _notationAssign(output, sources, key, main(value), rename);
return output;
};
return main;
};
//#endregion
export { _notationAny };
//# sourceMappingURL=_notationAny.mjs.map