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.
53 lines
6.1 KiB
53 lines
6.1 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 bindMembershipIterator(set) {
|
|
// Map 默认 for-of 迭代 [key,value];覆盖为仅 yield key(与 Set 一致)
|
|
set[Symbol.iterator] = () => set.keys();
|
|
return set;
|
|
}
|
|
function createMembershipSet() {
|
|
return bindMembershipIterator(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];
|
|
}
|
|
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) {
|
|
fn(key);
|
|
}
|
|
}
|
|
exports.membershipForEach = membershipForEach;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtYmVyc2hpcFNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9NZW1iZXJzaGlwU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLFNBQVMsc0JBQXNCLENBQUksR0FBaUI7SUFDaEQsd0RBQXdEO0lBQ3ZELEdBQXlELENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvRixPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFnQixtQkFBbUI7SUFDL0IsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLEdBQUcsRUFBVyxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUZELGtEQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFJLEdBQXFCLEVBQUUsR0FBTTtJQUMxRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQixPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFIRCxzQ0FHQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxHQUE2QixFQUFFLEdBQU07SUFDbEUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFGRCxzQ0FFQztBQUVELFNBQWdCLGdCQUFnQixDQUFJLEdBQXFCLEVBQUUsR0FBTTtJQUM3RCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IsZUFBZSxDQUFJLEdBQXFCO0lBQ3BELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNoQixDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBSSxLQUFrQjtJQUNyRCxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsRUFBSyxDQUFDO0lBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3RCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBTkQsa0RBTUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBSSxHQUE2QjtJQUM5RCxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRkQsOENBRUM7QUFFRCw0REFBNEQ7QUFDNUQsU0FBZ0IscUJBQXFCLENBQUksS0FBa0I7SUFDdkQsT0FBTyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFGRCxzREFFQztBQUVELFNBQWdCLGlCQUFpQixDQUFJLEdBQTZCLEVBQUUsRUFBb0I7SUFDcEYsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUU7UUFDbkIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ1g7QUFDTCxDQUFDO0FBSkQsOENBSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICog6aG555uu56aB55So5Y6f55SfIFNldO+8iOWwj+a4uOaIj+i/kOihjOaXtuWvuemDqOWIhiBTZXQg55So5rOV5LiN56iz5a6a77yJ44CCXHJcbiAqIOeUqCBNYXA8SywgdHJ1ZT4g6KGo56S65oiQ5ZGY6ZuG5ZCI77yb6L+t5Luj5pe2IHlpZWxkIGtlee+8iOS4jiBTZXQg5LiA6Ie077yM6ICM6Z2eIE1hcCDnmoQgW2tleSwgdmFsdWVd77yJ44CCXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBNZW1iZXJzaGlwU2V0PEs+ID0gTWFwPEssIHRydWU+O1xyXG5leHBvcnQgdHlwZSBSZWFkb25seU1lbWJlcnNoaXBTZXQ8Sz4gPSBSZWFkb25seU1hcDxLLCB0cnVlPjtcclxuXHJcbmZ1bmN0aW9uIGJpbmRNZW1iZXJzaGlwSXRlcmF0b3I8Sz4oc2V0OiBNYXA8SywgdHJ1ZT4pOiBNZW1iZXJzaGlwU2V0PEs+IHtcclxuICAgIC8vIE1hcCDpu5jorqQgZm9yLW9mIOi/reS7oyBba2V5LHZhbHVlXe+8m+imhuebluS4uuS7hSB5aWVsZCBrZXnvvIjkuI4gU2V0IOS4gOiHtO+8iVxyXG4gICAgKHNldCBhcyB7IFtTeW1ib2wuaXRlcmF0b3JdPzogKCkgPT4gSXRlcmFibGVJdGVyYXRvcjxLPiB9KVtTeW1ib2wuaXRlcmF0b3JdID0gKCkgPT4gc2V0LmtleXMoKTtcclxuICAgIHJldHVybiBzZXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZW1iZXJzaGlwU2V0PEs+KCk6IE1lbWJlcnNoaXBTZXQ8Sz4ge1xyXG4gICAgcmV0dXJuIGJpbmRNZW1iZXJzaGlwSXRlcmF0b3IobmV3IE1hcDxLLCB0cnVlPigpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBBZGQ8Sz4oc2V0OiBNZW1iZXJzaGlwU2V0PEs+LCBrZXk6IEspOiBNZW1iZXJzaGlwU2V0PEs+IHtcclxuICAgIHNldC5zZXQoa2V5LCB0cnVlKTtcclxuICAgIHJldHVybiBzZXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwSGFzPEs+KHNldDogUmVhZG9ubHlNZW1iZXJzaGlwU2V0PEs+LCBrZXk6IEspOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzZXQuaGFzKGtleSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRGVsZXRlPEs+KHNldDogTWVtYmVyc2hpcFNldDxLPiwga2V5OiBLKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gc2V0LmRlbGV0ZShrZXkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyc2hpcENsZWFyPEs+KHNldDogTWVtYmVyc2hpcFNldDxLPik6IHZvaWQge1xyXG4gICAgc2V0LmNsZWFyKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwRnJvbUFycmF5PEs+KGl0ZW1zOiBJdGVyYWJsZTxLPik6IE1lbWJlcnNoaXBTZXQ8Sz4ge1xyXG4gICAgY29uc3Qgc2V0ID0gY3JlYXRlTWVtYmVyc2hpcFNldDxLPigpO1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XHJcbiAgICAgICAgc2V0LnNldChpdGVtLCB0cnVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzZXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwVG9BcnJheTxLPihzZXQ6IFJlYWRvbmx5TWVtYmVyc2hpcFNldDxLPik6IEtbXSB7XHJcbiAgICByZXR1cm4gWy4uLnNldF07XHJcbn1cclxuXHJcbi8qKiDljrvph43mlbDnu4TvvIjmm7/ku6MgQXJyYXkuZnJvbShuZXcgU2V0KC4uLikpIC8gWy4uLm5ldyBTZXQoLi4uKV3vvIkgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBEZWR1cGVBcnJheTxLPihpdGVtczogSXRlcmFibGU8Sz4pOiBLW10ge1xyXG4gICAgcmV0dXJuIG1lbWJlcnNoaXBUb0FycmF5KG1lbWJlcnNoaXBGcm9tQXJyYXkoaXRlbXMpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBGb3JFYWNoPEs+KHNldDogUmVhZG9ubHlNZW1iZXJzaGlwU2V0PEs+LCBmbjogKGtleTogSykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2Ygc2V0KSB7XHJcbiAgICAgICAgZm4oa2V5KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|