UNPKG

lfs-akairo

Version:

LFS Akairo is a framework designed to simplify the creation of InSim applications.

77 lines (76 loc) 2.17 kB
"use strict"; 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); var data_exports = {}; __export(data_exports, { merge: () => merge, objectify: () => objectify, remove: () => remove, retrieve: () => retrieve }); module.exports = __toCommonJS(data_exports); function objectify(path, value) { const keys = path.split("."); const result = {}; let current = result; keys.forEach((key, index) => { if (index === keys.length - 1) { current[key] = value; } else { current[key] = {}; current = current[key]; } }); return result; } function merge(target, source) { for (const key in source) { if (source[key] instanceof Object && key in target) { Object.assign(source[key], merge(target[key], source[key])); } } return Object.assign(target || {}, source); } function retrieve(path, obj) { return path.split(".").reduce( (o, key) => o && o[key] !== "undefined" ? o[key] : void 0, obj ); } function remove(obj, keys) { if (keys.length === 0) { return obj; } const [first, ...rest] = keys; if (rest.length === 0) { delete obj[first]; } else if (obj[first] !== void 0) { obj[first] = remove(obj[first], rest); if (Object.keys(obj[first]).length === 0) { delete obj[first]; } } return obj; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { merge, objectify, remove, retrieve });