@bemedev/types
Version:
Type definitions for Bemedev projects
75 lines (71 loc) • 2.24 kB
JavaScript
;
var utils = require('../utils.cjs');
const arrays = utils.expandFn((...values) => values, {
low: (...values) => values,
is: (value) => {
return Array.isArray(value);
},
indexes: (...array) => {
const out = array.map((_, index) => index);
return utils._unknown(out);
},
lengthOf: (...array) => {
const out = array.length;
return utils._unknown(out);
},
tupleOf: utils.expandFn((...args) => {
const out = args;
return utils._unknown(out);
}, {
number: utils.expandFn((data, times) => {
const out = Array.from({ length: times }, () => data);
return utils._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 utils._unknown(out);
},
toArray: (value) => {
const checkArray = Array.isArray(value);
const out = checkArray ? value : [value];
return utils._unknown(out);
},
reverse: (...args) => {
const out = args.slice().reverse();
return utils._unknown(out);
},
freeze: (...args) => Object.freeze(arrays.tupleOf(...args)),
extract: (array, ...extractors) => {
const out = array.filter(item => extractors.includes(item));
return utils._unknown(out);
},
exclude: (array, ...excludes) => {
const out = array.filter(item => !excludes.includes(item));
return utils._unknown(out);
},
forceCast: (value) => {
return utils._unknown(value);
},
dynamic: (value) => {
return utils._unknown(value);
},
type: Array,
});
exports.arrays = arrays;
//# sourceMappingURL=arrays.cjs.map