Something went wrong on our end
Select Git revision
datatable.pcss
-
Volker Schukai authoredVolker Schukai authored
transformer.mjs 21.36 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 { getLocaleOfDocument } from "../dom/locale.mjs";
import { Base } from "../types/base.mjs";
import { getGlobal, getGlobalObject } from "../types/global.mjs";
import { ID } from "../types/id.mjs";
import { isArray, isObject, isString, isPrimitive } from "../types/is.mjs";
import {
getDocumentTranslations,
Translations,
} from "../i18n/translations.mjs";
import {
validateFunction,
validateArray,
validateInteger,
validateObject,
validatePrimitive,
validateString,
validateBoolean,
} from "../types/validate.mjs";
import { clone } from "../util/clone.mjs";
import { Pathfinder } from "./pathfinder.mjs";
import { formatTimeAgo } from "../i18n/time-ago.mjs";
import { UUID } from "../types/uuid.mjs";
export { Transformer };
/**
* The transformer class is a swiss army knife for manipulating values.
*
* A simple example is the conversion of all characters to lowercase. for this purpose the command `tolower` must be used.
*
* ```js
* let t = new Transformer('tolower').run('ABC'); // ↦ abc
* ```
*
* @fragments /fragments/libraries/transformer
*
* @example /examples/libraries/transformer/simple
*
* @since 1.5.0
* @copyright schukai GmbH
* @summary The transformer class is a swiss army knife for manipulating values. especially in combination with the pipe, processing chains can be built up.
*/
class Transformer extends Base {
/**
*
* @param {string} definition
*/
constructor(definition) {
super();
this.args = disassemble(definition);
this.command = this.args.shift();
this.callbacks = new Map();
}
/**
*