obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
112 lines (108 loc) • 9.21 kB
JavaScript
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
(function initEsm() {
if (globalThis.process) {
return;
}
const browserProcess = {
browser: true,
cwd() {
return '/';
},
env: {},
platform: 'android'
};
globalThis.process = browserProcess;
})();
import { throwExpression } from "../Error.mjs";
import { Transformer } from "./Transformer.mjs";
class GroupTransformer extends Transformer {
/**
* Transformers to combine.
*
* @param transformers - The transformers to combine.
*/
constructor(transformers) {
super();
this.transformers = transformers;
}
/**
* An id of the transformer.
*
* @returns `group`.
*/
get id() {
return "group";
}
/**
* Determines if the value can be transformed by any of the transformers.
*
* @param value - The value to check.
* @param key - The key of the value to check.
* @returns A boolean indicating if the value can be transformed.
*/
canTransform(value, key) {
return this.getFirstTransformerThatCanTransform(value, key) !== null;
}
/**
* Gets the transformer with the given id.
*
* @param transformerId - The id of the transformer to get.
* @returns The transformer with the given id.
*/
getTransformer(transformerId) {
return this.transformers.find((t) => t.id === transformerId) ?? throwExpression(`No transformer with id ${transformerId} found`);
}
/**
* Transforms the value using the first transformer that can transform it.
*
* @param value - The value to transform.
* @param key - The key of the value to transform.
* @returns The transformed value.
*/
transformValue(value, key) {
const transformer = this.getFirstTransformerThatCanTransform(value, key);
if (transformer === null) {
throw new Error("No transformer can transform the value");
}
return transformer.transformValue(value, key);
}
/**
* Gets the id of the transformer that can transform the given value.
*
* @param value - The value to get the transformer id for.
* @param key - The key of the value to get the transformer id for.
* @returns The id of the transformer that can transform the given value.
*/
getTransformerId(value, key) {
const transformer = this.getFirstTransformerThatCanTransform(value, key);
if (transformer === null) {
return null;
}
return transformer.id;
}
/**
* This transformer does not support restoring values.
*
* @throws
*/
restoreValue() {
throw new Error("GroupTransformer does not support restoring values");
}
/**
* Gets the first transformer that can transform the given value.
*
* @param value - The value to get the first transformer for.
* @param key - The key of the value to get the first transformer for.
* @returns The first transformer that can transform the given value.
*/
getFirstTransformerThatCanTransform(value, key) {
return this.transformers.find((t) => t.canTransform(value, key)) ?? null;
}
}
export {
GroupTransformer
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1RyYW5zZm9ybWVycy9Hcm91cFRyYW5zZm9ybWVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEEgdHJhbnNmb3JtZXIgdGhhdCBjb21iaW5lcyBtdWx0aXBsZSB0cmFuc2Zvcm1lcnMuXG4gKi9cblxuaW1wb3J0IHsgdGhyb3dFeHByZXNzaW9uIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuaW1wb3J0IHsgVHJhbnNmb3JtZXIgfSBmcm9tICcuL1RyYW5zZm9ybWVyLnRzJztcblxuLyoqXG4gKiBBIHRyYW5zZm9ybWVyIHRoYXQgY29tYmluZXMgbXVsdGlwbGUgdHJhbnNmb3JtZXJzLlxuICovXG5leHBvcnQgY2xhc3MgR3JvdXBUcmFuc2Zvcm1lciBleHRlbmRzIFRyYW5zZm9ybWVyIHtcbiAgLyoqXG4gICAqIEFuIGlkIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICpcbiAgICogQHJldHVybnMgYGdyb3VwYC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2dyb3VwJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1lcnMgdG8gY29tYmluZS5cbiAgICpcbiAgICogQHBhcmFtIHRyYW5zZm9ybWVycyAtIFRoZSB0cmFuc2Zvcm1lcnMgdG8gY29tYmluZS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRyYW5zZm9ybWVyczogVHJhbnNmb3JtZXJbXSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgdmFsdWUgY2FuIGJlIHRyYW5zZm9ybWVkIGJ5IGFueSBvZiB0aGUgdHJhbnNmb3JtZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHZhbHVlIGNhbiBiZSB0cmFuc2Zvcm1lZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBjYW5UcmFuc2Zvcm0odmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Rmlyc3RUcmFuc2Zvcm1lclRoYXRDYW5UcmFuc2Zvcm0odmFsdWUsIGtleSkgIT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdHJhbnNmb3JtZXIgd2l0aCB0aGUgZ2l2ZW4gaWQuXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2Zvcm1lcklkIC0gVGhlIGlkIG9mIHRoZSB0cmFuc2Zvcm1lciB0byBnZXQuXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lciB3aXRoIHRoZSBnaXZlbiBpZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXRUcmFuc2Zvcm1lcih0cmFuc2Zvcm1lcklkOiBzdHJpbmcpOiBUcmFuc2Zvcm1lciB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtZXJzLmZpbmQoKHQpID0+IHQuaWQgPT09IHRyYW5zZm9ybWVySWQpID8/IHRocm93RXhwcmVzc2lvbihgTm8gdHJhbnNmb3JtZXIgd2l0aCBpZCAke3RyYW5zZm9ybWVySWR9IGZvdW5kYCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtcyB0aGUgdmFsdWUgdXNpbmcgdGhlIGZpcnN0IHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSBpdC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHRyYW5zZm9ybVZhbHVlKHZhbHVlOiB1bmtub3duLCBrZXk6IHN0cmluZyk6IHVua25vd24ge1xuICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gdGhpcy5nZXRGaXJzdFRyYW5zZm9ybWVyVGhhdENhblRyYW5zZm9ybSh2YWx1ZSwga2V5KTtcbiAgICBpZiAodHJhbnNmb3JtZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdHJhbnNmb3JtZXIgY2FuIHRyYW5zZm9ybSB0aGUgdmFsdWUnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNmb3JtZXIudHJhbnNmb3JtVmFsdWUodmFsdWUsIGtleSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaWQgb2YgdGhlIHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBnZXQgdGhlIHRyYW5zZm9ybWVyIGlkIGZvci5cbiAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldCB0aGUgdHJhbnNmb3JtZXIgaWQgZm9yLlxuICAgKiBAcmV0dXJucyBUaGUgaWQgb2YgdGhlIHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0VHJhbnNmb3JtZXJJZCh2YWx1ZTogdW5rbm93biwga2V5OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgICBjb25zdCB0cmFuc2Zvcm1lciA9IHRoaXMuZ2V0Rmlyc3RUcmFuc2Zvcm1lclRoYXRDYW5UcmFuc2Zvcm0odmFsdWUsIGtleSk7XG4gICAgaWYgKHRyYW5zZm9ybWVyID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNmb3JtZXIuaWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyB0cmFuc2Zvcm1lciBkb2VzIG5vdCBzdXBwb3J0IHJlc3RvcmluZyB2YWx1ZXMuXG4gICAqXG4gICAqIEB0aHJvd3NcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZXN0b3JlVmFsdWUoKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBFcnJvcignR3JvdXBUcmFuc2Zvcm1lciBkb2VzIG5vdCBzdXBwb3J0IHJlc3RvcmluZyB2YWx1ZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaXJzdCB0cmFuc2Zvcm1lciB0aGF0IGNhbiB0cmFuc2Zvcm0gdGhlIGdpdmVuIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZ2V0IHRoZSBmaXJzdCB0cmFuc2Zvcm1lciBmb3IuXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQgdGhlIGZpcnN0IHRyYW5zZm9ybWVyIGZvci5cbiAgICogQHJldHVybnMgVGhlIGZpcnN0IHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqL1xuICBwcml2YXRlIGdldEZpcnN0VHJhbnNmb3JtZXJUaGF0Q2FuVHJhbnNmb3JtKHZhbHVlOiB1bmtub3duLCBrZXk6IHN0cmluZyk6IG51bGwgfCBUcmFuc2Zvcm1lciB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtZXJzLmZpbmQoKHQpID0+IHQuY2FuVHJhbnNmb3JtKHZhbHVlLCBrZXkpKSA/PyBudWxsO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLG1CQUFtQjtBQUtyQixNQUFNLHlCQUF5QixZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZXpDLFlBQTZCLGNBQTZCO0FBQy9ELFVBQU07QUFENEI7QUFBQSxFQUVwQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVhBLElBQW9CLEtBQWE7QUFDL0IsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBa0JnQixhQUFhLE9BQWdCLEtBQXNCO0FBQ2pFLFdBQU8sS0FBSyxvQ0FBb0MsT0FBTyxHQUFHLE1BQU07QUFBQSxFQUNsRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLGVBQWUsZUFBb0M7QUFDakUsV0FBTyxLQUFLLGFBQWEsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLGFBQWEsS0FBSyxnQkFBZ0IsMEJBQTBCLGFBQWEsUUFBUTtBQUFBLEVBQ2pJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNnQixlQUFlLE9BQWdCLEtBQXNCO0FBQ25FLFVBQU0sY0FBYyxLQUFLLG9DQUFvQyxPQUFPLEdBQUc7QUFDdkUsUUFBSSxnQkFBZ0IsTUFBTTtBQUN4QixZQUFNLElBQUksTUFBTSx3Q0FBd0M7QUFBQSxJQUMxRDtBQUVBLFdBQU8sWUFBWSxlQUFlLE9BQU8sR0FBRztBQUFBLEVBQzlDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNtQixpQkFBaUIsT0FBZ0IsS0FBNEI7QUFDOUUsVUFBTSxjQUFjLEtBQUssb0NBQW9DLE9BQU8sR0FBRztBQUN2RSxRQUFJLGdCQUFnQixNQUFNO0FBQ3hCLGFBQU87QUFBQSxJQUNUO0FBRUEsV0FBTyxZQUFZO0FBQUEsRUFDckI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPbUIsZUFBc0I7QUFDdkMsVUFBTSxJQUFJLE1BQU0sb0RBQW9EO0FBQUEsRUFDdEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU1Esb0NBQW9DLE9BQWdCLEtBQWlDO0FBQzNGLFdBQU8sS0FBSyxhQUFhLEtBQUssQ0FBQyxNQUFNLEVBQUUsYUFBYSxPQUFPLEdBQUcsQ0FBQyxLQUFLO0FBQUEsRUFDdEU7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K