data-structure-typed 1.15.0 → 1.15.1

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 CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "data-structure-typed",
3
- "version": "1.15.0",
3
+ "version": "1.15.1",
4
4
  "description": "Explore our comprehensive Javascript Data Structure / TypeScript Data Structure Library, meticulously crafted to empower developers with a versatile set of essential data structures. Our library includes a wide range of data structures, such as Binary Tree, AVL Tree, Binary Search Tree (BST), Tree Multiset, Segment Tree, Binary Indexed Tree, Graph, Directed Graph, Undirected Graph, Singly Linked List, Hash, CoordinateSet, CoordinateMap, Heap, Doubly Linked List, Priority Queue, Max Priority Queue, Min Priority Queue, Queue, ObjectDeque, ArrayDeque, Stack, and Trie. Each data structure is thoughtfully designed and implemented using TypeScript to provide efficient, reliable, and easy-to-use solutions for your programming needs. Whether you're optimizing algorithms, managing data, or enhancing performance, our TypeScript Data Structure Library is your go-to resource. Elevate your coding experience with these fundamental building blocks for software development.",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
7
  "build": "rm -rf dist && npx tsc",
8
8
  "test": "jest",
9
9
  "build:docs": "typedoc --out docs ./src",
10
- "deps:check": "dependency-cruiser src"
10
+ "deps:check": "dependency-cruiser src",
11
+ "build:publish": "npm run test && npm run build && npm run build:docs && npm run publish"
11
12
  },
12
13
  "repository": {
13
14
  "type": "git",
@@ -1,174 +1,161 @@
1
- export type JSONSerializable = {
2
- [key: string]: any
3
- }
4
- export type JSONValue = string | number | boolean | undefined | JSONObject;
5
-
6
- export interface JSONObject {
7
- [key: string]: JSONValue;
8
- }
9
-
10
- export type AnyFunction<A extends any[] = any[], R = any> = (...args: A) => R;
11
- export type Primitive =
12
- | number
13
- | string
14
- | boolean
15
- | symbol
16
- | undefined
17
- | null
18
- | void
19
- | AnyFunction
20
- | Date;
21
-
22
- export type Cast<T, TComplex> = { [M in keyof TComplex]: T };
23
-
24
-
25
- export type DeepLeavesWrap<T, TComplex> =
26
- T extends string ? Cast<string, TComplex>
27
- : T extends number ? Cast<number, TComplex>
28
- : T extends boolean ? Cast<boolean, TComplex>
29
- : T extends undefined ? Cast<undefined, TComplex>
30
- : T extends null ? Cast<null, TComplex>
31
- : T extends void ? Cast<void, TComplex>
32
- : T extends symbol ? Cast<symbol, TComplex>
33
- : T extends AnyFunction ? Cast<AnyFunction, TComplex>
34
- : T extends Date ? Cast<Date, TComplex>
35
- : {
36
- [K in keyof T]:
37
- T[K] extends (infer U)[] ? DeepLeavesWrap<U, TComplex>[]
38
- : DeepLeavesWrap<T[K], TComplex>;
39
- }
40
-
41
-
42
- type Json = null | string | number | boolean | Json [] | { [name: string]: Json }
43
-
44
- export type TypeName<T> = T extends string
45
- ? 'string'
46
- : T extends number
47
- ? 'number'
48
- : T extends boolean
49
- ? 'boolean'
50
- : T extends undefined
51
- ? 'undefined'
52
- : T extends AnyFunction
53
- ? 'function'
54
- : 'object';
55
-
56
- export type JsonKeys<T> = keyof {
57
- [P in keyof T]: number
58
- }
59
-
60
- const arr = ['1', 2, 4, 5, 6] as const;
61
- type Range = typeof arr[number];
62
- const a: Range = 2;
63
-
1
+ // export type JSONSerializable = {
2
+ // [key: string]: any
3
+ // }
4
+
5
+ // export type JSONValue = string | number | boolean | undefined | JSONObject;
6
+ //
7
+ // export interface JSONObject {
8
+ // [key: string]: JSONValue;
9
+ // }
10
+ //
11
+ // export type AnyFunction<A extends any[] = any[], R = any> = (...args: A) => R;
12
+
13
+ // export type Primitive =
14
+ // | number
15
+ // | string
16
+ // | boolean
17
+ // | symbol
18
+ // | undefined
19
+ // | null
20
+ // | void
21
+ // | AnyFunction
22
+ // | Date;
23
+
24
+ // export type Cast<T, TComplex> = { [M in keyof TComplex]: T };
25
+
26
+ // export type DeepLeavesWrap<T, TComplex> =
27
+ // T extends string ? Cast<string, TComplex>
28
+ // : T extends number ? Cast<number, TComplex>
29
+ // : T extends boolean ? Cast<boolean, TComplex>
30
+ // : T extends undefined ? Cast<undefined, TComplex>
31
+ // : T extends null ? Cast<null, TComplex>
32
+ // : T extends void ? Cast<void, TComplex>
33
+ // : T extends symbol ? Cast<symbol, TComplex>
34
+ // : T extends AnyFunction ? Cast<AnyFunction, TComplex>
35
+ // : T extends Date ? Cast<Date, TComplex>
36
+ // : {
37
+ // [K in keyof T]:
38
+ // T[K] extends (infer U)[] ? DeepLeavesWrap<U, TComplex>[]
39
+ // : DeepLeavesWrap<T[K], TComplex>;
40
+ // }
41
+
42
+
43
+ // type Json = null | string | number | boolean | Json [] | { [name: string]: Json }
44
+
45
+ // export type TypeName<T> = T extends string
46
+ // ? 'string'
47
+ // : T extends number
48
+ // ? 'number'
49
+ // : T extends boolean
50
+ // ? 'boolean'
51
+ // : T extends undefined
52
+ // ? 'undefined'
53
+ // : T extends AnyFunction
54
+ // ? 'function'
55
+ // : 'object';
56
+
57
+ // export type JsonKeys<T> = keyof {
58
+ // [P in keyof T]: number
59
+ // }
64
60
 
65
61
  /**
66
62
  * A function that emits a side effect and does not return anything.
67
63
  */
68
- export type Procedure = (...args: any[]) => void;
69
-
70
- export type DebounceOptions = {
71
- isImmediate?: boolean;
72
- maxWait?: number;
73
- };
74
-
75
- export interface DebouncedFunction<F extends Procedure> {
76
- cancel: () => void;
77
-
78
- (this: ThisParameterType<F>, ...args: [...Parameters<F>]): void;
79
- }
80
-
81
- export type MonthKey =
82
- 'January' |
83
- 'February' |
84
- 'March' |
85
- 'April' |
86
- 'May' |
87
- 'June' |
88
- 'July' |
89
- 'August' |
90
- 'September' |
91
- 'October' |
92
- 'November' |
93
- 'December';
94
-
95
- export type Month = { [key in MonthKey]: string }
96
-
97
- export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
98
-
99
- export class TreeNode<T> {
100
- id: string;
101
- name?: string | undefined;
102
- value?: T | undefined;
103
- children?: TreeNode<T>[] | undefined;
104
-
105
- constructor(id: string, name?: string, value?: T, children?: TreeNode<T>[]) {
106
- this.id = id;
107
- this.name = name || '';
108
- this.value = value || undefined;
109
- this.children = children || [];
110
- }
111
-
112
- // TODO get set
113
- // get name (): string | undefined {
114
- // return this.name;
115
- // }
116
- //
117
- // set name (name: string | undefined) {
118
- // this.name = name;
119
- // }
120
-
121
- addChildren(children: TreeNode<T> | TreeNode<T> []) {
122
- if (!this.children) {
123
- this.children = [];
124
- }
125
- if (children instanceof TreeNode) {
126
- this.children.push(children);
127
- } else {
128
- this.children = this.children.concat(children);
129
- }
130
- }
131
-
132
- getHeight() {
133
- // eslint-disable-next-line @typescript-eslint/no-this-alias
134
- const beginRoot = this;
135
- let maxDepth = 1;
136
- if (beginRoot) {
137
- const bfs = (node: TreeNode<T>, level: number) => {
138
- if (level > maxDepth) {
139
- maxDepth = level;
140
- }
141
- const {children} = node;
142
- if (children) {
143
- for (let i = 0, len = children.length; i < len; i++) {
144
- bfs(children[i], level + 1);
145
- }
146
- }
147
- };
148
- bfs(beginRoot, 1);
149
- }
150
- return maxDepth;
151
- }
152
-
153
- }
154
-
155
- export type OrderType = 'InOrder' | 'PreOrder' | 'PostOrder'
156
-
157
- export type DeepProxy<T> = T extends (...args: any[]) => infer R
158
- ? (...args: [...Parameters<T>]) => DeepProxy<R>
159
- : T extends object
160
- ? { [K in keyof T]: DeepProxy<T[K]> }
161
- : T;
162
-
163
- export type DeepProxyOnChange = (target: any, property: string | symbol, value: any, receiver: any, descriptor: any, result: any) => void;
164
-
165
- export type DeepProxyOnGet = (target: any, property: string | symbol, value: any, receiver: any, descriptor: any, result: any) => void;
166
-
167
- export type CurryFunc<T> = T extends (...args: infer Args) => infer R
168
- ? Args extends [infer Arg, ...infer RestArgs]
169
- ? (arg: Arg) => CurryFunc<(...args: RestArgs) => R>
170
- : R
171
- : T;
64
+ // export type Procedure = (...args: any[]) => void;
65
+
66
+ // export type DebounceOptions = {
67
+ // isImmediate?: boolean;
68
+ // maxWait?: number;
69
+ // };
70
+
71
+ // export interface DebouncedFunction<F extends Procedure> {
72
+ // cancel: () => void;
73
+ //
74
+ // (this: ThisParameterType<F>, ...args: [...Parameters<F>]): void;
75
+ // }
76
+
77
+ // export type MonthKey =
78
+ // 'January' |
79
+ // 'February' |
80
+ // 'March' |
81
+ // 'April' |
82
+ // 'May' |
83
+ // 'June' |
84
+ // 'July' |
85
+ // 'August' |
86
+ // 'September' |
87
+ // 'October' |
88
+ // 'November' |
89
+ // 'December';
90
+
91
+ // export type Month = { [key in MonthKey]: string }
92
+
93
+ // export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
94
+
95
+ // export class TreeNode<T> {
96
+ // id: string;
97
+ // name?: string | undefined;
98
+ // value?: T | undefined;
99
+ // children?: TreeNode<T>[] | undefined;
100
+ //
101
+ // constructor(id: string, name?: string, value?: T, children?: TreeNode<T>[]) {
102
+ // this.id = id;
103
+ // this.name = name || '';
104
+ // this.value = value || undefined;
105
+ // this.children = children || [];
106
+ // }
107
+ //
108
+ // addChildren(children: TreeNode<T> | TreeNode<T> []) {
109
+ // if (!this.children) {
110
+ // this.children = [];
111
+ // }
112
+ // if (children instanceof TreeNode) {
113
+ // this.children.push(children);
114
+ // } else {
115
+ // this.children = this.children.concat(children);
116
+ // }
117
+ // }
118
+ //
119
+ // getHeight() {
120
+ // // eslint-disable-next-line @typescript-eslint/no-this-alias
121
+ // const beginRoot = this;
122
+ // let maxDepth = 1;
123
+ // if (beginRoot) {
124
+ // const bfs = (node: TreeNode<T>, level: number) => {
125
+ // if (level > maxDepth) {
126
+ // maxDepth = level;
127
+ // }
128
+ // const {children} = node;
129
+ // if (children) {
130
+ // for (let i = 0, len = children.length; i < len; i++) {
131
+ // bfs(children[i], level + 1);
132
+ // }
133
+ // }
134
+ // };
135
+ // bfs(beginRoot, 1);
136
+ // }
137
+ // return maxDepth;
138
+ // }
139
+ //
140
+ // }
141
+
142
+ // export type OrderType = 'InOrder' | 'PreOrder' | 'PostOrder'
143
+
144
+ // export type DeepProxy<T> = T extends (...args: any[]) => infer R
145
+ // ? (...args: [...Parameters<T>]) => DeepProxy<R>
146
+ // : T extends object
147
+ // ? { [K in keyof T]: DeepProxy<T[K]> }
148
+ // : T;
149
+
150
+ // export type DeepProxyOnChange = (target: any, property: string | symbol, value: any, receiver: any, descriptor: any, result: any) => void;
151
+
152
+ // export type DeepProxyOnGet = (target: any, property: string | symbol, value: any, receiver: any, descriptor: any, result: any) => void;
153
+
154
+ // export type CurryFunc<T> = T extends (...args: infer Args) => infer R
155
+ // ? Args extends [infer Arg, ...infer RestArgs]
156
+ // ? (arg: Arg) => CurryFunc<(...args: RestArgs) => R>
157
+ // : R
158
+ // : T;
172
159
 
173
160
 
174
161
  export type ToThunkFn = () => ReturnType<TrlFn>;
@@ -176,3 +163,14 @@ export type Thunk = () => ReturnType<ToThunkFn> & { __THUNK__: Symbol };
176
163
  export type TrlFn = (...args: any[]) => any;
177
164
  export type TrlAsyncFn = (...args: any[]) => any;
178
165
 
166
+ // export type CaseType =
167
+ // 'camel'
168
+ // | 'snake'
169
+ // | 'pascal'
170
+ // | 'constant'
171
+ // | 'kebab'
172
+ // | 'lower'
173
+ // | 'title'
174
+ // | 'sentence'
175
+ // | 'path'
176
+ // | 'dot';