@bemedev/types
Version:
Type definitions for Bemedev projects
1 lines • 5.75 kB
Source Map (JSON)
{"version":3,"file":"arrays.cjs","sources":["../../src/functions/arrays.ts"],"sourcesContent":["import { _unknown, expandFn } from '~utils';\nimport type {\n AnyArray,\n Checker,\n Checker2,\n ExcludeArray,\n ExtractArray,\n IndexesOfArray,\n ReverseArray,\n RuA,\n ToArray,\n TupleOf,\n UnionToTuple,\n} from '../types/types';\n\nexport const arrays = expandFn(<T>(...values: T[]) => values, {\n low: <T extends unknown[]>(...values: T) => values,\n\n is: <T>(value: unknown): value is Array<T> => {\n return Array.isArray(value);\n },\n\n indexes: <const T extends RuA>(...array: T) => {\n const out = array.map((_, index) => index);\n return _unknown<UnionToTuple<IndexesOfArray<T>>>(out);\n },\n\n lengthOf: <T extends RuA>(...array: T) => {\n const out = array.length;\n return _unknown<T['length']>(out);\n },\n\n tupleOf: expandFn(\n <const T extends RuA>(...args: T) => {\n const out = args;\n return _unknown<T>(out);\n },\n {\n number: expandFn(\n <const T, N extends number>(data: T, times: N) => {\n const out = Array.from({ length: times }, () => data);\n return _unknown<TupleOf<T, N>>(out);\n },\n {\n is: <T>(fn: Checker2<T>) => {\n const _out = <L extends number>(\n value: unknown,\n length: L,\n ): value is TupleOf<T, L> => {\n const isArray = Array.isArray(value);\n const out =\n isArray && value.length === length && value.every(fn);\n return out;\n };\n\n return _out;\n },\n },\n ),\n\n is: <const T>(fn: Checker<T>) => {\n const _out = (value: unknown): value is Array<T> => {\n return Array.isArray(value) && value.every(fn);\n };\n\n return _out;\n },\n },\n ),\n\n reduce: <T>(value: T | readonly [T] | [T]) => {\n const out = Array.isArray(value) ? value[0] : value;\n return _unknown<T>(out);\n },\n\n toArray: <T>(value: T) => {\n const checkArray = Array.isArray(value);\n const out = checkArray ? value : [value];\n\n return _unknown<ToArray<T>>(out);\n },\n\n reverse: <T extends RuA>(...args: T) => {\n const out = args.slice().reverse();\n return _unknown<ReverseArray<T>>(out);\n },\n\n freeze: <const T extends any[]>(...args: T) =>\n Object.freeze(arrays.tupleOf(...args)),\n\n extract: <const T extends any[], const Ex extends T[number][]>(\n array: T,\n ...extractors: Ex\n ) => {\n const out = array.filter(item => extractors.includes(item));\n return _unknown<ExtractArray<T, Ex[number]>>(out);\n },\n\n exclude: <const T extends any[], const Ex extends T[number][]>(\n array: T,\n ...excludes: Ex\n ) => {\n const out = array.filter(item => !excludes.includes(item));\n return _unknown<ExcludeArray<T, Ex[number]>>(out);\n },\n\n forceCast: (value: unknown) => {\n return _unknown<unknown[]>(value);\n },\n\n dynamic: <T extends AnyArray>(value: T) => {\n return _unknown<T>(value);\n },\n\n type: Array,\n});\n"],"names":["expandFn","_unknown"],"mappings":"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"}