UNPKG

@zero-scripts/core

Version:

Framework for creating presets, configurations and extensions

45 lines 1.85 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigModification = void 0; const get_value_1 = __importDefault(require("get-value")); const set_value_1 = __importDefault(require("set-value")); const types_1 = require("./types"); const extractFirstPropChain_1 = require("./utils/extractFirstPropChain"); class ConfigModification { constructor(selector, createNewValue, id) { this.createNewValue = createNewValue; this.id = id; this.path = extractFirstPropChain_1.extractFirstPropChain(String(selector)); } apply(target, options) { set_value_1.default(target, this.path, this.createNewValue(get_value_1.default(target, this.path), options)); return this; } static arrayInsertCreator(creator, position) { return (array, options) => { const element = creator(options); if (!element) { return array; } if (!array) { return [element]; } switch (position) { case types_1.InsertPos.Start: return [element, ...array]; case types_1.InsertPos.Middle: array.splice(array.length / 2, 0, element); return array.slice(0); case types_1.InsertPos.End: return [...array, element]; default: throw new Error(`[${this.constructor.name}]: Insert position '${position}' doesn't exists`); } }; } } exports.ConfigModification = ConfigModification; //# sourceMappingURL=ConfigModification.js.map