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.
@@ -1,8 +1,6 @@
1
- import type { Collectable } from "./collectable";
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 { BiFunctional, BiPredicate, Functional, Predicate, Supplier, TriFunctional, Generator } from "./utility";
3
- export declare let animationFrame: Functional<number, Semantic<number>> & BiFunctional<number, number, Semantic<number>>;
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 attribute: <T extends object>(target: T) => Semantic<Attribute<T>>;
9
- export declare let blob: Functional<Blob, Semantic<Uint8Array>> & BiFunctional<Blob, bigint, Semantic<Uint8Array>>;
10
- export declare let empty: <E>() => Semantic<E>;
11
- type KeyOfEventMap<T extends Window | Document | HTMLElement> = T extends Window ? keyof WindowEventMap : (T extends Document ? keyof DocumentEventMap : (T extends HTMLElement ? keyof HTMLElementEventMap : never));
12
- type ValueOfEventMap<T extends Window | Document | HTMLElement, K extends KeyOfEventMap<T>> = T extends Window ? (K extends keyof WindowEventMap ? WindowEventMap[K] : never) : (T extends Document ? (K extends keyof DocumentEventMap ? DocumentEventMap[K] : never) : (T extends HTMLElement ? (K extends keyof HTMLElementEventMap ? HTMLElementEventMap[K] : never) : never));
13
- interface EventFunction {
14
- <E extends Window, K extends KeyOfEventMap<E>, V = ValueOfEventMap<E, K>>(target: E, key: K): Semantic<V>;
15
- <E extends Window, K extends KeyOfEventMap<E>, V = ValueOfEventMap<E, K>>(target: E, key: Iterable<K>): Semantic<V>;
16
- <E extends Document, K extends KeyOfEventMap<E>, V = ValueOfEventMap<E, K>>(target: E, key: K): Semantic<V>;
17
- <E extends Document, K extends KeyOfEventMap<E>, V = ValueOfEventMap<E, K>>(target: E, key: Iterable<K>): Semantic<V>;
18
- <E extends Document, K extends KeyOfEventMap<E>, V = ValueOfEventMap<E, K>>(target: E, key: Iterable<K>): Semantic<V>;
19
- <E extends HTMLElement, K extends KeyOfEventMap<E>, V = ValueOfEventMap<E, K>>(target: E, key: K): Semantic<V>;
20
- <E extends HTMLElement, K extends KeyOfEventMap<E>, V = ValueOfEventMap<E, K>>(target: E, key: Iterable<K>): Semantic<V>;
21
- <E extends HTMLElement, K extends KeyOfEventMap<E>, V = ValueOfEventMap<E, K>>(target: Iterable<E>, key: K): Semantic<V>;
22
- <E extends HTMLElement, K extends KeyOfEventMap<E>, V = ValueOfEventMap<E, K>>(target: Iterable<E>, key: Iterable<K>): Semantic<V>;
23
- }
24
- export declare let event: EventFunction;
25
- export declare let fill: (<E>(element: E, count: bigint) => Semantic<E>) & (<E>(supplier: Supplier<E>, count: bigint) => Semantic<E>);
26
- export interface From {
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 from: From;
31
- export declare let generate: (<E>(supplier: Supplier<E>, interrupt: Predicate<E>) => Semantic<E>) & (<E>(supplier: Supplier<E>, interrupt: BiPredicate<E, bigint>) => Semantic<E>);
32
- export declare let interval: Functional<number, Semantic<number>> & BiFunctional<number, number, Semantic<number>>;
33
- export declare let iterate: <E>(generator: Generator<E>) => Semantic<E>;
34
- export declare let promise: (<T>(promise: Promise<T>) => Semantic<T>);
35
- export declare let range: BiFunctional<number, number, Semantic<number>> & TriFunctional<number, number, number, Semantic<number>>;
36
- export declare let websocket: Functional<WebSocket, Semantic<MessageEvent | CloseEvent | Event>>;
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 {};