obsidian-dev-utils 57.0.2 → 58.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/obsidian/components/async-component.cjs +28 -11
- package/dist/lib/cjs/obsidian/components/async-component.d.cts +14 -0
- package/dist/lib/cjs/obsidian/plugin/components/index.cjs +4 -4
- package/dist/lib/cjs/obsidian/plugin/components/index.d.cts +1 -1
- package/dist/lib/cjs/obsidian/plugin/components/layout-ready-component.cjs +124 -0
- package/dist/lib/cjs/obsidian/plugin/components/layout-ready-component.d.cts +18 -0
- package/dist/lib/cjs/obsidian/plugin/plugin.cjs +47 -81
- package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +13 -51
- package/dist/lib/cjs/strict-proxy.cjs +15 -4
- package/dist/lib/cjs/strict-proxy.d.cts +12 -0
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/obsidian/components/async-component.d.mts +14 -0
- package/dist/lib/esm/obsidian/components/async-component.mjs +25 -10
- package/dist/lib/esm/obsidian/plugin/components/index.d.mts +1 -1
- package/dist/lib/esm/obsidian/plugin/components/index.mjs +3 -3
- package/dist/lib/esm/obsidian/plugin/components/layout-ready-component.d.mts +18 -0
- package/dist/lib/esm/obsidian/plugin/components/layout-ready-component.mjs +24 -0
- package/dist/lib/esm/obsidian/plugin/plugin.d.mts +13 -51
- package/dist/lib/esm/obsidian/plugin/plugin.mjs +48 -85
- package/dist/lib/esm/strict-proxy.d.mts +12 -0
- package/dist/lib/esm/strict-proxy.mjs +14 -4
- package/obsidian/Plugin/components/{lifecycle-events-component → layout-ready-component}/package.json +3 -3
- package/package.json +3 -3
- package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.cjs +0 -211
- package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.d.cts +0 -63
- package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.d.mts +0 -63
- package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.mjs +0 -106
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file
|
|
3
|
-
*
|
|
4
|
-
* Component that manages plugin lifecycle events (load, layoutReady, unload).
|
|
5
|
-
*/
|
|
6
|
-
import type { App } from 'obsidian';
|
|
7
|
-
import { AsyncEvents } from '../../../async-events.mjs';
|
|
8
|
-
import { AsyncComponentBase } from '../../components/async-component.mjs';
|
|
9
|
-
/**
|
|
10
|
-
* The name of a lifecycle event.
|
|
11
|
-
*/
|
|
12
|
-
export type LifecycleEventName = 'layoutReady' | 'load' | 'unload';
|
|
13
|
-
/**
|
|
14
|
-
* Manages plugin lifecycle events: `load`, `layoutReady`, and `unload`.
|
|
15
|
-
*
|
|
16
|
-
* Components can wait for or register callbacks for these events.
|
|
17
|
-
*/
|
|
18
|
-
export declare class LifecycleEventsComponent extends AsyncComponentBase {
|
|
19
|
-
private readonly app;
|
|
20
|
-
/**
|
|
21
|
-
* The singleton key for the {@link LifecycleEventsComponent} class.
|
|
22
|
-
*/
|
|
23
|
-
static readonly COMPONENT_KEY: unique symbol;
|
|
24
|
-
/**
|
|
25
|
-
* The async events instance.
|
|
26
|
-
*/
|
|
27
|
-
readonly events: AsyncEvents;
|
|
28
|
-
private readonly triggeredEvents;
|
|
29
|
-
/**
|
|
30
|
-
* Creates a new lifecycle events component.
|
|
31
|
-
*
|
|
32
|
-
* @param app - The Obsidian app instance.
|
|
33
|
-
*/
|
|
34
|
-
constructor(app: App);
|
|
35
|
-
/**
|
|
36
|
-
* Triggers load and registers layoutReady callback.
|
|
37
|
-
*/
|
|
38
|
-
onload(): Promise<void>;
|
|
39
|
-
/**
|
|
40
|
-
* Triggers the unload lifecycle event.
|
|
41
|
-
*/
|
|
42
|
-
onunload(): void;
|
|
43
|
-
/**
|
|
44
|
-
* Registers a callback to be executed when a lifecycle event is triggered.
|
|
45
|
-
*
|
|
46
|
-
* @param name - The name of the event.
|
|
47
|
-
* @param callback - The callback to execute.
|
|
48
|
-
*/
|
|
49
|
-
registerForLifecycleEvent(name: LifecycleEventName, callback: () => Promise<void>): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Triggers a lifecycle event.
|
|
52
|
-
*
|
|
53
|
-
* @param name - The name of the lifecycle event to trigger.
|
|
54
|
-
*/
|
|
55
|
-
triggerLifecycleEvent(name: LifecycleEventName): Promise<void>;
|
|
56
|
-
/**
|
|
57
|
-
* Waits for a lifecycle event to be triggered.
|
|
58
|
-
*
|
|
59
|
-
* @param name - The name of the event.
|
|
60
|
-
* @returns A {@link Promise} that resolves when the event is triggered.
|
|
61
|
-
*/
|
|
62
|
-
waitForLifecycleEvent(name: LifecycleEventName): Promise<void>;
|
|
63
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
-
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
(function initEsm() {
|
|
7
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
8
|
-
if (globalThis.process) {
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const browserProcess = {
|
|
13
|
-
browser: true,
|
|
14
|
-
cwd() {
|
|
15
|
-
return '/';
|
|
16
|
-
},
|
|
17
|
-
env: {},
|
|
18
|
-
platform: 'android'
|
|
19
|
-
};
|
|
20
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
21
|
-
globalThis.process = browserProcess;
|
|
22
|
-
})();
|
|
23
|
-
|
|
24
|
-
import { AsyncEvents } from "../../../async-events.mjs";
|
|
25
|
-
import {
|
|
26
|
-
convertAsyncToSync,
|
|
27
|
-
invokeAsyncSafely
|
|
28
|
-
} from "../../../async.mjs";
|
|
29
|
-
import { AsyncComponentBase } from "../../components/async-component.mjs";
|
|
30
|
-
class LifecycleEventsComponent extends AsyncComponentBase {
|
|
31
|
-
/**
|
|
32
|
-
* Creates a new lifecycle events component.
|
|
33
|
-
*
|
|
34
|
-
* @param app - The Obsidian app instance.
|
|
35
|
-
*/
|
|
36
|
-
constructor(app) {
|
|
37
|
-
super();
|
|
38
|
-
this.app = app;
|
|
39
|
-
}
|
|
40
|
-
app;
|
|
41
|
-
/**
|
|
42
|
-
* The singleton key for the {@link LifecycleEventsComponent} class.
|
|
43
|
-
*/
|
|
44
|
-
static COMPONENT_KEY = Symbol(LifecycleEventsComponent.name);
|
|
45
|
-
/**
|
|
46
|
-
* The async events instance.
|
|
47
|
-
*/
|
|
48
|
-
events = new AsyncEvents();
|
|
49
|
-
triggeredEvents = /* @__PURE__ */ new Set();
|
|
50
|
-
/**
|
|
51
|
-
* Triggers load and registers layoutReady callback.
|
|
52
|
-
*/
|
|
53
|
-
async onload() {
|
|
54
|
-
await this.triggerLifecycleEvent("load");
|
|
55
|
-
this.app.workspace.onLayoutReady(convertAsyncToSync(async () => {
|
|
56
|
-
await this.triggerLifecycleEvent("layoutReady");
|
|
57
|
-
}));
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Triggers the unload lifecycle event.
|
|
61
|
-
*/
|
|
62
|
-
onunload() {
|
|
63
|
-
invokeAsyncSafely(async () => {
|
|
64
|
-
await this.triggerLifecycleEvent("unload");
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Registers a callback to be executed when a lifecycle event is triggered.
|
|
69
|
-
*
|
|
70
|
-
* @param name - The name of the event.
|
|
71
|
-
* @param callback - The callback to execute.
|
|
72
|
-
*/
|
|
73
|
-
async registerForLifecycleEvent(name, callback) {
|
|
74
|
-
await this.waitForLifecycleEvent(name);
|
|
75
|
-
await callback();
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Triggers a lifecycle event.
|
|
79
|
-
*
|
|
80
|
-
* @param name - The name of the lifecycle event to trigger.
|
|
81
|
-
*/
|
|
82
|
-
async triggerLifecycleEvent(name) {
|
|
83
|
-
this.triggeredEvents.add(name);
|
|
84
|
-
await this.events.triggerAsync(name);
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Waits for a lifecycle event to be triggered.
|
|
88
|
-
*
|
|
89
|
-
* @param name - The name of the event.
|
|
90
|
-
* @returns A {@link Promise} that resolves when the event is triggered.
|
|
91
|
-
*/
|
|
92
|
-
async waitForLifecycleEvent(name) {
|
|
93
|
-
if (this.triggeredEvents.has(name)) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
await new Promise((resolve) => {
|
|
97
|
-
this.events.once(name, () => {
|
|
98
|
-
resolve();
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
export {
|
|
104
|
-
LifecycleEventsComponent
|
|
105
|
-
};
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9jb21wb25lbnRzL2xpZmVjeWNsZS1ldmVudHMtY29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29tcG9uZW50IHRoYXQgbWFuYWdlcyBwbHVnaW4gbGlmZWN5Y2xlIGV2ZW50cyAobG9hZCwgbGF5b3V0UmVhZHksIHVubG9hZCkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IEFzeW5jRXZlbnRzIH0gZnJvbSAnLi4vLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB7XG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgaW52b2tlQXN5bmNTYWZlbHlcbn0gZnJvbSAnLi4vLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgQXN5bmNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9hc3luYy1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIGEgbGlmZWN5Y2xlIGV2ZW50LlxuICovXG5leHBvcnQgdHlwZSBMaWZlY3ljbGVFdmVudE5hbWUgPSAnbGF5b3V0UmVhZHknIHwgJ2xvYWQnIHwgJ3VubG9hZCc7XG5cbi8qKlxuICogTWFuYWdlcyBwbHVnaW4gbGlmZWN5Y2xlIGV2ZW50czogYGxvYWRgLCBgbGF5b3V0UmVhZHlgLCBhbmQgYHVubG9hZGAuXG4gKlxuICogQ29tcG9uZW50cyBjYW4gd2FpdCBmb3Igb3IgcmVnaXN0ZXIgY2FsbGJhY2tzIGZvciB0aGVzZSBldmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaWZlY3ljbGVFdmVudHNDb21wb25lbnQgZXh0ZW5kcyBBc3luY0NvbXBvbmVudEJhc2Uge1xuICAvKipcbiAgICogVGhlIHNpbmdsZXRvbiBrZXkgZm9yIHRoZSB7QGxpbmsgTGlmZWN5Y2xlRXZlbnRzQ29tcG9uZW50fSBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09NUE9ORU5UX0tFWSA9IFN5bWJvbChMaWZlY3ljbGVFdmVudHNDb21wb25lbnQubmFtZSk7XG5cbiAgLyoqXG4gICAqIFRoZSBhc3luYyBldmVudHMgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzID0gbmV3IEFzeW5jRXZlbnRzKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0cmlnZ2VyZWRFdmVudHMgPSBuZXcgU2V0PExpZmVjeWNsZUV2ZW50TmFtZT4oKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBsaWZlY3ljbGUgZXZlbnRzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcHA6IEFwcCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgbG9hZCBhbmQgcmVnaXN0ZXJzIGxheW91dFJlYWR5IGNhbGxiYWNrLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnRyaWdnZXJMaWZlY3ljbGVFdmVudCgnbG9hZCcpO1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLnRyaWdnZXJMaWZlY3ljbGVFdmVudCgnbGF5b3V0UmVhZHknKTtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIHVubG9hZCBsaWZlY3ljbGUgZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb251bmxvYWQoKTogdm9pZCB7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy50cmlnZ2VyTGlmZWN5Y2xlRXZlbnQoJ3VubG9hZCcpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIHRvIGJlIGV4ZWN1dGVkIHdoZW4gYSBsaWZlY3ljbGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXJGb3JMaWZlY3ljbGVFdmVudChuYW1lOiBMaWZlY3ljbGVFdmVudE5hbWUsIGNhbGxiYWNrOiAoKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yTGlmZWN5Y2xlRXZlbnQobmFtZSk7XG4gICAgYXdhaXQgY2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyBhIGxpZmVjeWNsZSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbGlmZWN5Y2xlIGV2ZW50IHRvIHRyaWdnZXIuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdHJpZ2dlckxpZmVjeWNsZUV2ZW50KG5hbWU6IExpZmVjeWNsZUV2ZW50TmFtZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudHJpZ2dlcmVkRXZlbnRzLmFkZChuYW1lKTtcbiAgICBhd2FpdCB0aGlzLmV2ZW50cy50cmlnZ2VyQXN5bmMobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogV2FpdHMgZm9yIGEgbGlmZWN5Y2xlIGV2ZW50IHRvIGJlIHRyaWdnZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHdhaXRGb3JMaWZlY3ljbGVFdmVudChuYW1lOiBMaWZlY3ljbGVFdmVudE5hbWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50cmlnZ2VyZWRFdmVudHMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuZXZlbnRzLm9uY2UobmFtZSwgKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSxTQUFTLG1CQUFtQjtBQUM1QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsMEJBQTBCO0FBWTVCLE1BQU0saUNBQWlDLG1CQUFtQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWtCeEQsWUFBNkIsS0FBVTtBQUM1QyxVQUFNO0FBRDRCO0FBQUEsRUFFcEM7QUFBQSxFQUZvQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZHBDLE9BQXVCLGdCQUFnQixPQUFPLHlCQUF5QixJQUFJO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLM0QsU0FBUyxJQUFJLFlBQVk7QUFBQSxFQUV4QixrQkFBa0Isb0JBQUksSUFBd0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWMvRCxNQUFzQixTQUF3QjtBQUM1QyxVQUFNLEtBQUssc0JBQXNCLE1BQU07QUFDdkMsU0FBSyxJQUFJLFVBQVUsY0FBYyxtQkFBbUIsWUFBWTtBQUM5RCxZQUFNLEtBQUssc0JBQXNCLGFBQWE7QUFBQSxJQUNoRCxDQUFDLENBQUM7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLZ0IsV0FBaUI7QUFDL0Isc0JBQWtCLFlBQVk7QUFDNUIsWUFBTSxLQUFLLHNCQUFzQixRQUFRO0FBQUEsSUFDM0MsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE1BQWEsMEJBQTBCLE1BQTBCLFVBQThDO0FBQzdHLFVBQU0sS0FBSyxzQkFBc0IsSUFBSTtBQUNyQyxVQUFNLFNBQVM7QUFBQSxFQUNqQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE1BQWEsc0JBQXNCLE1BQXlDO0FBQzFFLFNBQUssZ0JBQWdCLElBQUksSUFBSTtBQUM3QixVQUFNLEtBQUssT0FBTyxhQUFhLElBQUk7QUFBQSxFQUNyQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsTUFBYSxzQkFBc0IsTUFBeUM7QUFDMUUsUUFBSSxLQUFLLGdCQUFnQixJQUFJLElBQUksR0FBRztBQUNsQztBQUFBLElBQ0Y7QUFFQSxVQUFNLElBQUksUUFBYyxDQUFDLFlBQVk7QUFDbkMsV0FBSyxPQUFPLEtBQUssTUFBTSxNQUFNO0FBQzNCLGdCQUFRO0FBQUEsTUFDVixDQUFDO0FBQUEsSUFDSCxDQUFDO0FBQUEsRUFDSDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|