Files
NapCatQQ/.pnpm-store/v3/files/15/c3809ffaaa369b62a4ab0f3a167fbde4584841123f04150338285431d4429beffa49ec5a57ac6d15fe46c02a029190d7bf80a46366a85114e7702863569be9
T
TanTan e311ca3275
Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

49 lines
930 B
Plaintext

'use strict';
var filter = require('through2-filter').obj;
var stringify = require("json-stable-stringify-without-jsonify");
var ES6Set;
if (typeof global.Set === 'function') {
ES6Set = global.Set;
} else {
ES6Set = function() {
this.keys = [];
this.has = function(val) {
return this.keys.indexOf(val) !== -1;
},
this.add = function(val) {
this.keys.push(val);
}
}
}
function prop(propName) {
return function (data) {
return data[propName];
};
}
module.exports = unique;
function unique(propName, keyStore) {
keyStore = keyStore || new ES6Set();
var keyfn = stringify;
if (typeof propName === 'string') {
keyfn = prop(propName);
} else if (typeof propName === 'function') {
keyfn = propName;
}
return filter(function (data) {
var key = keyfn(data);
if (keyStore.has(key)) {
return false;
}
keyStore.add(key);
return true;
});
}