Skip to content
Snippets Groups Projects
Select Git revision
  • dcbeb5721d64603f8d7283fd93db8446bfc75ef6
  • master default protected
  • 1.31
  • 4.38.7
  • 4.38.6
  • 4.38.5
  • 4.38.4
  • 4.38.3
  • 4.38.2
  • 4.38.1
  • 4.38.0
  • 4.37.2
  • 4.37.1
  • 4.37.0
  • 4.36.0
  • 4.35.0
  • 4.34.1
  • 4.34.0
  • 4.33.1
  • 4.33.0
  • 4.32.2
  • 4.32.1
  • 4.32.0
23 results

transformer.mjs

Blame
  • pathfinder.mjs 10.42 KiB
    /**
     * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
     * Node module: @schukai/monster
     *
     * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
     * The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
     *
     * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
     * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
     * For more information about purchasing a commercial license, please contact schukai GmbH.
     *
     * SPDX-License-Identifier: AGPL-3.0
     */
    
    import { Base } from "../types/base.mjs";
    import {
    	isArray,
    	isInteger,
    	isObject,
    	isPrimitive,
    	isString,
    } from "../types/is.mjs";
    import { Stack } from "../types/stack.mjs";
    import {
    	validateInteger,
    	validateBoolean,
    	validateString,
    } from "../types/validate.mjs";
    
    export { Pathfinder, DELIMITER, WILDCARD };
    
    /**
     * path separator
     *
     * @private
     * @type {string}
     */
    const DELIMITER = ".";
    
    /**
     * @private
     * @type {string}
     */
    const WILDCARD = "*";
    
    /**
     * Pathfinder is a class to find a path to an object.
     *
     * With the help of the pathfinder, values can be read and written from an object construct.
     *
     * ```
     * new Pathfinder({
     * a: {
     *     b: {
     *         f: [
     *             {
     *                 g: false,
     *             }
     *         ],
     *     }
     * }
     * }).getVia("a.b.f.0.g"); // ↦ false
     * ```
     *
     * if a value is not present or has the wrong type, a corresponding exception is thrown.
     *
     * ```
     * new Pathfinder({}).getVia("a.b.f.0.g"); // ↦ Error
     * ```
     *