UNPKG

alwz

Version:

Extendable library for typecasting

181 lines 7.89 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.promise = exports.weakset = exports.set = exports.weakmap = exports.map = exports.object = exports.date = exports.fn = exports.array = exports.symbol = exports.string = exports.bigint = exports.double = exports.ulong = exports.uint = exports.ushort = exports.ubyte = exports.long = exports.int = exports.short = exports.byte = exports.number = exports.boolean = void 0; const Converter_js_1 = __importDefault(require("./models/Converter.cjs")); const numbers = __importStar(require("./constants/numbers.cjs")); const is_js_1 = __importStar(require("./is.cjs")); exports.boolean = new Converter_js_1.default(is_js_1.default.boolean, Boolean) .undefined(Boolean) .number(Boolean) .bigint(Boolean) .string(Boolean) .symbol(function (i) { return this.convert(exports.string.convert(i)); }) .register(is_js_1.default.null, Boolean) .register(is_js_1.default.Array, function (i) { return this.convert(i[0]); }) .register(is_js_1.default.Date, (i) => Boolean(i.getTime())); exports.number = new Converter_js_1.default(is_js_1.default.number, Number) .undefined(Number) .boolean(Number) .bigint(Number) .string(Number) .symbol((i) => Number(exports.string.convert(i))) .register(is_js_1.default.null, () => 0) .register(is_js_1.default.Array, function (i) { return this.convert(i[0]); }) .register(is_js_1.default.Date, (i) => i.getTime()); const numeric = exports.number.clone() .undefined(() => 0) .bigint(function (i) { return this.convert(Number(i)); }) .string(function (i) { return this.convert(Number(i)); }) .symbol(function (i) { return this.convert(exports.string.convert(i)); }) .register(is_js_1.default.Date, function (i) { return this.convert(i.getTime()); }); numeric.fallback = () => 0; _a = Object.fromEntries(Object.entries(numbers.integers) .map(([name, [min, max]]) => { const converter = numeric.clone() .number(function (i) { if (i <= min) { return min; } else if (i >= max) { return max; } else if (Number.isNaN(i)) { return 0; } else { return Math.trunc(i); } }); converter.is = is_js_1.integers[name]; return [name, converter]; })), exports.byte = _a.byte, exports.short = _a.short, exports.int = _a.int, exports.long = _a.long, exports.ubyte = _a.ubyte, exports.ushort = _a.ushort, exports.uint = _a.uint, exports.ulong = _a.ulong; exports.double = Object.fromEntries(Object.entries(numbers.floats) .map(([name, [min, max]]) => { const converter = numeric.clone() .number(function (i) { if (i >= max) { return max; } else if (i <= min) { return min; } else { return 0; } }); converter.is = is_js_1.floats[name]; return [name, converter]; })).double; exports.bigint = new Converter_js_1.default(is_js_1.default.bigint, () => BigInt(0)) .undefined(() => BigInt(0)) .boolean((i) => BigInt(i)) .number((i) => BigInt(Math.trunc(exports.double.convert(i)))) .string(function (i) { return this.convert(Number(i)); }) .symbol(function (i) { return this.convert(exports.string.convert(i)); }) .register(is_js_1.default.null, () => BigInt(0)) .register(is_js_1.default.Array, function (i) { return this.convert(i[0]); }) .register(is_js_1.default.Date, function (i) { return this.convert(i.getTime()); }); exports.string = new Converter_js_1.default(is_js_1.default.string, String) .undefined(() => '') .boolean((i) => i ? ' ' : '') .number((i) => i === i ? String(i) : '') .bigint(String) .symbol((i) => Symbol.keyFor(i) || '') .register(is_js_1.default.null, () => '') .register(is_js_1.default.Array, function (i) { return this.convert(i[0]); }) .register(is_js_1.default.Date, function (i) { const ts = i.getTime(); if (Number.isFinite(ts)) { return i.toISOString(); } else { return new Date(0).toISOString(); } }); exports.symbol = new Converter_js_1.default(is_js_1.default.symbol, (i) => Symbol.for(exports.string.convert(i))); exports.array = new Converter_js_1.default(is_js_1.default.Array, (i) => ([i])) .undefined(() => []) .boolean((i) => [i]) .number((i) => [i]) .bigint((i) => [i]) .string((i) => [i]) .symbol((i) => [i]) .register(is_js_1.default.null, () => []) .register(is_js_1.default.Iterable, Array.from); exports.fn = new Converter_js_1.default(is_js_1.default.function, (i) => () => i); exports.date = new Converter_js_1.default(is_js_1.default.Date, () => new Date(NaN)) .undefined(() => new Date(NaN)) .boolean((i) => new Date(Number(i))) .number((i) => new Date(i)) .bigint((i) => new Date(Number(i))) .string((i) => new Date(i)) .symbol((i) => new Date(exports.string.convert(i))) .register(is_js_1.default.Array, function (i) { return this.convert(i[0]); }); exports.object = new Converter_js_1.default(is_js_1.default.object, Object); exports.map = new Converter_js_1.default(is_js_1.default.Map, () => new Map()) .register(is_js_1.default.Iterable, (input) => { const result = new Map(); for (const item of input) { if (is_js_1.default.Iterable(item)) { const [key, value] = item; result.set(key, value); } } return result; }); exports.weakmap = new Converter_js_1.default(is_js_1.default.WeakMap, () => new WeakMap()) .register(is_js_1.default.Iterable, (input) => { const result = new WeakMap(); for (const item of input) { if (is_js_1.default.Iterable(item)) { const [key, value] = item; if ((typeof key === 'object' && key !== null) || typeof key === 'function') { result.set(key, value); } } } return result; }); exports.set = new Converter_js_1.default(is_js_1.default.Set, (i) => new Set().add(i)) .undefined(() => new Set()) .register(is_js_1.default.null, () => new Set()) .register(is_js_1.default.Iterable, (i) => new Set(i)); exports.weakset = new Converter_js_1.default(is_js_1.default.WeakSet, () => new WeakSet()) .register(is_js_1.default.Iterable, (i) => { const result = new WeakSet(); for (const item of i) { if ((typeof item === 'object' && item !== null) || typeof item === 'function') { result.add(item); } } return result; }); exports.promise = new Converter_js_1.default(is_js_1.default.Promise, (i) => Promise.resolve(i)); //# sourceMappingURL=presets.cjs.map