obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
175 lines (161 loc) • 9.46 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 Logger_exports = {};
__export(Logger_exports, {
invokeAsyncAndLog: () => invokeAsyncAndLog
});
module.exports = __toCommonJS(Logger_exports);
var import_Debug = require('../Debug.cjs');
var import_Error = require('../Error.cjs');
async function invokeAsyncAndLog(title, fn, abortSignal, stackTrace) {
abortSignal.throwIfAborted();
const invokeAsyncAndLogDebugger = (0, import_Debug.getLibDebugger)("Logger:invokeAsyncAndLog");
const timestampStart = performance.now();
stackTrace ??= (0, import_Error.getStackTrace)(1);
(0, import_Debug.printWithStackTrace)(invokeAsyncAndLogDebugger, stackTrace, `${title}:start`, {
fn,
timestampStart
});
try {
await fn(abortSignal);
const timestampEnd = performance.now();
const duration = Math.trunc(timestampEnd - timestampStart);
if (abortSignal.aborted) {
(0, import_Debug.printWithStackTrace)(invokeAsyncAndLogDebugger, stackTrace, `${title}:aborted`, {
abortReason: abortSignal.reason,
duration,
fn,
timestampEnd,
timestampStart
});
abortSignal.throwIfAborted();
}
(0, import_Debug.printWithStackTrace)(invokeAsyncAndLogDebugger, stackTrace, `${title}:end`, {
duration,
fn,
timestampEnd,
timestampStart
});
} catch (error) {
const timestampEnd = performance.now();
(0, import_Debug.printWithStackTrace)(invokeAsyncAndLogDebugger, stackTrace, `${title}:error`, {
duration: Math.trunc(timestampEnd - timestampStart),
error,
fn,
timestampEnd,
timestampStart
});
throw error;
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
invokeAsyncAndLog
});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0xvZ2dlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgbG9nZ2luZyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBnZXRMaWJEZWJ1Z2dlcixcbiAgcHJpbnRXaXRoU3RhY2tUcmFjZVxufSBmcm9tICcuLi9EZWJ1Zy50cyc7XG5pbXBvcnQgeyBnZXRTdGFja1RyYWNlIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuXG4vKipcbiAqIEludm9rZXMgYSBmdW5jdGlvbiBhbmQgbG9ncyB0aGUgc3RhcnQsIGVuZCwgYW5kIGR1cmF0aW9uIG9mIHRoZSBpbnZvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSB0aXRsZSAtIFRoZSB0aXRsZSBvZiB0aGUgbG9nLlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGludm9rZS5cbiAqIEBwYXJhbSBhYm9ydFNpZ25hbCAtIFRoZSBhYm9ydCBzaWduYWwgdG8gY29udHJvbCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbi5cbiAqIEBwYXJhbSBzdGFja1RyYWNlIC0gT3B0aW9uYWwgc3RhY2sgdHJhY2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnZva2VBc3luY0FuZExvZyhcbiAgdGl0bGU6IHN0cmluZyxcbiAgZm46IChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpID0+IFByb21pc2FibGU8dm9pZD4sXG4gIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCxcbiAgc3RhY2tUcmFjZT86IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGFib3J0U2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG4gIGNvbnN0IGludm9rZUFzeW5jQW5kTG9nRGVidWdnZXIgPSBnZXRMaWJEZWJ1Z2dlcignTG9nZ2VyOmludm9rZUFzeW5jQW5kTG9nJyk7XG4gIGNvbnN0IHRpbWVzdGFtcFN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gIHN0YWNrVHJhY2UgPz89IGdldFN0YWNrVHJhY2UoMSk7XG4gIHByaW50V2l0aFN0YWNrVHJhY2UoaW52b2tlQXN5bmNBbmRMb2dEZWJ1Z2dlciwgc3RhY2tUcmFjZSwgYCR7dGl0bGV9OnN0YXJ0YCwge1xuICAgIGZuLFxuICAgIHRpbWVzdGFtcFN0YXJ0XG4gIH0pO1xuICB0cnkge1xuICAgIGF3YWl0IGZuKGFib3J0U2lnbmFsKTtcbiAgICBjb25zdCB0aW1lc3RhbXBFbmQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IE1hdGgudHJ1bmModGltZXN0YW1wRW5kIC0gdGltZXN0YW1wU3RhcnQpO1xuICAgIGlmIChhYm9ydFNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICBwcmludFdpdGhTdGFja1RyYWNlKGludm9rZUFzeW5jQW5kTG9nRGVidWdnZXIsIHN0YWNrVHJhY2UsIGAke3RpdGxlfTphYm9ydGVkYCwge1xuICAgICAgICBhYm9ydFJlYXNvbjogYWJvcnRTaWduYWwucmVhc29uIGFzIHVua25vd24sXG4gICAgICAgIGR1cmF0aW9uLFxuICAgICAgICBmbixcbiAgICAgICAgdGltZXN0YW1wRW5kLFxuICAgICAgICB0aW1lc3RhbXBTdGFydFxuICAgICAgfSk7XG4gICAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgIH1cbiAgICBwcmludFdpdGhTdGFja1RyYWNlKGludm9rZUFzeW5jQW5kTG9nRGVidWdnZXIsIHN0YWNrVHJhY2UsIGAke3RpdGxlfTplbmRgLCB7XG4gICAgICBkdXJhdGlvbixcbiAgICAgIGZuLFxuICAgICAgdGltZXN0YW1wRW5kLFxuICAgICAgdGltZXN0YW1wU3RhcnRcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCB0aW1lc3RhbXBFbmQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICBwcmludFdpdGhTdGFja1RyYWNlKGludm9rZUFzeW5jQW5kTG9nRGVidWdnZXIsIHN0YWNrVHJhY2UsIGAke3RpdGxlfTplcnJvcmAsIHtcbiAgICAgIGR1cmF0aW9uOiBNYXRoLnRydW5jKHRpbWVzdGFtcEVuZCAtIHRpbWVzdGFtcFN0YXJ0KSxcbiAgICAgIGVycm9yLFxuICAgICAgZm4sXG4gICAgICB0aW1lc3RhbXBFbmQsXG4gICAgICB0aW1lc3RhbXBTdGFydFxuICAgIH0pO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLG1CQUdPO0FBQ1AsbUJBQThCO0FBVTlCLGVBQXNCLGtCQUNwQixPQUNBLElBQ0EsYUFDQSxZQUNlO0FBQ2YsY0FBWSxlQUFlO0FBQzNCLFFBQU0sZ0NBQTRCLDZCQUFlLDBCQUEwQjtBQUMzRSxRQUFNLGlCQUFpQixZQUFZLElBQUk7QUFDdkMscUJBQWUsNEJBQWMsQ0FBQztBQUM5Qix3Q0FBb0IsMkJBQTJCLFlBQVksR0FBRyxLQUFLLFVBQVU7QUFBQSxJQUMzRTtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUM7QUFDRCxNQUFJO0FBQ0YsVUFBTSxHQUFHLFdBQVc7QUFDcEIsVUFBTSxlQUFlLFlBQVksSUFBSTtBQUNyQyxVQUFNLFdBQVcsS0FBSyxNQUFNLGVBQWUsY0FBYztBQUN6RCxRQUFJLFlBQVksU0FBUztBQUN2Qiw0Q0FBb0IsMkJBQTJCLFlBQVksR0FBRyxLQUFLLFlBQVk7QUFBQSxRQUM3RSxhQUFhLFlBQVk7QUFBQSxRQUN6QjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0YsQ0FBQztBQUNELGtCQUFZLGVBQWU7QUFBQSxJQUM3QjtBQUNBLDBDQUFvQiwyQkFBMkIsWUFBWSxHQUFHLEtBQUssUUFBUTtBQUFBLE1BQ3pFO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSCxTQUFTLE9BQU87QUFDZCxVQUFNLGVBQWUsWUFBWSxJQUFJO0FBQ3JDLDBDQUFvQiwyQkFBMkIsWUFBWSxHQUFHLEtBQUssVUFBVTtBQUFBLE1BQzNFLFVBQVUsS0FBSyxNQUFNLGVBQWUsY0FBYztBQUFBLE1BQ2xEO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixDQUFDO0FBQ0QsVUFBTTtBQUFBLEVBQ1I7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K