UNPKG

@bemedev/types

Version:

Type definitions for Bemedev projects

73 lines (70 loc) 2.15 kB
import { expandFn, _unknown } from '../utils.js'; const arrays = expandFn((...values) => values, { low: (...values) => values, is: (value) => { return Array.isArray(value); }, indexes: (...array) => { const out = array.map((_, index) => index); return _unknown(out); }, lengthOf: (...array) => { const out = array.length; return _unknown(out); }, tupleOf: expandFn((...args) => { const out = args; return _unknown(out); }, { number: expandFn((data, times) => { const out = Array.from({ length: times }, () => data); return _unknown(out); }, { is: (fn) => { const _out = (value, length) => { const isArray = Array.isArray(value); const out = isArray && value.length === length && value.every(fn); return out; }; return _out; }, }), is: (fn) => { const _out = (value) => { return Array.isArray(value) && value.every(fn); }; return _out; }, }), reduce: (value) => { const out = Array.isArray(value) ? value[0] : value; return _unknown(out); }, toArray: (value) => { const checkArray = Array.isArray(value); const out = checkArray ? value : [value]; return _unknown(out); }, reverse: (...args) => { const out = args.slice().reverse(); return _unknown(out); }, freeze: (...args) => Object.freeze(arrays.tupleOf(...args)), extract: (array, ...extractors) => { const out = array.filter(item => extractors.includes(item)); return _unknown(out); }, exclude: (array, ...excludes) => { const out = array.filter(item => !excludes.includes(item)); return _unknown(out); }, forceCast: (value) => { return _unknown(value); }, dynamic: (value) => { return _unknown(value); }, type: Array, }); export { arrays }; //# sourceMappingURL=arrays.js.map