obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
170 lines (156 loc) • 7.82 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 Array_exports = {};
__export(Array_exports, {
filterInPlace: () => filterInPlace,
unique: () => unique,
uniqueInPlace: () => uniqueInPlace
});
module.exports = __toCommonJS(Array_exports);
function filterInPlace(arr, predicate) {
const length = arr.length;
let writeIndex = 0;
for (let readIndex = 0; readIndex < length; readIndex++) {
if (!Object.hasOwn(arr, readIndex)) {
continue;
}
const current = arr[readIndex];
if (predicate(current, readIndex, arr)) {
arr[writeIndex++] = current;
}
}
arr.length = writeIndex;
}
function unique(arr) {
const set = /* @__PURE__ */ new Set();
return arr.filter((value) => {
if (set.has(value)) {
return false;
}
set.add(value);
return true;
});
}
function uniqueInPlace(arr) {
const set = /* @__PURE__ */ new Set();
filterInPlace(arr, (value) => {
if (set.has(value)) {
return false;
}
set.add(value);
return true;
});
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
filterInPlace,
unique,
uniqueInPlace
});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL0FycmF5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEFycmF5IHV0aWxpdGllcy5cbiAqL1xuXG4vKipcbiAqIEZpbHRlciBhbiBhcnJheSBpbiBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIGZpbHRlci5cbiAqIEBwYXJhbSBwcmVkaWNhdGUgLSBUaGUgcHJlZGljYXRlIHRvIGZpbHRlciB0aGUgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJJblBsYWNlPFQ+KGFycjogVFtdLCBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gYm9vbGVhbik6IHZvaWQge1xuICBjb25zdCBsZW5ndGggPSBhcnIubGVuZ3RoO1xuICBsZXQgd3JpdGVJbmRleCA9IDA7XG4gIGZvciAobGV0IHJlYWRJbmRleCA9IDA7IHJlYWRJbmRleCA8IGxlbmd0aDsgcmVhZEluZGV4KyspIHtcbiAgICBpZiAoIU9iamVjdC5oYXNPd24oYXJyLCByZWFkSW5kZXgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50ID0gYXJyW3JlYWRJbmRleF0gYXMgVDtcbiAgICBpZiAocHJlZGljYXRlKGN1cnJlbnQsIHJlYWRJbmRleCwgYXJyKSkge1xuICAgICAgYXJyW3dyaXRlSW5kZXgrK10gPSBjdXJyZW50O1xuICAgIH1cbiAgfVxuICBhcnIubGVuZ3RoID0gd3JpdGVJbmRleDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gcmVtb3ZlIGR1cGxpY2F0ZXMgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBhcnJheSB3aXRoIGR1cGxpY2F0ZXMgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuaXF1ZTxUPihhcnI6IHJlYWRvbmx5IFRbXSk6IFRbXSB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQ8VD4oKTtcbiAgcmV0dXJuIGFyci5maWx0ZXIoKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZHVwbGljYXRlcyBmcm9tIGFuIGFycmF5IGluIHBsYWNlLlxuICpcbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gcmVtb3ZlIGR1cGxpY2F0ZXMgZnJvbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuaXF1ZUluUGxhY2UoYXJyOiB1bmtub3duW10pOiB2b2lkIHtcbiAgY29uc3Qgc2V0ID0gbmV3IFNldDx1bmtub3duPigpO1xuICBmaWx0ZXJJblBsYWNlKGFyciwgKHZhbHVlKSA9PiB7XG4gICAgaWYgKHNldC5oYXModmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNldC5hZGQodmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlPLFNBQVMsY0FBaUIsS0FBVSxXQUFtRTtBQUM1RyxRQUFNLFNBQVMsSUFBSTtBQUNuQixNQUFJLGFBQWE7QUFDakIsV0FBUyxZQUFZLEdBQUcsWUFBWSxRQUFRLGFBQWE7QUFDdkQsUUFBSSxDQUFDLE9BQU8sT0FBTyxLQUFLLFNBQVMsR0FBRztBQUNsQztBQUFBLElBQ0Y7QUFFQSxVQUFNLFVBQVUsSUFBSSxTQUFTO0FBQzdCLFFBQUksVUFBVSxTQUFTLFdBQVcsR0FBRyxHQUFHO0FBQ3RDLFVBQUksWUFBWSxJQUFJO0FBQUEsSUFDdEI7QUFBQSxFQUNGO0FBQ0EsTUFBSSxTQUFTO0FBQ2Y7QUFRTyxTQUFTLE9BQVUsS0FBd0I7QUFDaEQsUUFBTSxNQUFNLG9CQUFJLElBQU87QUFDdkIsU0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVO0FBQzNCLFFBQUksSUFBSSxJQUFJLEtBQUssR0FBRztBQUNsQixhQUFPO0FBQUEsSUFDVDtBQUNBLFFBQUksSUFBSSxLQUFLO0FBQ2IsV0FBTztBQUFBLEVBQ1QsQ0FBQztBQUNIO0FBT08sU0FBUyxjQUFjLEtBQXNCO0FBQ2xELFFBQU0sTUFBTSxvQkFBSSxJQUFhO0FBQzdCLGdCQUFjLEtBQUssQ0FBQyxVQUFVO0FBQzVCLFFBQUksSUFBSSxJQUFJLEtBQUssR0FBRztBQUNsQixhQUFPO0FBQUEsSUFDVDtBQUNBLFFBQUksSUFBSSxLQUFLO0FBQ2IsV0FBTztBQUFBLEVBQ1QsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=