fil-obj
Version:
Filter an object by keys or a function.
76 lines (74 loc) • 2.18 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// source/main.ts
var main_exports = {};
__export(main_exports, {
dropKeys: () => dropKeys,
excludeKeys: () => excludeKeys,
filter: () => filter,
includeKeys: () => includeKeys,
keepKeys: () => keepKeys,
toFiltered: () => toFiltered
});
module.exports = __toCommonJS(main_exports);
function filter(object, fn) {
for (const key in object)
if (!fn(key, object[key], object)) delete object[key];
}
function toFiltered(object, fn) {
const result = {};
for (const key in object)
if (fn(key, object[key], object))
result[key] = object[key];
return result;
}
function keepKeys(object, keys) {
const list = new Set(keys);
for (const key in object)
if (!list.has(key)) delete object[key];
}
function includeKeys(object, keys) {
const result = {};
for (const key of keys)
if (key in object)
result[key] = object[key];
return result;
}
function dropKeys(object, keys) {
const list = new Set(keys);
for (const key in object)
if (list.has(key)) delete object[key];
}
function excludeKeys(object, keys) {
const result = {};
const list = new Set(keys);
for (const key in object)
if (!list.has(key))
result[key] = object[key];
return result;
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
dropKeys,
excludeKeys,
filter,
includeKeys,
keepKeys,
toFiltered
});