obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
211 lines (197 loc) • 14.2 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 initCjs() {
const globalThisRecord = globalThis;
globalThisRecord['__name'] ??= name;
const originalRequire = require;
if (originalRequire && !originalRequire.__isPatched) {
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
require = Object.assign(
(id) => requirePatched(id),
originalRequire,
{
__isPatched: true
}
);
}
const newFuncs = {
__extractDefault() {
return extractDefault;
},
process() {
const browserProcess = {
browser: true,
cwd() {
return '/';
},
env: {},
platform: 'android'
};
return browserProcess;
}
};
for (const key of Object.keys(newFuncs)) {
globalThisRecord[key] ??= newFuncs[key]?.();
}
function name(obj) {
return obj;
}
function extractDefault(module) {
return module && module.__esModule && 'default' in module ? module.default : module;
}
const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
'obsidian',
'@codemirror/autocomplete',
'@codemirror/collab',
'@codemirror/commands',
'@codemirror/language',
'@codemirror/lint',
'@codemirror/search',
'@codemirror/state',
'@codemirror/text',
'@codemirror/view',
'@lezer/common',
'@lezer/lr',
'@lezer/highlight'];
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
'@codemirror/closebrackets',
'@codemirror/comment',
'@codemirror/fold',
'@codemirror/gutter',
'@codemirror/highlight',
'@codemirror/history',
'@codemirror/matchbrackets',
'@codemirror/panel',
'@codemirror/rangeset',
'@codemirror/rectangular-selection',
'@codemirror/stream-parser',
'@codemirror/tooltip'];
function requirePatched(id) {
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
return originalRequire?.(id);
}
// eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
if (globalThis?.app?.isMobile) {
if (id === 'process' || id === 'node:process') {
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
return globalThis.process;
}
} else {
const module = originalRequire?.(id);
if (module) {
return extractDefault(module);
}
}
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
return {};
}
})();
;
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 Transformer_exports = {};
__export(Transformer_exports, {
Transformer: () => Transformer
});
module.exports = __toCommonJS(Transformer_exports);
var import_ObjectUtils = require('../ObjectUtils.cjs');
class Transformer {
/**
* Gets the transformer with the given id.
*
* @param transformerId - The id of the transformer to get.
* @returns The transformer with the given id.
*/
// eslint-disable-next-line @typescript-eslint/prefer-return-this-type -- The overridden method might return a different type.
getTransformer(transformerId) {
if (transformerId === this.id) {
return this;
}
throw new Error(`Transformer with id ${transformerId} not found`);
}
/**
* Transforms the given object recursively.
*
* @param value - The value to transform.
* @returns The transformed value.
*/
transformObjectRecursively(value) {
return this.transformValueRecursively(value, "");
}
/**
* 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) {
if (this.canTransform(value, key)) {
return this.id;
}
return null;
}
/**
* Transforms the given value recursively.
*
* @param value - The value to transform.
* @param key - The key of the value to transform.
* @returns The transformed value.
*/
transformValueRecursively(value, key) {
const transformerId = this.getTransformerId(value, key);
if (transformerId) {
const transformedValue = this.transformValue(value, key);
if (transformedValue === void 0) {
return void 0;
}
const wrapper = {
__transformerId: transformerId,
transformedValue
};
return wrapper;
}
if (value === null) {
return null;
}
if (typeof value !== "object") {
return value;
}
if (Array.isArray(value)) {
return value.map((childValue, index) => this.transformValueRecursively(childValue, String(index)));
}
const transformedValueWrapper = value;
if (transformedValueWrapper.__transformerId) {
return this.getTransformer(transformedValueWrapper.__transformerId).restoreValue(transformedValueWrapper.transformedValue, key);
}
const record = {};
for (const childKey of (0, import_ObjectUtils.getAllKeys)(value)) {
const childValue = value[childKey];
const transformedChildValue = this.transformValueRecursively(childValue, childKey);
record[childKey] = transformedChildValue;
}
return record;
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
Transformer
});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1RyYW5zZm9ybWVycy9UcmFuc2Zvcm1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBBIGJhc2UgY2xhc3MgZm9yIHRyYW5zZm9ybWVycy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICcuLi9PYmplY3RVdGlscy50cyc7XG5cbmltcG9ydCB7IGdldEFsbEtleXMgfSBmcm9tICcuLi9PYmplY3RVdGlscy50cyc7XG5cbi8qKlxuICogQSB3cmFwcGVyIGZvciBhIHRyYW5zZm9ybWVkIHZhbHVlLlxuICovXG5pbnRlcmZhY2UgVHJhbnNmb3JtZWRWYWx1ZVdyYXBwZXIge1xuICAvKipcbiAgICogQW4gaWQgb2YgdGhlIHRyYW5zZm9ybWVyIHRoYXQgdHJhbnNmb3JtZWQgdGhlIHZhbHVlLlxuICAgKi9cbiAgX190cmFuc2Zvcm1lcklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdHJhbnNmb3JtZWQgdmFsdWUuXG4gICAqL1xuICB0cmFuc2Zvcm1lZFZhbHVlOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEEgYmFzZSBjbGFzcyBmb3IgdHJhbnNmb3JtZXJzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNmb3JtZXIge1xuICAvKipcbiAgICogQW4gaWQgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldCBpZCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIHRyYW5zZm9ybWVyIGNhbiB0cmFuc2Zvcm0gdGhlIGdpdmVuIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHRyYW5zZm9ybWVyIGNhbiB0cmFuc2Zvcm0gdGhlIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNhblRyYW5zZm9ybSh2YWx1ZTogdW5rbm93biwga2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0cmFuc2Zvcm1lciB3aXRoIHRoZSBnaXZlbiBpZC5cbiAgICpcbiAgICogQHBhcmFtIHRyYW5zZm9ybWVySWQgLSBUaGUgaWQgb2YgdGhlIHRyYW5zZm9ybWVyIHRvIGdldC5cbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVyIHdpdGggdGhlIGdpdmVuIGlkLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcmV0dXJuLXRoaXMtdHlwZSAtLSBUaGUgb3ZlcnJpZGRlbiBtZXRob2QgbWlnaHQgcmV0dXJuIGEgZGlmZmVyZW50IHR5cGUuXG4gIHB1YmxpYyBnZXRUcmFuc2Zvcm1lcih0cmFuc2Zvcm1lcklkOiBzdHJpbmcpOiBUcmFuc2Zvcm1lciB7XG4gICAgaWYgKHRyYW5zZm9ybWVySWQgPT09IHRoaXMuaWQpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgVHJhbnNmb3JtZXIgd2l0aCBpZCAke3RyYW5zZm9ybWVySWR9IG5vdCBmb3VuZGApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgdGhlIGdpdmVuIG9iamVjdCByZWN1cnNpdmVseS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIHRyYW5zZm9ybU9iamVjdFJlY3Vyc2l2ZWx5KHZhbHVlOiBvYmplY3QpOiBHZW5lcmljT2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1WYWx1ZVJlY3Vyc2l2ZWx5KHZhbHVlLCAnJykgYXMgR2VuZXJpY09iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRyYW5zZm9ybVZhbHVlKHZhbHVlOiB1bmtub3duLCBrZXk6IHN0cmluZyk6IHVua25vd247XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGlkIG9mIHRoZSB0cmFuc2Zvcm1lciB0aGF0IGNhbiB0cmFuc2Zvcm0gdGhlIGdpdmVuIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZ2V0IHRoZSB0cmFuc2Zvcm1lciBpZCBmb3IuXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQgdGhlIHRyYW5zZm9ybWVyIGlkIGZvci5cbiAgICogQHJldHVybnMgVGhlIGlkIG9mIHRoZSB0cmFuc2Zvcm1lciB0aGF0IGNhbiB0cmFuc2Zvcm0gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFRyYW5zZm9ybWVySWQodmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogbnVsbCB8IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY2FuVHJhbnNmb3JtKHZhbHVlLCBrZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2Zvcm1lZFZhbHVlIC0gVGhlIHZhbHVlIHRvIHJlc3RvcmUuXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZXN0b3JlLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdG9yZWQgdmFsdWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVzdG9yZVZhbHVlKHRyYW5zZm9ybWVkVmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogdW5rbm93bjtcblxuICAvKipcbiAgICogVHJhbnNmb3JtcyB0aGUgZ2l2ZW4gdmFsdWUgcmVjdXJzaXZlbHkuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB0cmFuc2Zvcm0uXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byB0cmFuc2Zvcm0uXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZS5cbiAgICovXG4gIHByaXZhdGUgdHJhbnNmb3JtVmFsdWVSZWN1cnNpdmVseSh2YWx1ZTogdW5rbm93biwga2V5OiBzdHJpbmcpOiB1bmtub3duIHtcbiAgICBjb25zdCB0cmFuc2Zvcm1lcklkID0gdGhpcy5nZXRUcmFuc2Zvcm1lcklkKHZhbHVlLCBrZXkpO1xuICAgIGlmICh0cmFuc2Zvcm1lcklkKSB7XG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy50cmFuc2Zvcm1WYWx1ZSh2YWx1ZSwga2V5KTtcbiAgICAgIGlmICh0cmFuc2Zvcm1lZFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd3JhcHBlcjogVHJhbnNmb3JtZWRWYWx1ZVdyYXBwZXIgPSB7XG4gICAgICAgIF9fdHJhbnNmb3JtZXJJZDogdHJhbnNmb3JtZXJJZCxcbiAgICAgICAgdHJhbnNmb3JtZWRWYWx1ZVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLm1hcCgoY2hpbGRWYWx1ZSwgaW5kZXgpID0+IHRoaXMudHJhbnNmb3JtVmFsdWVSZWN1cnNpdmVseShjaGlsZFZhbHVlLCBTdHJpbmcoaW5kZXgpKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNmb3JtZWRWYWx1ZVdyYXBwZXIgPSB2YWx1ZSBhcyBQYXJ0aWFsPFRyYW5zZm9ybWVkVmFsdWVXcmFwcGVyPjtcbiAgICBpZiAodHJhbnNmb3JtZWRWYWx1ZVdyYXBwZXIuX190cmFuc2Zvcm1lcklkKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2Zvcm1lcih0cmFuc2Zvcm1lZFZhbHVlV3JhcHBlci5fX3RyYW5zZm9ybWVySWQpLnJlc3RvcmVWYWx1ZSh0cmFuc2Zvcm1lZFZhbHVlV3JhcHBlci50cmFuc2Zvcm1lZFZhbHVlLCBrZXkpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY29yZDogR2VuZXJpY09iamVjdCA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBjaGlsZEtleSBvZiBnZXRBbGxLZXlzKHZhbHVlKSkge1xuICAgICAgY29uc3QgY2hpbGRWYWx1ZSA9IHZhbHVlW2NoaWxkS2V5XTtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkQ2hpbGRWYWx1ZSA9IHRoaXMudHJhbnNmb3JtVmFsdWVSZWN1cnNpdmVseShjaGlsZFZhbHVlLCBjaGlsZEtleSk7XG4gICAgICByZWNvcmRbY2hpbGRLZXldID0gdHJhbnNmb3JtZWRDaGlsZFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiByZWNvcmQ7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEseUJBQTJCO0FBb0JwQixNQUFlLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBc0J6QixlQUFlLGVBQW9DO0FBQ3hELFFBQUksa0JBQWtCLEtBQUssSUFBSTtBQUM3QixhQUFPO0FBQUEsSUFDVDtBQUVBLFVBQU0sSUFBSSxNQUFNLHVCQUF1QixhQUFhLFlBQVk7QUFBQSxFQUNsRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sMkJBQTJCLE9BQThCO0FBQzlELFdBQU8sS0FBSywwQkFBMEIsT0FBTyxFQUFFO0FBQUEsRUFDakQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBa0JVLGlCQUFpQixPQUFnQixLQUE0QjtBQUNyRSxRQUFJLEtBQUssYUFBYSxPQUFPLEdBQUcsR0FBRztBQUNqQyxhQUFPLEtBQUs7QUFBQSxJQUNkO0FBRUEsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBa0JRLDBCQUEwQixPQUFnQixLQUFzQjtBQUN0RSxVQUFNLGdCQUFnQixLQUFLLGlCQUFpQixPQUFPLEdBQUc7QUFDdEQsUUFBSSxlQUFlO0FBQ2pCLFlBQU0sbUJBQW1CLEtBQUssZUFBZSxPQUFPLEdBQUc7QUFDdkQsVUFBSSxxQkFBcUIsUUFBVztBQUNsQyxlQUFPO0FBQUEsTUFDVDtBQUVBLFlBQU0sVUFBbUM7QUFBQSxRQUN2QyxpQkFBaUI7QUFBQSxRQUNqQjtBQUFBLE1BQ0Y7QUFFQSxhQUFPO0FBQUEsSUFDVDtBQUVBLFFBQUksVUFBVSxNQUFNO0FBQ2xCLGFBQU87QUFBQSxJQUNUO0FBRUEsUUFBSSxPQUFPLFVBQVUsVUFBVTtBQUM3QixhQUFPO0FBQUEsSUFDVDtBQUVBLFFBQUksTUFBTSxRQUFRLEtBQUssR0FBRztBQUN4QixhQUFPLE1BQU0sSUFBSSxDQUFDLFlBQVksVUFBVSxLQUFLLDBCQUEwQixZQUFZLE9BQU8sS0FBSyxDQUFDLENBQUM7QUFBQSxJQUNuRztBQUVBLFVBQU0sMEJBQTBCO0FBQ2hDLFFBQUksd0JBQXdCLGlCQUFpQjtBQUMzQyxhQUFPLEtBQUssZUFBZSx3QkFBd0IsZUFBZSxFQUFFLGFBQWEsd0JBQXdCLGtCQUFrQixHQUFHO0FBQUEsSUFDaEk7QUFFQSxVQUFNLFNBQXdCLENBQUM7QUFFL0IsZUFBVyxnQkFBWSwrQkFBVyxLQUFLLEdBQUc7QUFDeEMsWUFBTSxhQUFhLE1BQU0sUUFBUTtBQUNqQyxZQUFNLHdCQUF3QixLQUFLLDBCQUEwQixZQUFZLFFBQVE7QUFDakYsYUFBTyxRQUFRLElBQUk7QUFBQSxJQUNyQjtBQUVBLFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==