semantic-typescript 0.5.0 → 0.5.3
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/dist/collector.d.ts +1 -10
- package/dist/collector.js +1 -20
- package/dist/factory.d.ts +72 -28
- package/dist/factory.js +362 -150
- package/dist/guard.d.ts +1 -14
- package/dist/guard.js +1 -61
- package/dist/hook.d.ts +5 -1
- package/dist/hook.js +72 -19
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/main.d.ts +1 -0
- package/dist/main.js +4 -0
- package/dist/map.js +0 -8
- package/dist/optional.d.ts +3 -3
- package/dist/optional.js +14 -10
- package/dist/semantic.d.ts +204 -2
- package/dist/semantic.js +1134 -10
- package/dist/symbol.d.ts +1 -14
- package/dist/symbol.js +1 -14
- package/dist/utility.d.ts +1 -1
- package/package.json +1 -1
- package/readme.md +492 -282
- package/dist/collectable.d.ts +0 -202
- package/dist/collectable.js +0 -1123
- package/dist/statistics.d.ts +0 -97
- package/dist/statistics.js +0 -483
- package/dist/window.d.ts +0 -12
- package/dist/window.js +0 -72
package/dist/collector.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { HashMap } from "./map";
|
|
1
|
+
import { Collectable } from "./semantic";
|
|
3
2
|
import { Optional } from "./optional";
|
|
4
3
|
import type { Semantic } from "./semantic";
|
|
5
|
-
import { HashSet } from "./set";
|
|
6
4
|
import { type BiFunctional, type BiPredicate, type Functional, type Predicate, type Supplier, type TriFunctional, type Generator, type TriPredicate, type Consumer, type BiConsumer, type Comparator } from "./utility";
|
|
7
5
|
export declare class Collector<E, A, R> {
|
|
8
6
|
protected identity: Supplier<A>;
|
|
@@ -137,14 +135,7 @@ interface UseToMap {
|
|
|
137
135
|
<E, K, V>(keyExtractor: BiFunctional<E, bigint, K>, valueExtractor: BiFunctional<E, bigint, V>): Collector<E, Map<K, V>, Map<K, V>>;
|
|
138
136
|
}
|
|
139
137
|
export declare let useToMap: UseToMap;
|
|
140
|
-
interface UseToHashMap {
|
|
141
|
-
<E, K>(keyExtractor: Functional<E, K>): Collector<E, HashMap<K, E>, HashMap<K, E>>;
|
|
142
|
-
<E, K, V>(keyExtractor: Functional<E, K>, valueExtractor: Functional<E, V>): Collector<E, HashMap<K, V>, HashMap<K, V>>;
|
|
143
|
-
<E, K, V>(keyExtractor: BiFunctional<E, bigint, K>, valueExtractor: BiFunctional<E, bigint, V>): Collector<E, HashMap<K, V>, HashMap<K, V>>;
|
|
144
|
-
}
|
|
145
|
-
export declare let useToHashMap: UseToHashMap;
|
|
146
138
|
export declare let useToSet: <E>() => Collector<E, Set<E>, Set<E>>;
|
|
147
|
-
export declare let useToHashSet: <E>() => Collector<E, HashSet<E>, HashSet<E>>;
|
|
148
139
|
interface UseWrite {
|
|
149
140
|
<E, S = string>(stream: WritableStream<S>): Collector<E, Promise<WritableStream<S>>, Promise<WritableStream<S>>>;
|
|
150
141
|
<E, S = string>(stream: WritableStream<S>, accumulator: BiFunctional<WritableStream<S>, E, WritableStream<S>>): Collector<E, Promise<WritableStream<S>>, Promise<WritableStream<S>>>;
|
package/dist/collector.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import { Collectable } from "./semantic";
|
|
1
2
|
import { isBigInt, isBoolean, isCollectable, isFunction, isIterable, isNumber, isObject, isSemantic, isString } from "./guard";
|
|
2
3
|
import { useCompare, useToBigInt, useToNumber } from "./hook";
|
|
3
|
-
import { HashMap } from "./map";
|
|
4
4
|
import { Optional } from "./optional";
|
|
5
|
-
import { HashSet } from "./set";
|
|
6
5
|
import { CollectableSymbol } from "./symbol";
|
|
7
6
|
import { validate, invalidate } from "./utility";
|
|
8
7
|
export class Collector {
|
|
@@ -451,30 +450,12 @@ export let useToMap = (keyExtractor, valueExtractor = (element) => element) => {
|
|
|
451
450
|
}
|
|
452
451
|
throw new TypeError("Key extractor and value extractor must be functions.");
|
|
453
452
|
};
|
|
454
|
-
;
|
|
455
|
-
export let useToHashMap = (keyExtractor, valueExtractor = (element) => element) => {
|
|
456
|
-
if (isFunction(keyExtractor) && isFunction(valueExtractor)) {
|
|
457
|
-
return Collector.full(() => new HashMap(), (map, element, index) => {
|
|
458
|
-
let key = keyExtractor(element, index);
|
|
459
|
-
let value = valueExtractor(element, index);
|
|
460
|
-
map.set(key, value);
|
|
461
|
-
return map;
|
|
462
|
-
}, (map) => map);
|
|
463
|
-
}
|
|
464
|
-
throw new TypeError("Key extractor and value extractor must be functions.");
|
|
465
|
-
};
|
|
466
453
|
export let useToSet = () => {
|
|
467
454
|
return Collector.full(() => new Set(), (set, element) => {
|
|
468
455
|
set.add(element);
|
|
469
456
|
return set;
|
|
470
457
|
}, (set) => set);
|
|
471
458
|
};
|
|
472
|
-
export let useToHashSet = () => {
|
|
473
|
-
return Collector.full(() => new HashSet(), (set, element) => {
|
|
474
|
-
set.add(element);
|
|
475
|
-
return set;
|
|
476
|
-
}, (set) => set);
|
|
477
|
-
};
|
|
478
459
|
;
|
|
479
460
|
export let useWrite = (argument1, argument2) => {
|
|
480
461
|
if (isObject(argument1)) {
|
package/dist/factory.d.ts
CHANGED
|
@@ -1,37 +1,81 @@
|
|
|
1
|
+
import { Optional } from "./optional";
|
|
1
2
|
import { Semantic } from "./semantic";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
3
|
+
import type { BiPredicate, Predicate, Supplier, Generator, MaybeInvalid } from "./utility";
|
|
4
|
+
interface UseAnimationFrame {
|
|
5
|
+
(period: number): Semantic<number>;
|
|
6
|
+
(period: number, delay: number): Semantic<number>;
|
|
7
|
+
}
|
|
8
|
+
export declare let useAnimationFrame: UseAnimationFrame;
|
|
4
9
|
interface Attribute<T> {
|
|
5
10
|
key: keyof T;
|
|
6
11
|
value: T[keyof T];
|
|
7
12
|
}
|
|
8
|
-
export declare let
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<E extends HTMLElement, K extends
|
|
21
|
-
<E extends HTMLElement, K extends
|
|
22
|
-
<E extends HTMLElement, K extends
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
export declare let useAttribute: <T extends object>(target: T) => Semantic<Attribute<T>>;
|
|
14
|
+
interface UseBlob {
|
|
15
|
+
(blob: Blob): Semantic<Uint8Array>;
|
|
16
|
+
(blob: Blob, chunk: bigint): Semantic<Uint8Array>;
|
|
17
|
+
}
|
|
18
|
+
export declare let useBlob: UseBlob;
|
|
19
|
+
interface UseDocument {
|
|
20
|
+
<K extends keyof DocumentEventMap>(key: K): Semantic<DocumentEventMap[K extends keyof DocumentEventMap ? K : never]>;
|
|
21
|
+
<K extends keyof DocumentEventMap>(key: Iterable<K>): Semantic<DocumentEventMap[K extends keyof DocumentEventMap ? K : never]>;
|
|
22
|
+
}
|
|
23
|
+
export declare let useDocument: UseDocument;
|
|
24
|
+
interface UseHTMLElement {
|
|
25
|
+
<E extends HTMLElement, K extends keyof HTMLElementEventMap>(element: E, key: K): Semantic<HTMLElementEventMap[K extends keyof HTMLElementEventMap ? K : never]>;
|
|
26
|
+
<E extends HTMLElement, K extends keyof HTMLElementEventMap>(element: E, keys: Iterable<K>): Semantic<HTMLElementEventMap[K extends keyof HTMLElementEventMap ? K : never]>;
|
|
27
|
+
<E extends HTMLElement, K extends keyof HTMLElementEventMap>(elements: Iterable<E>, key: K): Semantic<HTMLElementEventMap[K extends keyof HTMLElementEventMap ? K : never]>;
|
|
28
|
+
<E extends HTMLElement, K extends keyof HTMLElementEventMap>(elements: Iterable<E>, keys: Iterable<K>): Semantic<HTMLElementEventMap[K extends keyof HTMLElementEventMap ? K : never]>;
|
|
29
|
+
<S extends keyof HTMLElementTagNameMap, K extends keyof HTMLElementEventMap>(selector: S, key: K): Semantic<HTMLElementEventMap[K extends keyof HTMLElementEventMap ? K : never]>;
|
|
30
|
+
<S extends keyof HTMLElementTagNameMap, K extends keyof HTMLElementEventMap>(selector: S, keys: Iterable<K>): Semantic<HTMLElementEventMap[K extends keyof HTMLElementEventMap ? K : never]>;
|
|
31
|
+
<S extends keyof HTMLElementTagNameMap, K extends keyof HTMLElementEventMap>(selectors: Iterable<S>, key: K): Semantic<HTMLElementEventMap[K extends keyof HTMLElementEventMap ? K : never]>;
|
|
32
|
+
<S extends keyof HTMLElementTagNameMap, K extends keyof HTMLElementEventMap>(selectors: Iterable<S>, keys: Iterable<K>): Semantic<HTMLElementEventMap[K extends keyof HTMLElementEventMap ? K : never]>;
|
|
33
|
+
}
|
|
34
|
+
export declare let useHTMLElement: UseHTMLElement;
|
|
35
|
+
export declare let useEmpty: <E>() => Semantic<E>;
|
|
36
|
+
interface UseFill {
|
|
37
|
+
<E>(element: E, count: bigint): Semantic<E>;
|
|
38
|
+
<E>(supplier: Supplier<E>, count: bigint): Semantic<E>;
|
|
39
|
+
}
|
|
40
|
+
export declare let useFill: UseFill;
|
|
41
|
+
export interface UseFrom {
|
|
27
42
|
<E>(iterable: Iterable<E>): Semantic<E>;
|
|
28
43
|
<E>(iterable: AsyncIterable<E>): Semantic<E>;
|
|
29
44
|
}
|
|
30
|
-
export declare let
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
export declare let
|
|
36
|
-
|
|
45
|
+
export declare let useFrom: UseFrom;
|
|
46
|
+
interface UseGenerate {
|
|
47
|
+
<E>(supplier: Supplier<E>, interrupt: Predicate<E>): Semantic<E>;
|
|
48
|
+
<E>(supplier: Supplier<E>, interrupt: BiPredicate<E, bigint>): Semantic<E>;
|
|
49
|
+
}
|
|
50
|
+
export declare let useGenerate: UseGenerate;
|
|
51
|
+
interface UseInterval {
|
|
52
|
+
(period: number): Semantic<number>;
|
|
53
|
+
(period: number, delay: number): Semantic<number>;
|
|
54
|
+
}
|
|
55
|
+
export declare let useInterval: UseInterval;
|
|
56
|
+
export declare let useIterate: <E>(generator: Generator<E>) => Semantic<E>;
|
|
57
|
+
export declare let usePromise: (<T>(promise: Promise<T>) => Semantic<T>);
|
|
58
|
+
interface UseOf {
|
|
59
|
+
<E>(target: E): Semantic<E>;
|
|
60
|
+
<E>(target: Iterable<E>): Semantic<E>;
|
|
61
|
+
}
|
|
62
|
+
export declare let useOf: UseOf;
|
|
63
|
+
interface UseRange {
|
|
64
|
+
<N extends number | bigint>(start: N, end: N): Semantic<N extends number ? number : (N extends bigint ? bigint : never)>;
|
|
65
|
+
<N extends number | bigint>(start: N, end: N, step: N): Semantic<N extends number ? number : (N extends bigint ? bigint : never)>;
|
|
66
|
+
}
|
|
67
|
+
export declare let useRange: UseRange;
|
|
68
|
+
interface UseWebSocket {
|
|
69
|
+
(websocket: WebSocket): Semantic<WebSocketEventMap[keyof WebSocketEventMap]>;
|
|
70
|
+
<K extends keyof WebSocketEventMap>(websocket: WebSocket, key: K): Semantic<WebSocketEventMap[K extends keyof WebSocketEventMap ? K : never]>;
|
|
71
|
+
<K extends keyof WebSocketEventMap>(websocket: WebSocket, keys: Iterable<K>): Semantic<WebSocketEventMap[K extends keyof WebSocketEventMap ? K : never]>;
|
|
72
|
+
}
|
|
73
|
+
export declare let useWebSocket: UseWebSocket;
|
|
74
|
+
interface UseWindow {
|
|
75
|
+
<K extends keyof WindowEventMap>(key: K): Semantic<WindowEventMap[K extends keyof WindowEventMap ? K : never]>;
|
|
76
|
+
<K extends keyof WindowEventMap>(key: Iterable<K>): Semantic<WindowEventMap[K extends keyof WindowEventMap ? K : never]>;
|
|
77
|
+
}
|
|
78
|
+
export declare let useWindow: UseWindow;
|
|
79
|
+
export declare let useNullable: <T>(target: MaybeInvalid<T>) => Optional<T>;
|
|
80
|
+
export declare let useNonNull: <T>(target: T) => Optional<T>;
|
|
37
81
|
export {};
|