alwz
Version:
Extendable library for typecasting
156 lines • 4.95 kB
TypeScript
import Converter from './models/Converter.js';
/**
* @namespace presets
*/
/**
* @memberof presets
* @example
* boolean.convert('abc'); // true
* boolean.convert(Symbol.for('')); // false
* boolean.convert([]); // false
* boolean.convert([0]); // false
* boolean.convert([false, true]); // false
* boolean.convert([123]); // true
*/
export declare const boolean: Converter<boolean>;
/**
* @memberof presets
* @example
* number.convert(Infinity); // Infinity
* number.convert('42'); // 42
* number.convert('abc'); // NaN
* number.convert(Symbol.for('42')); // 42
* number.convert(new Date('1970-01-01T00:00:00.042Z')); // 42
* number.convert(['42']); // 42
* number.convert([ [ [ 42 ] ] ]); // 42
* number.convert(new Date('1970-01-01T00:00:00.999Z')); // 999
*/
export declare const number: Converter<number>;
/**
* @memberof presets
* @name unsigned
* @description cast to ubyte, ushort (2 bytes), uint (4 bytes) or ulong (8 bytes)
* @example
* ubyte.convert(-7); // 0
* ubyte.convert('a'); // 0
* ubyte.convert(Infinity); // 255
* ubyte.convert(-Infinity); // 0
* ushort.convert(Infinity); // 65535
* ushort.convert(-Infinity); // 0
* uint.convert(Infinity); // 4294967295
* uint.convert(-Infinity); // 0
* ulong.convert(Infinity); // MAX_SAFE_INTEGER
* ulong.convert(-Infinity); // 0
*/
export declare const byte: Converter<number>, short: Converter<number>, int: Converter<number>, long: Converter<number>, ubyte: Converter<number>, ushort: Converter<number>, uint: Converter<number>, ulong: Converter<number>;
/**
* @memberof presets
* @example
* double.convert('42.5'); // 42.5
* double.convert(Infinity); // Number.MAX_VALUE
* double.convert(NaN); // 0
*/
export declare const double: Converter<number>;
/**
* @memberof presets
* @example
* bigint.convert(42.5); // 42n
* bigint.convert('42'); // 42n
* bigint.convert('42.5'); // 0n
* bigint.convert(Symbol.for('42')); // 42n
* bigint.convert(new Date('1970-01-01T00:00:00.999Z')); // 999n
*/
export declare const bigint: Converter<bigint>;
/**
* @memberof presets
* @example
* string.convert(); // ''
* string.convert(null); // ''
* string.convert(false); // ''
* string.convert(true); // ' '
* string.convert(42.5); // '42.5'
* string.convert([1, 2, 3]); // '1'
* string.convert(Symbol.for('42')); // '42'
* string.convert(new Date('1970-01-01T00:00:00.999Z')); // '1970-01-01T00:00:00.999Z'
*/
export declare const string: Converter<string>;
/**
* @memberof presets
* @example
* symbol.convert(false); // Symbol('')
* symbol.convert(42.5); // Symbol('42.5')
* symbol.convert('42.5'); // Symbol('42.5')
* symbol.convert([1.5, 2, 3]); // Symbol('1.5')
* symbol.convert(new Date('1970-01-01T00:00:00.999Z')); // Symbol('1970-01-01T00:00:00.999Z')
*/
export declare const symbol: Converter<symbol>;
/**
* @memberof presets
* @example
* array.convert(); // []
* array.convert(null); // []
* array.convert(false); // [false]
* array.convert(123); // [123]
* array.convert('1,2,3'); // ['1,2,3']
* array.convert(new Set([1, 2, 3])); // [1, 2, 3]
* array.convert(new Map([[1, 2], [3, 4], [5, 6]])); // [[1, 2], [3, 4], [5, 6]]
*/
export declare const array: Converter<any[]>;
/**
* @memberof presets
* @example
* fn.convert((a, b) => a + b); // (a, b) => a + b
* fn.convert(123); // () => 123
*/
export declare const fn: Converter<Function>;
/**
* @memberof presets
* @example
* date.convert(111); // Date('1970-01-01T00:00:00.111Z')
* date.convert([222, 333]); // Date('1970-01-01T00:00:00.222Z')
* date.convert('abc'); // Date(NaN)
*/
export declare const date: Converter<Date>;
/**
* @memberof presets
* @example
* object.convert(undefined); // {}
* object.convert(null); // {}
* object.convert(false); // Boolean { false }
* object.convert(1); // Number { 1 }
* object.convert('2'); // String { 2 }
* object.convert([1, '2', 3n]); // [1, '2', 3n]
*/
export declare const object: Converter<object>;
/**
* @memberof presets
* @example
* map.convert([ [true, 1], 2, '3']); // Map { [true, 1] }
*/
export declare const map: Converter<Map<unknown, unknown>>;
/**
* @memberof presets
* @example
* weakmap.convert([ [Boolean, 'bool'], [Number, 'num'], [String, 'str'], [true, 1], 2, '3']); // WeakMap { [Boolean, 'bool'], [Number, 'num'], [String, 'str'] }
*/
export declare const weakmap: Converter<WeakMap<any, unknown>>;
/**
* @memberof presets
* @example
* set.convert([1, '2', 3]); // Set {1, '2', 3}
*/
export declare const set: Converter<Set<unknown>>;
/**
* @memberof presets
* @example
* weakset.convert([Boolean, Number, String, true, 2, '3']); // WeakSet { Boolean, Number, String }
*/
export declare const weakset: Converter<WeakSet<any>>;
/**
* @memberof presets
* @example
* promise.convert(Promise.resolve(1)); // Promise { 1 }
* promise.convert(42); // Promise { 42 }
*/
export declare const promise: Converter<Promise<any>>;
//# sourceMappingURL=presets.d.ts.map