monorepo-shared-assets
Version:
Shared assets used by various packages from nodemonorepo
29 lines (28 loc) • 1.52 kB
TypeScript
import isInIter from '../.utils/in-iter';
import identify from './utils/identify';
export declare namespace classify {
function singleDistribute<X, ID>(values: Iterable<X>, classifier: singleDistribute.Classifier<X, ID>, identifier?: singleDistribute.Identifier<ID>, duplicateChecker?: isInIter.Comparator<X>): singleDistribute.Classification<X, ID>;
namespace singleDistribute {
type Classification<X, ID> = ReadonlyMap<ID, Classification.Classified<X>>;
namespace Classification {
type Classified<X> = ReadonlySet<X>;
}
type Classifier<X, ID> = (x: X) => ID;
type Identifier<ID> = identify.Identifier<ID>;
}
function multiDistribute<X, ID>(values: Iterable<X>, classifier: multiDistribute.Classifier<X, ID>, identifier?: multiDistribute.Identifier<ID>, duplicateChecker?: isInIter.Comparator<X>): multiDistribute.MultipleDistribution<X, ID>;
namespace multiDistribute {
interface MultipleDistribution<X, ID> {
readonly classified: MultipleDistribution.Classified<X, ID>;
readonly unclassified: MultipleDistribution.Unclassified<X>;
}
namespace MultipleDistribution {
type Classified<X, ID> = ReadonlyMap<ID, Distribution<X>>;
type Unclassified<X> = ReadonlySet<X>;
type Distribution<X> = ReadonlySet<X>;
}
type Classifier<X, ID> = (x: X) => Iterable<ID>;
type Identifier<ID> = identify.Identifier<ID>;
}
}
export default classify;