@gesslar/toolkit 1.2.0 → 1.5.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/package.json +1 -1
- package/src/browser/index.js +3 -1
- package/src/browser/lib/Data.js +7 -0
- package/src/browser/lib/{Disposable.js → Disposer.js} +41 -4
- package/src/browser/lib/HTML.js +3 -1
- package/src/browser/lib/Hook.js +82 -0
- package/src/browser/lib/Util.js +11 -1
- package/src/browser/lib/test.js +25 -0
- package/src/browser/lib/test2.js +46 -0
- package/src/index.js +2 -1
- package/src/types/browser/index.d.ts +2 -2
- package/src/types/browser/lib/Data.d.ts.map +1 -1
- package/src/types/browser/lib/Disposable.d.ts +30 -28
- package/src/types/browser/lib/Disposable.d.ts.map +10 -1
- package/src/types/browser/lib/Disposer.d.ts +39 -0
- package/src/types/browser/lib/Disposer.d.ts.map +1 -0
- package/src/types/browser/lib/HTML.d.ts +3 -1
- package/src/types/browser/lib/Hook.d.ts +11 -0
- package/src/types/browser/lib/Hook.d.ts.map +1 -0
- package/src/types/browser/lib/Util.d.ts +1 -0
- package/src/types/browser/lib/Util.d.ts.map +1 -1
- package/src/types/browser/lib/test.d.ts +2 -0
- package/src/types/browser/lib/test.d.ts.map +1 -0
- package/src/types/browser/lib/test2.d.ts +2 -0
- package/src/types/browser/lib/test2.d.ts.map +1 -0
- package/src/types/index.d.ts +1 -1
- package/src/types/lib/Disposable.d.ts +28 -28
- package/src/types/lib/Disposable.d.ts.map +10 -1
- package/src/types/browser/lib/Base.d.ts +0 -45
- package/src/types/browser/lib/Base.d.ts.map +0 -1
package/package.json
CHANGED
package/src/browser/index.js
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
export {default as Collection} from "./lib/Collection.js"
|
|
5
5
|
export {default as Data} from "./lib/Data.js"
|
|
6
|
-
export {default as
|
|
6
|
+
export {default as Disposer} from "./lib/Disposer.js"
|
|
7
|
+
export {Disposer as DisposerClass} from "./lib/Disposer.js"
|
|
7
8
|
export {default as HTML} from "./lib/HTML.js"
|
|
9
|
+
export {HTML as HTMLClass} from "./lib/HTML.js"
|
|
8
10
|
export {default as Notify} from "./lib/Notify.js"
|
|
9
11
|
export {default as Sass} from "./lib/Sass.js"
|
|
10
12
|
export {default as Tantrum} from "./lib/Tantrum.js"
|
package/src/browser/lib/Data.js
CHANGED
|
@@ -27,6 +27,7 @@ export default class Data {
|
|
|
27
27
|
"Undefined",
|
|
28
28
|
|
|
29
29
|
// Object Categories from typeof
|
|
30
|
+
"AsyncFunction",
|
|
30
31
|
"Function",
|
|
31
32
|
"Object",
|
|
32
33
|
])
|
|
@@ -40,6 +41,7 @@ export default class Data {
|
|
|
40
41
|
static constructors = Object.freeze([
|
|
41
42
|
// Object Constructors
|
|
42
43
|
"Array",
|
|
44
|
+
"AsyncFunction",
|
|
43
45
|
"Date",
|
|
44
46
|
"Error",
|
|
45
47
|
"Float32Array",
|
|
@@ -190,6 +192,11 @@ export default class Data {
|
|
|
190
192
|
if(type === "object")
|
|
191
193
|
return value.constructor.name
|
|
192
194
|
|
|
195
|
+
if(type === "function") {
|
|
196
|
+
if(value.constructor.name === "AsyncFunction")
|
|
197
|
+
return "AsyncFunction"
|
|
198
|
+
}
|
|
199
|
+
|
|
193
200
|
const [first, ...rest] = Array.from(type)
|
|
194
201
|
|
|
195
202
|
return `${first?.toLocaleUpperCase() ?? ""}${rest.join("")}`
|
|
@@ -1,18 +1,41 @@
|
|
|
1
|
+
import Valid from "./Valid.js"
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Simple lifecycle helper that tracks disposer callbacks.
|
|
3
5
|
* Register any teardown functions and call dispose() to run them in reverse.
|
|
4
6
|
*/
|
|
5
|
-
export
|
|
7
|
+
export class Disposer {
|
|
6
8
|
#disposers = []
|
|
7
9
|
#disposed = false
|
|
10
|
+
#noop = () => {}
|
|
8
11
|
|
|
9
12
|
/**
|
|
10
13
|
* Registers a disposer callback to be executed when disposed.
|
|
11
14
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
15
|
+
* Accepts one or more callbacks (or a single array) and returns matching
|
|
16
|
+
* unregisters. A single disposer returns a single unregister for
|
|
17
|
+
* convenience.
|
|
18
|
+
*
|
|
19
|
+
* @param {...(() => void)|Array<() => void>} disposers - Cleanup callbacks.
|
|
20
|
+
* @returns {(() => void)|Array<() => void>} Unregister function(s).
|
|
14
21
|
*/
|
|
15
|
-
|
|
22
|
+
register(...disposers) {
|
|
23
|
+
const normalized = this.#normalizeDisposers(disposers)
|
|
24
|
+
|
|
25
|
+
if(this.#disposed) {
|
|
26
|
+
return normalized.length === 1
|
|
27
|
+
? this.#noop
|
|
28
|
+
: normalized.map(() => this.#noop)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const unregisters = normalized.map(
|
|
32
|
+
disposer => this.#registerDisposer(disposer)
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
return unregisters.length === 1 ? unregisters[0] : unregisters
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
#registerDisposer(disposer) {
|
|
16
39
|
if(this.#disposed || typeof disposer !== "function")
|
|
17
40
|
return () => {}
|
|
18
41
|
|
|
@@ -46,6 +69,18 @@ export default class Disposable {
|
|
|
46
69
|
throw new AggregateError(errors, "Errors occurred during disposal.")
|
|
47
70
|
}
|
|
48
71
|
|
|
72
|
+
#normalizeDisposers(disposers) {
|
|
73
|
+
const normalized = (
|
|
74
|
+
disposers.length === 1 && Array.isArray(disposers[0])
|
|
75
|
+
? disposers[0]
|
|
76
|
+
: disposers
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
Valid.type(normalized, "Function[]")
|
|
80
|
+
|
|
81
|
+
return normalized
|
|
82
|
+
}
|
|
83
|
+
|
|
49
84
|
/**
|
|
50
85
|
* Whether disposal has run.
|
|
51
86
|
*
|
|
@@ -71,3 +106,5 @@ export default class Disposable {
|
|
|
71
106
|
this.#disposers.splice(index, 1)
|
|
72
107
|
}
|
|
73
108
|
}
|
|
109
|
+
|
|
110
|
+
export default new Disposer()
|
package/src/browser/lib/HTML.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import DOMPurify from "./vendor/dompurify.esm.js"
|
|
2
2
|
import Sass from "./Sass.js"
|
|
3
3
|
|
|
4
|
-
export
|
|
4
|
+
export class HTML {
|
|
5
5
|
#domPurify
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -135,3 +135,5 @@ export default class HTML {
|
|
|
135
135
|
throw Sass.new("DOMPurify sanitization is unavailable in this environment.")
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
+
|
|
139
|
+
export default new HTML()
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import Sass from "./Sass.js"
|
|
2
|
+
import Valid from "./Valid.js"
|
|
3
|
+
|
|
4
|
+
class PipeClass {
|
|
5
|
+
name = "Pipe"
|
|
6
|
+
|
|
7
|
+
#lastResult
|
|
8
|
+
#it = 0
|
|
9
|
+
|
|
10
|
+
constructor(func) {
|
|
11
|
+
Valid.type(func, "Function|AsyncFunction|Promise")
|
|
12
|
+
|
|
13
|
+
this.#processStart(func)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static source(func) {
|
|
17
|
+
return new this(func)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async then(func) {
|
|
21
|
+
if(++this.it > 2)
|
|
22
|
+
throw new Error("hi")
|
|
23
|
+
|
|
24
|
+
console.log("then", this.#lastResult, "func", func)
|
|
25
|
+
|
|
26
|
+
this.#lastResult =
|
|
27
|
+
this.#lastResult.then(prev => this.#resolve(func, prev))
|
|
28
|
+
|
|
29
|
+
return this
|
|
30
|
+
/*
|
|
31
|
+
|
|
32
|
+
this.#processThen(func)
|
|
33
|
+
|
|
34
|
+
return this
|
|
35
|
+
*/
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get value() {
|
|
39
|
+
return this.#processResult()
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#processStart(func) {
|
|
43
|
+
console.log("start", func)
|
|
44
|
+
|
|
45
|
+
this.#lastResult = Promise.resolve(this.#resolve(func))
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
#processThen(func) {
|
|
49
|
+
if(++this.#it > 2)
|
|
50
|
+
throw new Error("hi")
|
|
51
|
+
|
|
52
|
+
this.#lastResult = this.#lastResult.then(prev => this.#resolve(func, prev))
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
#processResult() {
|
|
56
|
+
const result = this.#lastResult
|
|
57
|
+
this.#lastResult = undefined
|
|
58
|
+
|
|
59
|
+
return result
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
#resolve = (val, prev) => typeof val === "function" ? val(prev) : val
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export default new Proxy(PipeClass, {
|
|
66
|
+
apply(target, _, argumentsList) {
|
|
67
|
+
return target.source(...argumentsList)
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
construct(..._) {
|
|
71
|
+
throw new Sass("This class may not be instantiated in this manner.")
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
get(target, prop) {
|
|
75
|
+
// Hide 'source' method from public API
|
|
76
|
+
if(prop === "source") {
|
|
77
|
+
return undefined
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return Reflect.get(target, prop)
|
|
81
|
+
}
|
|
82
|
+
})
|
package/src/browser/lib/Util.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import Collection from "./Collection.js"
|
|
2
|
+
import Data from "./Data.js"
|
|
1
3
|
import Sass from "./Sass.js"
|
|
2
4
|
import Valid from "./Valid.js"
|
|
3
|
-
import Collection from "./Collection.js"
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Utility class providing common helper functions for string manipulation,
|
|
@@ -254,4 +255,13 @@ export default class Util {
|
|
|
254
255
|
.join("")
|
|
255
256
|
, flags?.join(""))
|
|
256
257
|
}
|
|
258
|
+
|
|
259
|
+
static disasyncify(func) {
|
|
260
|
+
Valid.type(func, "Function|AsyncFunction")
|
|
261
|
+
|
|
262
|
+
if(Data.isType(func, "Function"))
|
|
263
|
+
return func
|
|
264
|
+
|
|
265
|
+
return (async(...arg) => await func(...arg))()
|
|
266
|
+
}
|
|
257
267
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {setTimeout as timeout} from "node:timers/promises"
|
|
2
|
+
import Pipe from "./Hook.js"
|
|
3
|
+
import Disposer from "./Disposer.js"
|
|
4
|
+
|
|
5
|
+
const step1 = () => 1
|
|
6
|
+
const step2 = num => num+1
|
|
7
|
+
const step3 = num => num+1
|
|
8
|
+
const step4 = async num => {
|
|
9
|
+
console.log("Waiting for",num,typeof num)
|
|
10
|
+
await timeout(5_000)
|
|
11
|
+
|
|
12
|
+
return num + 1
|
|
13
|
+
}
|
|
14
|
+
const step5 = num => num+1
|
|
15
|
+
const step6 = num => num+1
|
|
16
|
+
|
|
17
|
+
const result = await Pipe(step1)
|
|
18
|
+
.then(step2)
|
|
19
|
+
.then(step3)
|
|
20
|
+
.then(step4)
|
|
21
|
+
.then(step5)
|
|
22
|
+
.then(step6)
|
|
23
|
+
.result
|
|
24
|
+
|
|
25
|
+
console.log("result", result)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {setTimeout as timeout} from "node:timers/promises"
|
|
2
|
+
|
|
3
|
+
const step1 = () => 1
|
|
4
|
+
const step2 = num => num+1
|
|
5
|
+
const step3 = num => num+1
|
|
6
|
+
const step4 = async num => {
|
|
7
|
+
console.log("Waiting for",num,typeof num)
|
|
8
|
+
await timeout(5_000)
|
|
9
|
+
|
|
10
|
+
return num + 1
|
|
11
|
+
}
|
|
12
|
+
const step5 = num => num+1
|
|
13
|
+
const step6 = num => num+1
|
|
14
|
+
|
|
15
|
+
function Pipe(initialPromise) {
|
|
16
|
+
console.log("start", initialPromise)
|
|
17
|
+
|
|
18
|
+
const resolve = (val, prev) =>
|
|
19
|
+
typeof val === "function" ? val(prev) : val
|
|
20
|
+
|
|
21
|
+
let chain = Promise.resolve(resolve(initialPromise))
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
then(promiseOrFn) {
|
|
25
|
+
console.log("then", chain, "func", promiseOrFn)
|
|
26
|
+
|
|
27
|
+
chain = chain.then(prev => resolve(promiseOrFn, prev))
|
|
28
|
+
|
|
29
|
+
return this
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
get result() {
|
|
33
|
+
return chain
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const result = await Pipe(step1)
|
|
39
|
+
.then(step2)
|
|
40
|
+
.then(step3)
|
|
41
|
+
.then(step4)
|
|
42
|
+
.then(step5)
|
|
43
|
+
.then(step6)
|
|
44
|
+
.result
|
|
45
|
+
|
|
46
|
+
console.log("result", result)
|
package/src/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Browser-compatible utilities (pure JS)
|
|
2
2
|
export {default as Collection} from "./browser/lib/Collection.js"
|
|
3
3
|
export {default as Data} from "./browser/lib/Data.js"
|
|
4
|
-
export {default as
|
|
4
|
+
export {default as Disposer} from "./browser/lib/Disposer.js"
|
|
5
|
+
export {Disposer as DisposerClass} from "./browser/lib/Disposer.js"
|
|
5
6
|
export {default as Type} from "./browser/lib/TypeSpec.js"
|
|
6
7
|
export {default as Valid} from "./lib/Valid.js"
|
|
7
8
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export { default as Collection } from "./lib/Collection.js";
|
|
2
2
|
export { default as Data } from "./lib/Data.js";
|
|
3
|
-
export { default as Disposable } from "./lib/Disposable.js";
|
|
4
|
-
export { default as HTML } from "./lib/HTML.js";
|
|
5
3
|
export { default as Notify } from "./lib/Notify.js";
|
|
6
4
|
export { default as Sass } from "./lib/Sass.js";
|
|
7
5
|
export { default as Tantrum } from "./lib/Tantrum.js";
|
|
8
6
|
export { default as Type } from "./lib/TypeSpec.js";
|
|
9
7
|
export { default as Util } from "./lib/Util.js";
|
|
10
8
|
export { default as Valid } from "./lib/Valid.js";
|
|
9
|
+
export { default as Disposer, Disposer as DisposerClass } from "./lib/Disposer.js";
|
|
10
|
+
export { default as HTML, HTML as HTMLClass } from "./lib/HTML.js";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../browser/lib/Data.js"],"names":[],"mappings":"AAUA;IACA;;;;;OAKG;IACD,mBAFQ,KAAK,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../browser/lib/Data.js"],"names":[],"mappings":"AAUA;IACA;;;;;OAKG;IACD,mBAFQ,KAAK,CAAC,MAAM,CAAC,CAiBnB;IAEF;;;;;OAKG;IACH,qBAFU,KAAK,CAAC,MAAM,CAAC,CAoBrB;IAEF;;;;;;;OAOG;IACH,kBAFU,KAAK,CAAC,MAAM,CAAC,CAKrB;IAEF;;;;;OAKG;IACH,uBAFU,KAAK,CAAC,MAAM,CAAC,CAE6C;IAEpE;;;;;;OAMG;IACH,4BAJW,MAAM,UACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,6BAJW,MAAM,WACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,2BAJW,MAAM,WACN,MAAM,GACJ,KAAK,CAAC,MAAM,CAAC,CAIzB;IAED;;;;;;;OAOG;IACH,qBALW,OAAO,QACP,MAAM,GAAC,QAAQ,YACf,MAAM,GACJ,OAAO,CAQnB;IAED;;;;;OAKG;IACH,yBAHW,MAAM,GACJ,OAAO,CASnB;IAED;;;;;;;;OAQG;IACH,yBAJW,OAAO,QACP,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;OAKG;IACH,qBAHW,OAAO,GACL,MAAM,CAmBlB;IAED;;;;;OAKG;IACH,wBAHW,OAAO,GACL,OAAO,CAInB;IAED;;;;;;;;OAQG;IACH,sBALW,OAAO,oBACP,OAAO,GAEL,OAAO,CA2BnB;IAED;;;;;OAKG;IACH,6BAHW,MAAM,GACJ,MAAM,CAmBlB;IAED;;;;;;;OAOG;IACH,6BAJW,MAAM,QACN,KAAK,CAAC,MAAM,CAAC,GACX,MAAM,CAiBlB;IAED;;;;;;;OAOG;IACH,2BAJW,MAAM,QACN,KAAK,CAAC,MAAM,CAAC,SACb,OAAO,QAMjB;IAED;;;;;OAKG;IACH,+BAHc,MAAM,EAAA,GACP,MAAM,CAqBlB;IAED;;;;;;;OAOG;IACH,wBAJW,KAAK,CAAC,OAAO,CAAC,aACd,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAMnC;IAED;;;;;;;OAOG;IACH,kBALW,MAAM,OACN,MAAM,OACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,oBALW,MAAM,OACN,MAAM,OACN,MAAM,GACJ,OAAO,CAInB;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,4BAbW,OAAO,GACL,OAAO,CA+BnB;IAED;;;;;;;;;;;;;;;OAeG;IACH,uBAXW,OAAO,GACL,OAAO,CAgBnB;CACF;qBAnboB,eAAe"}
|
|
@@ -2,32 +2,34 @@
|
|
|
2
2
|
* Simple lifecycle helper that tracks disposer callbacks.
|
|
3
3
|
* Register any teardown functions and call dispose() to run them in reverse.
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
5
|
+
export class Disposer {
|
|
6
|
+
/**
|
|
7
|
+
* Registers a disposer callback to be executed when disposed.
|
|
8
|
+
*
|
|
9
|
+
* @param {...(() => void)|Array<() => void>} disposers - Cleanup callbacks.
|
|
10
|
+
* @returns {(() => void)|Array<() => void>} Function(s) to unregister the disposer(s).
|
|
11
|
+
*/
|
|
12
|
+
register(...disposers: Array<(() => void) | Array<() => void>>): (() => void) | Array<() => void>;
|
|
13
|
+
/**
|
|
14
|
+
* Runs all registered disposers in reverse order.
|
|
15
|
+
*
|
|
16
|
+
* @returns {void}
|
|
17
|
+
*/
|
|
18
|
+
dispose(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Whether disposal has run.
|
|
21
|
+
*
|
|
22
|
+
* @returns {boolean} True when dispose() has already been called.
|
|
23
|
+
*/
|
|
24
|
+
get disposed(): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Read-only list of registered disposers.
|
|
27
|
+
*
|
|
28
|
+
* @returns {Array<() => void>} Snapshot of disposer callbacks.
|
|
29
|
+
*/
|
|
30
|
+
get disposers(): Array<() => void>;
|
|
31
|
+
#private;
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
declare const _default: Disposer;
|
|
34
|
+
export default _default;
|
|
35
|
+
//# sourceMappingURL=Disposer.d.ts.map
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"file": "Disposer.d.ts",
|
|
4
|
+
"sourceRoot": "",
|
|
5
|
+
"sources": [
|
|
6
|
+
"../../../browser/lib/Disposer.js"
|
|
7
|
+
],
|
|
8
|
+
"names": [],
|
|
9
|
+
"mappings": "AAAA;;;GAGG;AACH;IAIE;;;;;OAKG;IACH,2BAHW,MAAM,IAAI,GACR,MAAM,IAAI,CAStB;IAED;;;;OAIG;IACH,WAFa,IAAI,CAoBhB;IAED;;;;OAIG;IACH,gBAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,iBAFa,KAAK,CAAC,MAAM,IAAI,CAAC,CAI7B;;CAQF"
|
|
10
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple lifecycle helper that tracks disposer callbacks.
|
|
3
|
+
* Register any teardown functions and call dispose() to run them in reverse.
|
|
4
|
+
*/
|
|
5
|
+
export class Disposer {
|
|
6
|
+
/**
|
|
7
|
+
* Registers a disposer callback to be executed when disposed.
|
|
8
|
+
*
|
|
9
|
+
* Accepts one or more callbacks (or a single array) and returns matching
|
|
10
|
+
* unregisters. A single disposer returns a single unregister for
|
|
11
|
+
* convenience.
|
|
12
|
+
*
|
|
13
|
+
* @param {...(() => void)|Array<() => void>} disposers - Cleanup callbacks.
|
|
14
|
+
* @returns {(() => void)|Array<() => void>} Unregister function(s).
|
|
15
|
+
*/
|
|
16
|
+
register(...disposers: ((() => void) | Array<() => void>)[]): (() => void) | Array<() => void>;
|
|
17
|
+
/**
|
|
18
|
+
* Runs all registered disposers in reverse order.
|
|
19
|
+
*
|
|
20
|
+
* @returns {void}
|
|
21
|
+
*/
|
|
22
|
+
dispose(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Whether disposal has run.
|
|
25
|
+
*
|
|
26
|
+
* @returns {boolean} True when dispose() has already been called.
|
|
27
|
+
*/
|
|
28
|
+
get disposed(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Read-only list of registered disposers.
|
|
31
|
+
*
|
|
32
|
+
* @returns {Array<() => void>} Snapshot of disposer callbacks.
|
|
33
|
+
*/
|
|
34
|
+
get disposers(): Array<() => void>;
|
|
35
|
+
#private;
|
|
36
|
+
}
|
|
37
|
+
declare const _default: Disposer;
|
|
38
|
+
export default _default;
|
|
39
|
+
//# sourceMappingURL=Disposer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Disposer.d.ts","sourceRoot":"","sources":["../../../browser/lib/Disposer.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IAKE;;;;;;;;;OASG;IACH,uBAHW,CAAG,CAAC,MAAM,IAAI,CAAC,GAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAA,GAC/B,CAAC,MAAM,IAAI,CAAC,GAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAgB1C;IAWD;;;;OAIG;IACH,WAFa,IAAI,CAoBhB;IAcD;;;;OAIG;IACH,gBAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,iBAFa,KAAK,CAAC,MAAM,IAAI,CAAC,CAI7B;;CAQF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export class HTML {
|
|
2
2
|
/**
|
|
3
3
|
* Lightweight HTML helper utilities for browser contexts.
|
|
4
4
|
*
|
|
@@ -35,4 +35,6 @@ export default class HTML {
|
|
|
35
35
|
clearHTMLContent(element: Element): void;
|
|
36
36
|
#private;
|
|
37
37
|
}
|
|
38
|
+
declare const _default: HTML;
|
|
39
|
+
export default _default;
|
|
38
40
|
//# sourceMappingURL=HTML.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const _default: typeof PipeClass;
|
|
2
|
+
export default _default;
|
|
3
|
+
declare class PipeClass {
|
|
4
|
+
static source(func: any): PipeClass;
|
|
5
|
+
constructor(func: any);
|
|
6
|
+
name: string;
|
|
7
|
+
then(func: any): Promise<this>;
|
|
8
|
+
get value(): any;
|
|
9
|
+
#private;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=Hook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hook.d.ts","sourceRoot":"","sources":["../../../browser/lib/Hook.js"],"names":[],"mappings":";;AAGA;IAYE,oCAEC;IARD,uBAIC;IATD,aAAa;IAeb,+BAgBC;IAED,iBAEC;;CAuBF"}
|
|
@@ -125,5 +125,6 @@ export default class Util {
|
|
|
125
125
|
*/
|
|
126
126
|
static findClosestMatch(input: string, allowedValues: Array<string>, threshold?: number): string;
|
|
127
127
|
static regexify(input: any, trim?: boolean, flags?: any[]): RegExp;
|
|
128
|
+
static disasyncify(func: any): any;
|
|
128
129
|
}
|
|
129
130
|
//# sourceMappingURL=Util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../browser/lib/Util.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../browser/lib/Util.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH;IACE;;;;;OAKG;IACH,wBAHW,MAAM,GACJ,MAAM,CAYlB;IAED;;;;;;OAMG;IACH,YAJa,CAAC,MACH,MAAM,OAAO,CAAC,CAAC,CAAC,GACd,OAAO,CAAC;QAAC,MAAM,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAQ9C;IAED;;;;;;;OAOG;IACH,4BAJW,MAAM,GAAC,MAAM,UACb,MAAM,GACJ,MAAM,CAWlB;IAED;;;;;;;OAOG;IACH,6BAJW,MAAM,GAAC,MAAM,UACb,MAAM,GACJ,MAAM,CAalB;IAED;;;;;;OAMG;IACH,0BAHW,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GACrB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAInC;IAED;;;;;;OAMG;IACH,2BAHW,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GACrB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAIlC;IAED;;;;;OAKG;IACH,2BAHW,KAAK,CAAC,MAAM,CAAC,GACX,OAAO,CAInB;IAED;;;;;OAKG;IACH,kCAHW,KAAK,CAAC,MAAM,CAAC,GACX,KAAK,CAAC,MAAM,CAAC,CAIzB;IAED;;;;;OAKG;IACH,iCAHW,KAAK,CAAC,MAAM,CAAC,GACX,KAAK,CAAC,OAAO,CAAC,CAI1B;IAED;;;;;;OAMG;IACH,gCAJW,MAAM,YACN,KAAK,CAAC,MAAM,CAAC,QAKvB;IAED;;;;;OAKG;IACH,mCAHW,KAAK,CAAC,MAAM,CAAC,GACX,KAAK,CAAC,MAAM,CAAC,CAIzB;IAED;;;;;OAKG;IACH,+BAHW,KAAK,CAAC,MAAM,CAAC,GACX,KAAK,CAAC,OAAO,CAAC,CAI1B;IAED;;;;;;OAMG;IACH,sBAHW,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GACrB,OAAO,CAAC,OAAO,CAAC,CAI5B;IAED;;;;;;OAMG;IACH,8BAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAsBlB;IAED;;;;;;;;OAQG;IACH,+BALW,MAAM,iBACN,KAAK,CAAC,MAAM,CAAC,cACb,MAAM,GACJ,MAAM,CAwBlB;IAED,mEAiBC;IAED,mCAOC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../browser/lib/test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test2.d.ts","sourceRoot":"","sources":["../../../browser/lib/test2.js"],"names":[],"mappings":""}
|
package/src/types/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { default as Collection } from "./browser/lib/Collection.js";
|
|
2
2
|
export { default as Data } from "./browser/lib/Data.js";
|
|
3
|
-
export { default as Disposable } from "./browser/lib/Disposable.js";
|
|
4
3
|
export { default as Type } from "./browser/lib/TypeSpec.js";
|
|
5
4
|
export { default as Valid } from "./lib/Valid.js";
|
|
6
5
|
export { default as Sass } from "./lib/Sass.js";
|
|
@@ -15,4 +14,5 @@ export { default as Glog } from "./lib/Glog.js";
|
|
|
15
14
|
export { default as Schemer } from "./lib/Schemer.js";
|
|
16
15
|
export { default as Term } from "./lib/Term.js";
|
|
17
16
|
export { default as Terms } from "./lib/Terms.js";
|
|
17
|
+
export { default as Disposer, Disposer as DisposerClass } from "./browser/lib/Disposer.js";
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -2,32 +2,32 @@
|
|
|
2
2
|
* Simple lifecycle helper that tracks disposer callbacks.
|
|
3
3
|
* Register any teardown functions and call dispose() to run them in reverse.
|
|
4
4
|
*/
|
|
5
|
-
export default class
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
5
|
+
export default class Disposer {
|
|
6
|
+
/**
|
|
7
|
+
* Registers a disposer callback to be executed when disposed.
|
|
8
|
+
*
|
|
9
|
+
* @param {...(() => void)|Array<() => void>} disposers - Cleanup callbacks.
|
|
10
|
+
* @returns {(() => void)|Array<() => void>} Function(s) to unregister the disposer(s).
|
|
11
|
+
*/
|
|
12
|
+
register(...disposers: Array<(() => void) | Array<() => void>>): (() => void) | Array<() => void>;
|
|
13
|
+
/**
|
|
14
|
+
* Runs all registered disposers in reverse order.
|
|
15
|
+
*
|
|
16
|
+
* @returns {void}
|
|
17
|
+
*/
|
|
18
|
+
dispose(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Whether disposal has run.
|
|
21
|
+
*
|
|
22
|
+
* @returns {boolean} True when dispose() has already been called.
|
|
23
|
+
*/
|
|
24
|
+
get disposed(): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Read-only list of registered disposers.
|
|
27
|
+
*
|
|
28
|
+
* @returns {Array<() => void>} Snapshot of disposer callbacks.
|
|
29
|
+
*/
|
|
30
|
+
get disposers(): Array<() => void>;
|
|
31
|
+
#private;
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=Disposer.d.ts.map
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"file": "Disposer.d.ts",
|
|
4
|
+
"sourceRoot": "",
|
|
5
|
+
"sources": [
|
|
6
|
+
"../../lib/Disposer.js"
|
|
7
|
+
],
|
|
8
|
+
"names": [],
|
|
9
|
+
"mappings": "AAAA;;;GAGG;AACH;IAIE;;;;;OAKG;IACH,2BAHW,MAAM,IAAI,GACR,MAAM,IAAI,CAStB;IAED;;;;OAIG;IACH,WAFa,IAAI,CAoBhB;IAED;;;;OAIG;IACH,gBAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,iBAFa,KAAK,CAAC,MAAM,IAAI,CAAC,CAI7B;;CAQF"
|
|
10
|
+
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base helper for UI classes that want centralized event lifecycles.
|
|
3
|
-
* Tracks listener disposer functions and registered DOM elements so subclasses
|
|
4
|
-
* can easily tear down on removal.
|
|
5
|
-
*/
|
|
6
|
-
export default class Base extends Disposable {
|
|
7
|
-
/**
|
|
8
|
-
* Assigns an HTMLElement to this object.
|
|
9
|
-
*
|
|
10
|
-
* @throws {Error} If there is already one assigned.
|
|
11
|
-
*/
|
|
12
|
-
set element(element: HTMLElement);
|
|
13
|
-
/**
|
|
14
|
-
* Returns the HTMLElement associated with this object.
|
|
15
|
-
*
|
|
16
|
-
* @returns {HTMLElement} The HTMLElement associated with this object.
|
|
17
|
-
*/
|
|
18
|
-
get element(): HTMLElement;
|
|
19
|
-
/**
|
|
20
|
-
* Cleans up registered disposers and emits a removal event for subscribers.
|
|
21
|
-
*
|
|
22
|
-
* @returns {void}
|
|
23
|
-
*/
|
|
24
|
-
remove(): void;
|
|
25
|
-
/**
|
|
26
|
-
* Registers a Notify listener and tracks its disposer for later cleanup.
|
|
27
|
-
*
|
|
28
|
-
* @param {string} eventName - Event to subscribe to.
|
|
29
|
-
* @param {(evt: Event) => void} func - Handler to invoke.
|
|
30
|
-
* @param {HTMLElement | Window} [element] - Target element; defaults to window.
|
|
31
|
-
* @param {boolean | object} [options] - addEventListener options.
|
|
32
|
-
*/
|
|
33
|
-
registerOn(eventName: string, func: (evt: Event) => void, element?: HTMLElement | Window, options?: boolean | object): void;
|
|
34
|
-
/**
|
|
35
|
-
* Resolves a DOM element and optionally registers listener functions on it.
|
|
36
|
-
* Each listener's return value is treated as a disposer and tracked.
|
|
37
|
-
*
|
|
38
|
-
* @param {string} elementId - Selector passed to querySelector.
|
|
39
|
-
* @param {((element: Element) => (void | (() => void))) | Array<(element: Element) => (void | (() => void))>} [listenerFunctions] - One or more listener initializers.
|
|
40
|
-
*/
|
|
41
|
-
initialiseElement(elementId: string, listenerFunctions?: ((element: Element) => (void | (() => void))) | Array<(element: Element) => (void | (() => void))>): void;
|
|
42
|
-
#private;
|
|
43
|
-
}
|
|
44
|
-
import Disposable from "./Disposable.js";
|
|
45
|
-
//# sourceMappingURL=Base.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../../browser/lib/Base.js"],"names":[],"mappings":"AAIA;;;;GAIG;AACH;IAcE;;;;OAIG;IACH,qBAWa,WAAW,EALvB;IAED;;;;OAIG;IACH,eAFa,WAAW,CAIvB;IAED;;;;OAIG;IACH,UAFa,IAAI,CAQhB;IAED;;;;;;;OAOG;IACH,sBALW,MAAM,QACN,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,YACpB,WAAW,GAAG,MAAM,YACpB,OAAO,GAAG,MAAM,QAM1B;IAED;;;;;;OAMG;IACH,6BAHW,MAAM,sBACN,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QA8B5G;;CACF;uBA5GsB,iBAAiB"}
|