obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
88 lines (85 loc) • 11.1 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 { noop } from "./Function.mjs";
const INFINITE_TIMEOUT = Number.POSITIVE_INFINITY;
function abortSignalAny(...maybeAbortSignals) {
const abortSignals = maybeAbortSignals.filter((abortSignal) => !!abortSignal);
if (typeof AbortSignal.any === "function") {
return AbortSignal.any(abortSignals);
}
if (abortSignals.length === 0) {
return abortSignalNever();
}
if (abortSignals.length === 1 && abortSignals[0]) {
return abortSignals[0];
}
const abortController = new AbortController();
for (const abortSignal of abortSignals) {
if (abortSignal.aborted) {
return abortSignal;
}
}
const abortHandlerRemovers = [];
for (const abortSignal of abortSignals) {
abortHandlerRemovers.push(onAbort(abortSignal, handleAbort));
}
return abortController.signal;
function handleAbort(abortSignal) {
for (const abortHandlerRemover of abortHandlerRemovers) {
abortHandlerRemover();
}
abortController.abort(abortSignal.reason);
}
}
function abortSignalNever() {
return new AbortController().signal;
}
function abortSignalTimeout(timeoutInMilliseconds) {
if (timeoutInMilliseconds === INFINITE_TIMEOUT) {
return abortSignalNever();
}
if (typeof AbortSignal.timeout === "function") {
return AbortSignal.timeout(timeoutInMilliseconds);
}
const abortController = new AbortController();
window.setTimeout(() => {
abortController.abort(new Error(`Timed out in ${String(timeoutInMilliseconds)} milliseconds`));
}, timeoutInMilliseconds);
return abortController.signal;
}
function onAbort(abortSignal, callback) {
if (abortSignal.aborted) {
callback(abortSignal);
return noop;
}
abortSignal.addEventListener("abort", wrappedCallback, { once: true });
return () => {
abortSignal.removeEventListener("abort", wrappedCallback);
};
function wrappedCallback(evt) {
callback(evt.target);
}
}
function waitForAbort(abortSignal, shouldRejectOnAbort) {
return new Promise((resolve, reject) => {
onAbort(abortSignal, () => {
if (shouldRejectOnAbort) {
reject(abortSignal.reason);
} else {
resolve(abortSignal.reason);
}
});
});
}
export {
INFINITE_TIMEOUT,
abortSignalAny,
abortSignalNever,
abortSignalTimeout,
onAbort,
waitForAbort
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL0Fib3J0Q29udHJvbGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBBYm9ydENvbnRyb2xsZXIgdXRpbGl0aWVzLlxuICovXG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL0Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBBIGNvbnN0YW50IHJlcHJlc2VudGluZyBhbiBpbmZpbml0ZSB0aW1lb3V0LlxuICovXG5leHBvcnQgY29uc3QgSU5GSU5JVEVfVElNRU9VVCA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcblxuLyoqXG4gKiBBbiBhYm9ydCBzaWduYWwgdGhhdCBhYm9ydHMgd2hlbiBhbnkgb2YgdGhlIGdpdmVuIGFib3J0IHNpZ25hbHMgYWJvcnQuXG4gKlxuICogQHBhcmFtIG1heWJlQWJvcnRTaWduYWxzIC0gVGhlIGFib3J0IHNpZ25hbHMgdG8gYWJvcnQgd2hlbiBhbnkgb2YgdGhlbSBhYm9ydC5cbiAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwgdGhhdCBhYm9ydHMgd2hlbiBhbnkgb2YgdGhlIGdpdmVuIGFib3J0IHNpZ25hbHMgYWJvcnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYm9ydFNpZ25hbEFueSguLi5tYXliZUFib3J0U2lnbmFsczogKEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkKVtdKTogQWJvcnRTaWduYWwge1xuICBjb25zdCBhYm9ydFNpZ25hbHMgPSBtYXliZUFib3J0U2lnbmFscy5maWx0ZXIoKGFib3J0U2lnbmFsKSA9PiAhIWFib3J0U2lnbmFsKTtcblxuICBpZiAodHlwZW9mIEFib3J0U2lnbmFsLmFueSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBBYm9ydFNpZ25hbC5hbnkoYWJvcnRTaWduYWxzKTtcbiAgfVxuXG4gIGlmIChhYm9ydFNpZ25hbHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGFib3J0U2lnbmFsTmV2ZXIoKTtcbiAgfVxuXG4gIGlmIChhYm9ydFNpZ25hbHMubGVuZ3RoID09PSAxICYmIGFib3J0U2lnbmFsc1swXSkge1xuICAgIHJldHVybiBhYm9ydFNpZ25hbHNbMF07XG4gIH1cblxuICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgZm9yIChjb25zdCBhYm9ydFNpZ25hbCBvZiBhYm9ydFNpZ25hbHMpIHtcbiAgICBpZiAoYWJvcnRTaWduYWwuYWJvcnRlZCkge1xuICAgICAgcmV0dXJuIGFib3J0U2lnbmFsO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFib3J0SGFuZGxlclJlbW92ZXJzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgYWJvcnRTaWduYWwgb2YgYWJvcnRTaWduYWxzKSB7XG4gICAgYWJvcnRIYW5kbGVyUmVtb3ZlcnMucHVzaChvbkFib3J0KGFib3J0U2lnbmFsLCBoYW5kbGVBYm9ydCkpO1xuICB9XG5cbiAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG5cbiAgZnVuY3Rpb24gaGFuZGxlQWJvcnQoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBhYm9ydEhhbmRsZXJSZW1vdmVyIG9mIGFib3J0SGFuZGxlclJlbW92ZXJzKSB7XG4gICAgICBhYm9ydEhhbmRsZXJSZW1vdmVyKCk7XG4gICAgfVxuXG4gICAgYWJvcnRDb250cm9sbGVyLmFib3J0KGFib3J0U2lnbmFsLnJlYXNvbik7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBhYm9ydCBzaWduYWwgdGhhdCBuZXZlciBhYm9ydHMuXG4gKlxuICogQHJldHVybnMgVGhlIGFib3J0IHNpZ25hbCB0aGF0IG5ldmVyIGFib3J0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFib3J0U2lnbmFsTmV2ZXIoKTogQWJvcnRTaWduYWwge1xuICByZXR1cm4gbmV3IEFib3J0Q29udHJvbGxlcigpLnNpZ25hbDtcbn1cblxuLyoqXG4gKiBBbiBhYm9ydCBzaWduYWwgdGhhdCBhYm9ydHMgYWZ0ZXIgYSB0aW1lb3V0LlxuICpcbiAqIEBwYXJhbSB0aW1lb3V0SW5NaWxsaXNlY29uZHMgLSBUaGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBUaGUgYWJvcnQgc2lnbmFsIHRoYXQgYWJvcnRzIGFmdGVyIGEgdGltZW91dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFib3J0U2lnbmFsVGltZW91dCh0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcik6IEFib3J0U2lnbmFsIHtcbiAgaWYgKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9PT0gSU5GSU5JVEVfVElNRU9VVCkge1xuICAgIHJldHVybiBhYm9ydFNpZ25hbE5ldmVyKCk7XG4gIH1cblxuICBpZiAodHlwZW9mIEFib3J0U2lnbmFsLnRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gQWJvcnRTaWduYWwudGltZW91dCh0aW1lb3V0SW5NaWxsaXNlY29uZHMpO1xuICB9XG5cbiAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgYWJvcnRDb250cm9sbGVyLmFib3J0KG5ldyBFcnJvcihgVGltZWQgb3V0IGluICR7U3RyaW5nKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyl9IG1pbGxpc2Vjb25kc2ApKTtcbiAgfSwgdGltZW91dEluTWlsbGlzZWNvbmRzKTtcbiAgcmV0dXJuIGFib3J0Q29udHJvbGxlci5zaWduYWw7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhYm9ydCBsaXN0ZW5lciB0byBhbiBhYm9ydCBzaWduYWwgYW5kIGNhbGxzIHRoZSBjYWxsYmFjayBpZiB0aGUgYWJvcnQgc2lnbmFsIGlzIGFscmVhZHkgYWJvcnRlZC5cbiAqXG4gKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIGFkZCB0aGUgbGlzdGVuZXIgdG8uXG4gKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBhYm9ydCBzaWduYWwgYWJvcnRzLlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0byByZW1vdmUgdGhlIGFib3J0IGxpc3RlbmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb25BYm9ydChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwsIGNhbGxiYWNrOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiB2b2lkKTogKCkgPT4gdm9pZCB7XG4gIGlmIChhYm9ydFNpZ25hbC5hYm9ydGVkKSB7XG4gICAgY2FsbGJhY2soYWJvcnRTaWduYWwpO1xuICAgIHJldHVybiBub29wO1xuICB9XG5cbiAgYWJvcnRTaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCB3cmFwcGVkQ2FsbGJhY2ssIHsgb25jZTogdHJ1ZSB9KTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICBhYm9ydFNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIHdyYXBwZWRDYWxsYmFjayk7XG4gIH07XG5cbiAgZnVuY3Rpb24gd3JhcHBlZENhbGxiYWNrKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICBjYWxsYmFjayhldnQudGFyZ2V0IGFzIEFib3J0U2lnbmFsKTtcbiAgfVxufVxuXG4vKipcbiAqIFdhaXRzIGZvciBhbiBhYm9ydCBzaWduYWwgdG8gYWJvcnQgYW5kIHJlc29sdmVzIHdpdGggaXRzIHJlYXNvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBFeHBlY3RlZCB0eXBlIG9mIGBhYm9ydFNpZ25hbC5yZWFzb25gLlxuICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byB3YWl0IGZvci5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcmVhc29uIG9mIHRoZSBhYm9ydCBzaWduYWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3YWl0Rm9yQWJvcnQ8VCA9IHVua25vd24+KGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8VD47XG5cbi8qKlxuICogV2FpdHMgZm9yIGFuIGFib3J0IHNpZ25hbCB0byBhYm9ydCBhbmQgcmVqZWN0cyB3aXRoIGl0cyByZWFzb24uXG4gKlxuICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byB3YWl0IGZvci5cbiAqIEBwYXJhbSBzaG91bGRSZWplY3RPbkFib3J0IC0gV2hldGhlciB0byByZWplY3QgdGhlIHByb21pc2UgaWYgdGhlIGFib3J0IHNpZ25hbCBpcyBhYm9ydGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZWplY3RzIHdpdGggdGhlIHJlYXNvbiBvZiB0aGUgYWJvcnQgc2lnbmFsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2FpdEZvckFib3J0KGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCwgc2hvdWxkUmVqZWN0T25BYm9ydDogdHJ1ZSk6IFByb21pc2U8bmV2ZXI+O1xuXG4vKipcbiAqIFdhaXRzIGZvciBhbiBhYm9ydCBzaWduYWwgdG8gYWJvcnQgYW5kIHJlc29sdmVzIHdpdGggaXRzIHJlYXNvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBFeHBlY3RlZCB0eXBlIG9mIGBhYm9ydFNpZ25hbC5yZWFzb25gLlxuICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byB3YWl0IGZvci5cbiAqIEBwYXJhbSBzaG91bGRSZWplY3RPbkFib3J0IC0gV2hldGhlciB0byByZWplY3QgdGhlIHByb21pc2UgaWYgdGhlIGFib3J0IHNpZ25hbCBpcyBhYm9ydGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZWFzb24gb2YgdGhlIGFib3J0IHNpZ25hbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JBYm9ydDxUID0gdW5rbm93bj4oYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsLCBzaG91bGRSZWplY3RPbkFib3J0PzogYm9vbGVhbik6IFByb21pc2U8VD4ge1xuICByZXR1cm4gbmV3IFByb21pc2U8VD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIG9uQWJvcnQoYWJvcnRTaWduYWwsICgpID0+IHtcbiAgICAgIGlmIChzaG91bGRSZWplY3RPbkFib3J0KSB7XG4gICAgICAgIHJlamVjdChhYm9ydFNpZ25hbC5yZWFzb24gYXMgRXJyb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShhYm9ydFNpZ25hbC5yZWFzb24gYXMgVCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQU1BLFNBQVMsWUFBWTtBQUtkLE1BQU0sbUJBQW1CLE9BQU87QUFRaEMsU0FBUyxrQkFBa0IsbUJBQTZEO0FBQzdGLFFBQU0sZUFBZSxrQkFBa0IsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsV0FBVztBQUU1RSxNQUFJLE9BQU8sWUFBWSxRQUFRLFlBQVk7QUFDekMsV0FBTyxZQUFZLElBQUksWUFBWTtBQUFBLEVBQ3JDO0FBRUEsTUFBSSxhQUFhLFdBQVcsR0FBRztBQUM3QixXQUFPLGlCQUFpQjtBQUFBLEVBQzFCO0FBRUEsTUFBSSxhQUFhLFdBQVcsS0FBSyxhQUFhLENBQUMsR0FBRztBQUNoRCxXQUFPLGFBQWEsQ0FBQztBQUFBLEVBQ3ZCO0FBRUEsUUFBTSxrQkFBa0IsSUFBSSxnQkFBZ0I7QUFFNUMsYUFBVyxlQUFlLGNBQWM7QUFDdEMsUUFBSSxZQUFZLFNBQVM7QUFDdkIsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBRUEsUUFBTSx1QkFBdUMsQ0FBQztBQUU5QyxhQUFXLGVBQWUsY0FBYztBQUN0Qyx5QkFBcUIsS0FBSyxRQUFRLGFBQWEsV0FBVyxDQUFDO0FBQUEsRUFDN0Q7QUFFQSxTQUFPLGdCQUFnQjtBQUV2QixXQUFTLFlBQVksYUFBZ0M7QUFDbkQsZUFBVyx1QkFBdUIsc0JBQXNCO0FBQ3RELDBCQUFvQjtBQUFBLElBQ3RCO0FBRUEsb0JBQWdCLE1BQU0sWUFBWSxNQUFNO0FBQUEsRUFDMUM7QUFDRjtBQU9PLFNBQVMsbUJBQWdDO0FBQzlDLFNBQU8sSUFBSSxnQkFBZ0IsRUFBRTtBQUMvQjtBQVFPLFNBQVMsbUJBQW1CLHVCQUE0QztBQUM3RSxNQUFJLDBCQUEwQixrQkFBa0I7QUFDOUMsV0FBTyxpQkFBaUI7QUFBQSxFQUMxQjtBQUVBLE1BQUksT0FBTyxZQUFZLFlBQVksWUFBWTtBQUM3QyxXQUFPLFlBQVksUUFBUSxxQkFBcUI7QUFBQSxFQUNsRDtBQUVBLFFBQU0sa0JBQWtCLElBQUksZ0JBQWdCO0FBQzVDLFNBQU8sV0FBVyxNQUFNO0FBQ3RCLG9CQUFnQixNQUFNLElBQUksTUFBTSxnQkFBZ0IsT0FBTyxxQkFBcUIsQ0FBQyxlQUFlLENBQUM7QUFBQSxFQUMvRixHQUFHLHFCQUFxQjtBQUN4QixTQUFPLGdCQUFnQjtBQUN6QjtBQVNPLFNBQVMsUUFBUSxhQUEwQixVQUEwRDtBQUMxRyxNQUFJLFlBQVksU0FBUztBQUN2QixhQUFTLFdBQVc7QUFDcEIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxjQUFZLGlCQUFpQixTQUFTLGlCQUFpQixFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3JFLFNBQU8sTUFBTTtBQUNYLGdCQUFZLG9CQUFvQixTQUFTLGVBQWU7QUFBQSxFQUMxRDtBQUVBLFdBQVMsZ0JBQWdCLEtBQWtCO0FBQ3pDLGFBQVMsSUFBSSxNQUFxQjtBQUFBLEVBQ3BDO0FBQ0Y7QUE0Qk8sU0FBUyxhQUEwQixhQUEwQixxQkFBMkM7QUFDN0csU0FBTyxJQUFJLFFBQVcsQ0FBQyxTQUFTLFdBQVc7QUFDekMsWUFBUSxhQUFhLE1BQU07QUFDekIsVUFBSSxxQkFBcUI7QUFDdkIsZUFBTyxZQUFZLE1BQWU7QUFBQSxNQUNwQyxPQUFPO0FBQ0wsZ0JBQVEsWUFBWSxNQUFXO0FBQUEsTUFDakM7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNILENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K