monorepo-shared-assets
Version:
Shared assets used by various packages from nodemonorepo
28 lines (27 loc) • 1.33 kB
TypeScript
import * as types from '../../../.types';
import isInIter from '../.utils/in-iter';
export declare namespace classify {
function singleDistribute<X>(values: Iterable<X>, classifier: singleDistribute.Classifier<X>, duplicationChecker?: isInIter.Comparator<X>): singleDistribute.Classification<X>;
namespace singleDistribute {
type Classification<X> = Readonly<Dict<Classification.Array<X>>>;
namespace Classification {
type Array<X> = ReadonlyArray<X>;
}
type Classifier<X> = (x: X) => string;
}
function multiDistribute<X>(values: Iterable<X>, classifier: multiDistribute.Classifier<X>, duplicationChecker?: isInIter.Comparator<X>): multiDistribute.MultipleDistribution<X>;
namespace multiDistribute {
interface MultipleDistribution<X> {
readonly classified: MultipleDistribution.Classified<X>;
readonly unclassified: MultipleDistribution.Unclassified<X>;
}
namespace MultipleDistribution {
type Classified<X> = Readonly<Dict<Distribution<X>>>;
type Unclassified<X> = ReadonlyArray<X>;
type Distribution<X> = ReadonlyArray<X>;
}
type Classifier<X> = (x: X) => ReadonlyArray<string>;
}
type Dict<X> = Readonly<types.Dict.StrKey<X>>;
}
export default classify;