obsidian-dev-utils 70.3.0 → 70.4.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.
@@ -9,12 +9,39 @@
9
9
  *
10
10
  * @typeParam T - The type of the wrapped value.
11
11
  */
12
- export declare class ValueWrapper<T> {
13
- value: T;
12
+ export declare class ValueWrapper<T = unknown> {
14
13
  /**
15
- * Creates a new value wrapper.
14
+ * Gets the wrapped value.
16
15
  *
16
+ * @returns The wrapped value.
17
+ * @throws An {@link Error} if the value has not been set.
18
+ */
19
+ get value(): T;
20
+ /**
21
+ * Sets the wrapped value.
22
+ *
23
+ * @param value - The value to wrap.
24
+ */
25
+ set value(value: T);
26
+ private _value;
27
+ private hasValue;
28
+ /**
29
+ * Creates a new value wrapper. Use {@link ValueWrapper.of} or {@link ValueWrapper.unset} instead.
30
+ */
31
+ private constructor();
32
+ /**
33
+ * Make wrapper from the value.
34
+ *
35
+ * @typeParam T - Type of the value to wrap.
17
36
  * @param value - The value to wrap.
37
+ * @returns The wrapper.
38
+ */
39
+ static of<T>(value: T): ValueWrapper<T>;
40
+ /**
41
+ * Make the wrapper with unset value.
42
+ *
43
+ * @typeParam T - Type of the value to wrap.
44
+ * @returns The wrapper.
18
45
  */
19
- constructor(value: T);
46
+ static unset<T>(): ValueWrapper<T>;
20
47
  }
@@ -24,17 +24,57 @@ if you want to view the source, please visit the github repository of this plugi
24
24
  import { noop } from "./function.mjs";
25
25
  class ValueWrapper {
26
26
  /**
27
- * Creates a new value wrapper.
27
+ * Gets the wrapped value.
28
+ *
29
+ * @returns The wrapped value.
30
+ * @throws An {@link Error} if the value has not been set.
31
+ */
32
+ get value() {
33
+ if (!this.hasValue) {
34
+ throw new Error("Value is not set");
35
+ }
36
+ return this._value;
37
+ }
38
+ /**
39
+ * Sets the wrapped value.
28
40
  *
29
41
  * @param value - The value to wrap.
30
42
  */
31
- constructor(value) {
32
- this.value = value;
43
+ set value(value) {
44
+ this._value = value;
45
+ this.hasValue = true;
46
+ }
47
+ _value = null;
48
+ hasValue = false;
49
+ /**
50
+ * Creates a new value wrapper. Use {@link ValueWrapper.of} or {@link ValueWrapper.unset} instead.
51
+ */
52
+ constructor() {
33
53
  noop();
34
54
  }
35
- value;
55
+ /**
56
+ * Make wrapper from the value.
57
+ *
58
+ * @typeParam T - Type of the value to wrap.
59
+ * @param value - The value to wrap.
60
+ * @returns The wrapper.
61
+ */
62
+ static of(value) {
63
+ const wrapper = new ValueWrapper();
64
+ wrapper.value = value;
65
+ return wrapper;
66
+ }
67
+ /**
68
+ * Make the wrapper with unset value.
69
+ *
70
+ * @typeParam T - Type of the value to wrap.
71
+ * @returns The wrapper.
72
+ */
73
+ static unset() {
74
+ return new ValueWrapper();
75
+ }
36
76
  }
37
77
  export {
38
78
  ValueWrapper
39
79
  };
40
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZhbHVlLXdyYXBwZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIHN0b3JpbmcgdmFsdWVzLlxuICovXG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIHN0b3JpbmcgdmFsdWVzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB3cmFwcGVkIHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgVmFsdWVXcmFwcGVyPFQ+IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdmFsdWUgd3JhcHBlci5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHZhbHVlOiBUKSB7XG4gICAgbm9vcCgpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsWUFBWTtBQU9kLE1BQU0sYUFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNcEIsWUFBbUIsT0FBVTtBQUFWO0FBQ3hCLFNBQUs7QUFBQSxFQUNQO0FBQUEsRUFGMEI7QUFHNUI7IiwKICAibmFtZXMiOiBbXQp9Cg==
80
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZhbHVlLXdyYXBwZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIHN0b3JpbmcgdmFsdWVzLlxuICovXG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIHN0b3JpbmcgdmFsdWVzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB3cmFwcGVkIHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgVmFsdWVXcmFwcGVyPFQgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSB3cmFwcGVkIHZhbHVlLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgd3JhcHBlZCB2YWx1ZS5cbiAgICogQHRocm93cyBBbiB7QGxpbmsgRXJyb3J9IGlmIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4gc2V0LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcbiAgICBpZiAoIXRoaXMuaGFzVmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgbm90IHNldCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl92YWx1ZSBhcyBUO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHdyYXBwZWQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB3cmFwLlxuICAgKi9cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNWYWx1ZSA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogbnVsbCB8IFQgPSBudWxsO1xuXG4gIHByaXZhdGUgaGFzVmFsdWUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyB2YWx1ZSB3cmFwcGVyLiBVc2Uge0BsaW5rIFZhbHVlV3JhcHBlci5vZn0gb3Ige0BsaW5rIFZhbHVlV3JhcHBlci51bnNldH0gaW5zdGVhZC5cbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2Ugd3JhcHBlciBmcm9tIHRoZSB2YWx1ZS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVHlwZSBvZiB0aGUgdmFsdWUgdG8gd3JhcC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAqIEByZXR1cm5zIFRoZSB3cmFwcGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZjxUPih2YWx1ZTogVCk6IFZhbHVlV3JhcHBlcjxUPiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG5ldyBWYWx1ZVdyYXBwZXI8VD4oKTtcbiAgICB3cmFwcGVyLnZhbHVlID0gdmFsdWU7XG4gICAgcmV0dXJuIHdyYXBwZXI7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSB0aGUgd3JhcHBlciB3aXRoIHVuc2V0IHZhbHVlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFQgLSBUeXBlIG9mIHRoZSB2YWx1ZSB0byB3cmFwLlxuICAgKiBAcmV0dXJucyBUaGUgd3JhcHBlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdW5zZXQ8VD4oKTogVmFsdWVXcmFwcGVyPFQ+IHtcbiAgICByZXR1cm4gbmV3IFZhbHVlV3JhcHBlcjxUPigpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsWUFBWTtBQU9kLE1BQU0sYUFBMEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9yQyxJQUFXLFFBQVc7QUFDcEIsUUFBSSxDQUFDLEtBQUssVUFBVTtBQUNsQixZQUFNLElBQUksTUFBTSxrQkFBa0I7QUFBQSxJQUNwQztBQUVBLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLE1BQU0sT0FBVTtBQUN6QixTQUFLLFNBQVM7QUFDZCxTQUFLLFdBQVc7QUFBQSxFQUNsQjtBQUFBLEVBRVEsU0FBbUI7QUFBQSxFQUVuQixXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLWCxjQUFjO0FBQ3BCLFNBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNBLE9BQWMsR0FBTSxPQUEyQjtBQUM3QyxVQUFNLFVBQVUsSUFBSSxhQUFnQjtBQUNwQyxZQUFRLFFBQVE7QUFDaEIsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsUUFBNEI7QUFDeEMsV0FBTyxJQUFJLGFBQWdCO0FBQUEsRUFDN0I7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-dev-utils",
3
- "version": "70.3.0",
3
+ "version": "70.4.0",
4
4
  "description": "This is the collection of useful functions that you can use for your Obsidian plugin development.",
5
5
  "keywords": [
6
6
  "obsidian"