You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
5.3 KiB
48 lines
5.3 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.membershipForEach = exports.membershipDedupeArray = exports.membershipToArray = exports.membershipFromArray = exports.membershipClear = exports.membershipDelete = exports.membershipHas = exports.membershipAdd = exports.createMembershipSet = void 0;
|
|
function createMembershipSet() {
|
|
return new Map();
|
|
}
|
|
exports.createMembershipSet = createMembershipSet;
|
|
function membershipAdd(set, key) {
|
|
set.set(key, true);
|
|
return set;
|
|
}
|
|
exports.membershipAdd = membershipAdd;
|
|
function membershipHas(set, key) {
|
|
return set.has(key);
|
|
}
|
|
exports.membershipHas = membershipHas;
|
|
function membershipDelete(set, key) {
|
|
return set.delete(key);
|
|
}
|
|
exports.membershipDelete = membershipDelete;
|
|
function membershipClear(set) {
|
|
set.clear();
|
|
}
|
|
exports.membershipClear = membershipClear;
|
|
function membershipFromArray(items) {
|
|
const set = createMembershipSet();
|
|
for (const item of items) {
|
|
set.set(item, true);
|
|
}
|
|
return set;
|
|
}
|
|
exports.membershipFromArray = membershipFromArray;
|
|
function membershipToArray(set) {
|
|
return [...set.keys()];
|
|
}
|
|
exports.membershipToArray = membershipToArray;
|
|
/** 去重数组(替代 Array.from(new Set(...)) / [...new Set(...)]) */
|
|
function membershipDedupeArray(items) {
|
|
return membershipToArray(membershipFromArray(items));
|
|
}
|
|
exports.membershipDedupeArray = membershipDedupeArray;
|
|
function membershipForEach(set, fn) {
|
|
for (const key of set.keys()) {
|
|
fn(key);
|
|
}
|
|
}
|
|
exports.membershipForEach = membershipForEach;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtYmVyc2hpcFNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9NZW1iZXJzaGlwU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLFNBQWdCLG1CQUFtQjtJQUMvQixPQUFPLElBQUksR0FBRyxFQUFXLENBQUM7QUFDOUIsQ0FBQztBQUZELGtEQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFJLEdBQXFCLEVBQUUsR0FBTTtJQUMxRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQixPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFIRCxzQ0FHQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxHQUE2QixFQUFFLEdBQU07SUFDbEUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFGRCxzQ0FFQztBQUVELFNBQWdCLGdCQUFnQixDQUFJLEdBQXFCLEVBQUUsR0FBTTtJQUM3RCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IsZUFBZSxDQUFJLEdBQXFCO0lBQ3BELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNoQixDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBSSxLQUFrQjtJQUNyRCxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsRUFBSyxDQUFDO0lBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3RCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBTkQsa0RBTUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBSSxHQUE2QjtJQUM5RCxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRkQsOENBRUM7QUFFRCw0REFBNEQ7QUFDNUQsU0FBZ0IscUJBQXFCLENBQUksS0FBa0I7SUFDdkQsT0FBTyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFGRCxzREFFQztBQUVELFNBQWdCLGlCQUFpQixDQUFJLEdBQTZCLEVBQUUsRUFBb0I7SUFDcEYsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDMUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ1g7QUFDTCxDQUFDO0FBSkQsOENBSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICog6aG555uu56aB55So5Y6f55SfIFNldO+8iOWwj+a4uOaIj+i/kOihjOaXtuWvuemDqOWIhiBTZXQg55So5rOV5LiN56iz5a6a77yJ44CCXHJcbiAqIOeUqCBNYXA8SywgdHJ1ZT4g6KGo56S65oiQ5ZGY6ZuG5ZCI77yMQVBJIOS4jiBTZXQg5a+56b2Q44CCXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBNZW1iZXJzaGlwU2V0PEs+ID0gTWFwPEssIHRydWU+O1xyXG5leHBvcnQgdHlwZSBSZWFkb25seU1lbWJlcnNoaXBTZXQ8Sz4gPSBSZWFkb25seU1hcDxLLCB0cnVlPjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZW1iZXJzaGlwU2V0PEs+KCk6IE1lbWJlcnNoaXBTZXQ8Sz4ge1xyXG4gICAgcmV0dXJuIG5ldyBNYXA8SywgdHJ1ZT4oKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBBZGQ8Sz4oc2V0OiBNZW1iZXJzaGlwU2V0PEs+LCBrZXk6IEspOiBNZW1iZXJzaGlwU2V0PEs+IHtcclxuICAgIHNldC5zZXQoa2V5LCB0cnVlKTtcclxuICAgIHJldHVybiBzZXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwSGFzPEs+KHNldDogUmVhZG9ubHlNZW1iZXJzaGlwU2V0PEs+LCBrZXk6IEspOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzZXQuaGFzKGtleSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRGVsZXRlPEs+KHNldDogTWVtYmVyc2hpcFNldDxLPiwga2V5OiBLKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gc2V0LmRlbGV0ZShrZXkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyc2hpcENsZWFyPEs+KHNldDogTWVtYmVyc2hpcFNldDxLPik6IHZvaWQge1xyXG4gICAgc2V0LmNsZWFyKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRnJvbUFycmF5PEs+KGl0ZW1zOiBJdGVyYWJsZTxLPik6IE1lbWJlcnNoaXBTZXQ8Sz4ge1xyXG4gICAgY29uc3Qgc2V0ID0gY3JlYXRlTWVtYmVyc2hpcFNldDxLPigpO1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XHJcbiAgICAgICAgc2V0LnNldChpdGVtLCB0cnVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzZXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwVG9BcnJheTxLPihzZXQ6IFJlYWRvbmx5TWVtYmVyc2hpcFNldDxLPik6IEtbXSB7XHJcbiAgICByZXR1cm4gWy4uLnNldC5rZXlzKCldO1xyXG59XHJcblxyXG4vKiog5Y676YeN5pWw57uE77yI5pu/5LujIEFycmF5LmZyb20obmV3IFNldCguLi4pKSAvIFsuLi5uZXcgU2V0KC4uLild77yJICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRGVkdXBlQXJyYXk8Sz4oaXRlbXM6IEl0ZXJhYmxlPEs+KTogS1tdIHtcclxuICAgIHJldHVybiBtZW1iZXJzaGlwVG9BcnJheShtZW1iZXJzaGlwRnJvbUFycmF5KGl0ZW1zKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRm9yRWFjaDxLPihzZXQ6IFJlYWRvbmx5TWVtYmVyc2hpcFNldDxLPiwgZm46IChrZXk6IEspID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIHNldC5rZXlzKCkpIHtcclxuICAgICAgICBmbihrZXkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|