monorepo-shared-assets
Version:
Shared assets used by various packages from nodemonorepo
33 lines (32 loc) • 1.46 kB
TypeScript
import * as types from '../../.types';
export declare function partition<X>(iterable: Iterable<X>, classifiers: partition.Classifier.Iter<X>): partition.Partition<X>;
export declare namespace partition {
function fromClassifierList<X>(values: Iterable<X>, classifiers: Classifier.Iter<X>): Partition<X>;
namespace fromClassifierList {
function iterable<X>(values: Iterable<X>, classifiers: Classifier.Iter<X>): Partition<X>;
function array<X>(list: ReadonlyArray<X>, classifiers: Classifier.List<X>): Partition.Array<X>;
}
function fromClassifierDict<X>(list: Iterable<X>, classifiers: Classifier.Dict<X>): Partition<X>;
type Partition<X> = Partition.Set<X>;
namespace Partition {
interface Set<X> {
readonly classified: Dict<ReadonlySet<X>>;
readonly untouched: ReadonlySet<X>;
}
interface Array<X> {
readonly classified: Dict<ReadonlyArray<X>>;
readonly untouched: ReadonlyArray<X>;
}
}
type Classifier<X> = [Classifier.Target, Classifier.Func<X>];
namespace Classifier {
type Iter<X> = Iterable<Classifier<X>>;
type Set<X> = ReadonlySet<Classifier<X>>;
type List<X> = ReadonlyArray<Classifier<X>>;
type Dict<X> = partition.Dict<Func<X>>;
type Target = string;
type Func<X> = (x: X) => boolean;
}
type Dict<X> = Readonly<types.Dict.StrKey<X>>;
}
export default partition;