data-structure-typed 0.8.6
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/.idea/data-structure-typed.iml +12 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/README.md +2 -0
- package/dist/data-structures/binary-tree/aa-tree.js +6 -0
- package/dist/data-structures/binary-tree/avl-tree.js +231 -0
- package/dist/data-structures/binary-tree/b-tree.js +6 -0
- package/dist/data-structures/binary-tree/binary-indexed-tree.js +31 -0
- package/dist/data-structures/binary-tree/binary-tree.js +992 -0
- package/dist/data-structures/binary-tree/bst.js +431 -0
- package/dist/data-structures/binary-tree/index.js +20 -0
- package/dist/data-structures/binary-tree/rb-tree.js +6 -0
- package/dist/data-structures/binary-tree/segment-tree.js +151 -0
- package/dist/data-structures/binary-tree/splay-tree.js +6 -0
- package/dist/data-structures/binary-tree/tree-multiset.js +16 -0
- package/dist/data-structures/binary-tree/two-three-tree.js +6 -0
- package/dist/data-structures/graph/abstract-graph.js +648 -0
- package/dist/data-structures/graph/directed-graph.js +268 -0
- package/dist/data-structures/graph/index.js +19 -0
- package/dist/data-structures/graph/undirected-graph.js +142 -0
- package/dist/data-structures/hash/coordinate-map.js +24 -0
- package/dist/data-structures/hash/coordinate-set.js +21 -0
- package/dist/data-structures/hash/hash-table.js +2 -0
- package/dist/data-structures/hash/index.js +17 -0
- package/dist/data-structures/hash/pair.js +2 -0
- package/dist/data-structures/hash/tree-map.js +2 -0
- package/dist/data-structures/hash/tree-set.js +2 -0
- package/dist/data-structures/heap/heap.js +114 -0
- package/dist/data-structures/heap/index.js +19 -0
- package/dist/data-structures/heap/max-heap.js +22 -0
- package/dist/data-structures/heap/min-heap.js +22 -0
- package/dist/data-structures/index.js +25 -0
- package/dist/data-structures/linked-list/doubly-linked-list.js +259 -0
- package/dist/data-structures/linked-list/index.js +18 -0
- package/dist/data-structures/linked-list/singly-linked-list.js +660 -0
- package/dist/data-structures/linked-list/skip-linked-list.js +2 -0
- package/dist/data-structures/matrix/index.js +19 -0
- package/dist/data-structures/matrix/matrix.js +14 -0
- package/dist/data-structures/matrix/matrix2d.js +119 -0
- package/dist/data-structures/matrix/navigator.js +78 -0
- package/dist/data-structures/matrix/vector2d.js +161 -0
- package/dist/data-structures/priority-queue/index.js +19 -0
- package/dist/data-structures/priority-queue/max-priority-queue.js +15 -0
- package/dist/data-structures/priority-queue/min-priority-queue.js +15 -0
- package/dist/data-structures/priority-queue/priority-queue.js +174 -0
- package/dist/data-structures/queue/deque.js +132 -0
- package/dist/data-structures/queue/index.js +17 -0
- package/dist/data-structures/queue/queue.js +113 -0
- package/dist/data-structures/stack/index.js +17 -0
- package/dist/data-structures/stack/stack.js +97 -0
- package/dist/data-structures/trampoline.js +52 -0
- package/dist/data-structures/trie/index.js +17 -0
- package/dist/data-structures/trie/trie.js +141 -0
- package/dist/index.js +17 -0
- package/dist/types/data-structures/binary-tree/aa-tree.d.ts +2 -0
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +21 -0
- package/dist/types/data-structures/binary-tree/b-tree.d.ts +2 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +8 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +140 -0
- package/dist/types/data-structures/binary-tree/bst.d.ts +32 -0
- package/dist/types/data-structures/binary-tree/index.d.ts +4 -0
- package/dist/types/data-structures/binary-tree/rb-tree.d.ts +2 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +33 -0
- package/dist/types/data-structures/binary-tree/splay-tree.d.ts +2 -0
- package/dist/types/data-structures/binary-tree/tree-multiset.d.ts +11 -0
- package/dist/types/data-structures/binary-tree/two-three-tree.d.ts +2 -0
- package/dist/types/data-structures/graph/abstract-graph.d.ts +126 -0
- package/dist/types/data-structures/graph/directed-graph.d.ts +51 -0
- package/dist/types/data-structures/graph/index.d.ts +3 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +24 -0
- package/dist/types/data-structures/hash/coordinate-map.d.ts +8 -0
- package/dist/types/data-structures/hash/coordinate-set.d.ts +7 -0
- package/dist/types/data-structures/hash/hash-table.d.ts +1 -0
- package/dist/types/data-structures/hash/index.d.ts +1 -0
- package/dist/types/data-structures/hash/pair.d.ts +1 -0
- package/dist/types/data-structures/hash/tree-map.d.ts +1 -0
- package/dist/types/data-structures/hash/tree-set.d.ts +1 -0
- package/dist/types/data-structures/heap/heap.d.ts +72 -0
- package/dist/types/data-structures/heap/index.d.ts +3 -0
- package/dist/types/data-structures/heap/max-heap.d.ts +14 -0
- package/dist/types/data-structures/heap/min-heap.d.ts +14 -0
- package/dist/types/data-structures/index.d.ts +9 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +59 -0
- package/dist/types/data-structures/linked-list/index.d.ts +2 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +358 -0
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +1 -0
- package/dist/types/data-structures/matrix/index.d.ts +3 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +9 -0
- package/dist/types/data-structures/matrix/matrix2d.d.ts +25 -0
- package/dist/types/data-structures/matrix/navigator.d.ts +31 -0
- package/dist/types/data-structures/matrix/vector2d.d.ts +74 -0
- package/dist/types/data-structures/priority-queue/index.d.ts +3 -0
- package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +4 -0
- package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +4 -0
- package/dist/types/data-structures/priority-queue/priority-queue.d.ts +36 -0
- package/dist/types/data-structures/queue/deque.d.ts +37 -0
- package/dist/types/data-structures/queue/index.d.ts +1 -0
- package/dist/types/data-structures/queue/queue.d.ts +76 -0
- package/dist/types/data-structures/stack/index.d.ts +1 -0
- package/dist/types/data-structures/stack/stack.d.ts +69 -0
- package/dist/types/data-structures/trampoline.d.ts +25 -0
- package/dist/types/data-structures/trie/index.d.ts +1 -0
- package/dist/types/data-structures/trie/trie.d.ts +28 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +17 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/utils.d.ts +46 -0
- package/dist/types/utils.d.ts +122 -0
- package/dist/types/utils.js +53 -0
- package/dist/utils.js +569 -0
- package/package.json +75 -0
- package/src/data-structures/binary-tree/aa-tree.ts +3 -0
- package/src/data-structures/binary-tree/avl-tree.ts +232 -0
- package/src/data-structures/binary-tree/b-tree.ts +3 -0
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +33 -0
- package/src/data-structures/binary-tree/binary-tree.ts +1088 -0
- package/src/data-structures/binary-tree/bst.ts +404 -0
- package/src/data-structures/binary-tree/index.ts +4 -0
- package/src/data-structures/binary-tree/rb-tree.ts +3 -0
- package/src/data-structures/binary-tree/segment-tree.ts +164 -0
- package/src/data-structures/binary-tree/splay-tree.ts +3 -0
- package/src/data-structures/binary-tree/tree-multiset.ts +21 -0
- package/src/data-structures/binary-tree/two-three-tree.ts +3 -0
- package/src/data-structures/graph/abstract-graph.ts +789 -0
- package/src/data-structures/graph/directed-graph.ts +322 -0
- package/src/data-structures/graph/index.ts +3 -0
- package/src/data-structures/graph/undirected-graph.ts +154 -0
- package/src/data-structures/hash/coordinate-map.ts +24 -0
- package/src/data-structures/hash/coordinate-set.ts +20 -0
- package/src/data-structures/hash/hash-table.ts +1 -0
- package/src/data-structures/hash/index.ts +1 -0
- package/src/data-structures/hash/pair.ts +1 -0
- package/src/data-structures/hash/tree-map.ts +1 -0
- package/src/data-structures/hash/tree-set.ts +1 -0
- package/src/data-structures/heap/heap.ts +136 -0
- package/src/data-structures/heap/index.ts +3 -0
- package/src/data-structures/heap/max-heap.ts +22 -0
- package/src/data-structures/heap/min-heap.ts +24 -0
- package/src/data-structures/index.ts +10 -0
- package/src/data-structures/linked-list/doubly-linked-list.ts +258 -0
- package/src/data-structures/linked-list/index.ts +2 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +750 -0
- package/src/data-structures/linked-list/skip-linked-list.ts +1 -0
- package/src/data-structures/matrix/index.ts +3 -0
- package/src/data-structures/matrix/matrix.ts +13 -0
- package/src/data-structures/matrix/matrix2d.ts +125 -0
- package/src/data-structures/matrix/navigator.ts +99 -0
- package/src/data-structures/matrix/vector2d.ts +189 -0
- package/src/data-structures/priority-queue/index.ts +3 -0
- package/src/data-structures/priority-queue/max-priority-queue.ts +12 -0
- package/src/data-structures/priority-queue/min-priority-queue.ts +12 -0
- package/src/data-structures/priority-queue/priority-queue.ts +208 -0
- package/src/data-structures/queue/deque.ts +139 -0
- package/src/data-structures/queue/index.ts +1 -0
- package/src/data-structures/queue/queue.ts +123 -0
- package/src/data-structures/stack/index.ts +1 -0
- package/src/data-structures/stack/stack.ts +104 -0
- package/src/data-structures/trampoline.ts +91 -0
- package/src/data-structures/trie/index.ts +1 -0
- package/src/data-structures/trie/trie.ts +153 -0
- package/src/index.ts +1 -0
- package/src/types/index.ts +1 -0
- package/src/types/patches/index.d.ts +0 -0
- package/src/types/utils.ts +158 -0
- package/src/utils.ts +605 -0
- package/tsconfig.json +52 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* @copyright 2020 Pablo Rios <zrwusa@gmail.com>
|
|
4
|
+
*
|
|
5
|
+
* @class
|
|
6
|
+
*/
|
|
7
|
+
export declare class Stack<T> {
|
|
8
|
+
protected _elements: T[];
|
|
9
|
+
/**
|
|
10
|
+
* Creates a stack.
|
|
11
|
+
* @param {array} [elements]
|
|
12
|
+
*/
|
|
13
|
+
constructor(elements?: T[]);
|
|
14
|
+
/**
|
|
15
|
+
* Checks if the stack is empty.
|
|
16
|
+
* @public
|
|
17
|
+
* @returns {boolean}
|
|
18
|
+
*/
|
|
19
|
+
isEmpty(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Returns the number of elements in the stack.
|
|
22
|
+
* @public
|
|
23
|
+
* @returns {number}
|
|
24
|
+
*/
|
|
25
|
+
size(): number;
|
|
26
|
+
/**
|
|
27
|
+
* Returns the top element in the stack.
|
|
28
|
+
* @public
|
|
29
|
+
* @returns {object}
|
|
30
|
+
*/
|
|
31
|
+
peek(): T | null;
|
|
32
|
+
/**
|
|
33
|
+
* Adds an element to the top of the stack.
|
|
34
|
+
* @public
|
|
35
|
+
* @param {object} element
|
|
36
|
+
*/
|
|
37
|
+
push(element: T): Stack<T>;
|
|
38
|
+
/**
|
|
39
|
+
* Removes and returns the top element in the stack.
|
|
40
|
+
* @public
|
|
41
|
+
* @returns {object}
|
|
42
|
+
*/
|
|
43
|
+
pop(): T | null;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the remaining elements as an array.
|
|
46
|
+
* @public
|
|
47
|
+
* @returns {array}
|
|
48
|
+
*/
|
|
49
|
+
toArray(): T[];
|
|
50
|
+
/**
|
|
51
|
+
* Clears all elements from the stack.
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
clear(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Creates a shallow copy from the stack.
|
|
57
|
+
* @public
|
|
58
|
+
* @return {Stack}
|
|
59
|
+
*/
|
|
60
|
+
clone(): Stack<T>;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a stack from an existing array
|
|
63
|
+
* @public
|
|
64
|
+
* @static
|
|
65
|
+
* @param {array} [elements]
|
|
66
|
+
* @return {Stack}
|
|
67
|
+
*/
|
|
68
|
+
static fromArray<T>(elements: T[]): Stack<T>;
|
|
69
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type ArgumentTypes<T extends (...args: any[]) => any> = T extends (...args: infer A) => any ? A : never;
|
|
2
|
+
export declare const THUNK_SYMBOL: unique symbol;
|
|
3
|
+
export interface Thunk<T> extends Function {
|
|
4
|
+
__THUNK__: typeof THUNK_SYMBOL;
|
|
5
|
+
(): T;
|
|
6
|
+
}
|
|
7
|
+
export type ThunkOrValue<T> = T | Thunk<T>;
|
|
8
|
+
export type UnwrapThunkDeep<T> = {
|
|
9
|
+
0: T extends Thunk<infer U> ? UnwrapThunkDeep<U> : T;
|
|
10
|
+
}[T extends ThunkOrValue<T> ? 0 : never];
|
|
11
|
+
export declare const isThunk: <T>(value: any) => value is Thunk<T>;
|
|
12
|
+
export declare const toThunk: <R>(fn: () => R) => Thunk<R>;
|
|
13
|
+
export type UnwrapPromise<T> = T extends Promise<infer U> ? Exclude<U, Promise<T>> : T;
|
|
14
|
+
export type Unbox<T> = UnwrapThunkDeep<UnwrapPromise<T>>;
|
|
15
|
+
export type Cont<A extends any[], R> = (...args: A) => Thunk<Unbox<R>>;
|
|
16
|
+
export interface Trampoline<F extends ((...args: any[]) => any)> {
|
|
17
|
+
(...args: ArgumentTypes<F>): Unbox<ReturnType<F>>;
|
|
18
|
+
cont: Cont<ArgumentTypes<F>, ReturnType<F>>;
|
|
19
|
+
}
|
|
20
|
+
export interface TrampolineAsync<F extends ((...args: any[]) => any)> {
|
|
21
|
+
(...args: ArgumentTypes<F>): Promise<Unbox<ReturnType<F>>>;
|
|
22
|
+
cont: Cont<ArgumentTypes<F>, ReturnType<F>>;
|
|
23
|
+
}
|
|
24
|
+
export declare const trampoline: <F extends (...args: any[]) => any>(fn: F) => Trampoline<F>;
|
|
25
|
+
export declare const trampolineAsync: <F extends (...args: any[]) => any>(fn: F) => TrampolineAsync<F>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './trie';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare class TrieNode {
|
|
2
|
+
protected _children: Map<string, TrieNode>;
|
|
3
|
+
get children(): Map<string, TrieNode>;
|
|
4
|
+
set children(v: Map<string, TrieNode>);
|
|
5
|
+
protected _isEnd: boolean;
|
|
6
|
+
get isEnd(): boolean;
|
|
7
|
+
set isEnd(v: boolean);
|
|
8
|
+
}
|
|
9
|
+
export declare class Trie {
|
|
10
|
+
protected _root: TrieNode;
|
|
11
|
+
get root(): TrieNode;
|
|
12
|
+
set root(v: TrieNode);
|
|
13
|
+
constructor();
|
|
14
|
+
put(input: string): boolean;
|
|
15
|
+
has(input: string): boolean;
|
|
16
|
+
remove(word: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Only can present as a prefix, not a word
|
|
19
|
+
* @param input
|
|
20
|
+
*/
|
|
21
|
+
isAbsPrefix(input: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Can present as a prefix or word
|
|
24
|
+
* @param input
|
|
25
|
+
*/
|
|
26
|
+
isPrefix(input: string): boolean;
|
|
27
|
+
getAll(prefix?: string): string[];
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './data-structures';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./utils"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './utils';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type AnyFunction<A extends any[] = any[], R = any> = (...args: A) => R;
|
|
2
|
+
export type Primitive = number | string | boolean | symbol | undefined | null | void | AnyFunction | Date;
|
|
3
|
+
export type Cast<T, TComplex> = {
|
|
4
|
+
[M in keyof TComplex]: T;
|
|
5
|
+
};
|
|
6
|
+
export type DeepLeavesWrap<T, TComplex> = T extends string ? Cast<string, TComplex> : T extends number ? Cast<number, TComplex> : T extends boolean ? Cast<boolean, TComplex> : T extends undefined ? Cast<undefined, TComplex> : T extends null ? Cast<null, TComplex> : T extends void ? Cast<void, TComplex> : T extends symbol ? Cast<symbol, TComplex> : T extends AnyFunction ? Cast<AnyFunction, TComplex> : T extends Date ? Cast<Date, TComplex> : {
|
|
7
|
+
[K in keyof T]: T[K] extends (infer U)[] ? DeepLeavesWrap<U, TComplex>[] : DeepLeavesWrap<T[K], TComplex>;
|
|
8
|
+
};
|
|
9
|
+
export type JSONSerializable = {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
};
|
|
12
|
+
export type JSONValue = string | number | boolean | undefined | JSONObject;
|
|
13
|
+
export interface JSONObject {
|
|
14
|
+
[key: string]: JSONValue;
|
|
15
|
+
}
|
|
16
|
+
export type TypeName<T> = T extends string ? 'string' : T extends number ? 'number' : T extends boolean ? 'boolean' : T extends undefined ? 'undefined' : T extends AnyFunction ? 'function' : 'object';
|
|
17
|
+
export type JsonKeys<T> = keyof {
|
|
18
|
+
[P in keyof T]: number;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* A function that emits a side effect and does not return anything.
|
|
22
|
+
*/
|
|
23
|
+
export type Procedure = (...args: any[]) => void;
|
|
24
|
+
export type DebounceOptions = {
|
|
25
|
+
isImmediate?: boolean;
|
|
26
|
+
maxWait?: number;
|
|
27
|
+
};
|
|
28
|
+
export interface DebouncedFunction<F extends Procedure> {
|
|
29
|
+
(this: ThisParameterType<F>, ...args: Parameters<F>): void;
|
|
30
|
+
cancel: () => void;
|
|
31
|
+
}
|
|
32
|
+
export type MonthKey = 'January' | 'February' | 'March' | 'April' | 'May' | 'June' | 'July' | 'August' | 'September' | 'October' | 'November' | 'December';
|
|
33
|
+
export type Month = {
|
|
34
|
+
[key in MonthKey]: string;
|
|
35
|
+
};
|
|
36
|
+
export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
|
|
37
|
+
export declare class TreeNode<T> {
|
|
38
|
+
id: string;
|
|
39
|
+
name?: string | undefined;
|
|
40
|
+
value?: T | undefined;
|
|
41
|
+
children?: TreeNode<T>[] | undefined;
|
|
42
|
+
constructor(id: string, name?: string, value?: T, children?: TreeNode<T>[]);
|
|
43
|
+
addChildren(children: TreeNode<T> | TreeNode<T>[]): void;
|
|
44
|
+
getHeight(): number;
|
|
45
|
+
}
|
|
46
|
+
export type OrderType = 'InOrder' | 'PreOrder' | 'PostOrder';
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { AnyFunction } from './types';
|
|
2
|
+
export type JSONSerializable = {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
};
|
|
5
|
+
export type JSONValue = string | number | boolean | undefined | JSONObject;
|
|
6
|
+
export interface JSONObject {
|
|
7
|
+
[key: string]: JSONValue;
|
|
8
|
+
}
|
|
9
|
+
export declare function randomText(length: number): string;
|
|
10
|
+
export declare const uuidV4: () => string;
|
|
11
|
+
export declare class IncrementId {
|
|
12
|
+
private _id;
|
|
13
|
+
private readonly _prefix;
|
|
14
|
+
constructor(prefix?: string);
|
|
15
|
+
getId(): string;
|
|
16
|
+
}
|
|
17
|
+
export declare function incrementId(prefix?: string): () => string;
|
|
18
|
+
export declare const getValue: <T, K extends keyof T>(obj: T, names: K[]) => T[K][];
|
|
19
|
+
export declare const isObject: (object: string | JSONObject | boolean | AnyFunction | number) => boolean;
|
|
20
|
+
export declare const looseEqual: (a: any, b: any) => boolean;
|
|
21
|
+
export declare const strictEqual: (a: any, b: any) => boolean;
|
|
22
|
+
export declare const strictObjectIsEqual: (a: any, b: any) => boolean;
|
|
23
|
+
export declare const deepObjectStrictEqual: (object1: JSONSerializable, object2: JSONSerializable) => boolean;
|
|
24
|
+
export declare const isTypeEqual: <T>(obj: unknown) => void;
|
|
25
|
+
export declare function reverseColor(oldColor: string): string;
|
|
26
|
+
export declare const isSameStructure: (objA: unknown, objB: unknown) => boolean;
|
|
27
|
+
export declare const isLeafParent: (obj: JSONObject) => boolean;
|
|
28
|
+
export declare const addDays: (date: Date, days: number) => Date;
|
|
29
|
+
export declare class WaitManager {
|
|
30
|
+
private _time1;
|
|
31
|
+
get time1(): number;
|
|
32
|
+
private _time2;
|
|
33
|
+
get time2(): number;
|
|
34
|
+
private _time3;
|
|
35
|
+
get time3(): number;
|
|
36
|
+
private _time4;
|
|
37
|
+
get time4(): number;
|
|
38
|
+
private _time10;
|
|
39
|
+
get time10(): number;
|
|
40
|
+
private _time20;
|
|
41
|
+
get time20(): number;
|
|
42
|
+
private _time30;
|
|
43
|
+
get time50(): number;
|
|
44
|
+
private _time60;
|
|
45
|
+
get time60(): number;
|
|
46
|
+
private _cusTime;
|
|
47
|
+
get cusTime(): number;
|
|
48
|
+
set cusTime(v: number);
|
|
49
|
+
private readonly _nXSpeed;
|
|
50
|
+
constructor(nXSpeed?: number);
|
|
51
|
+
}
|
|
52
|
+
export declare const wait: (ms: number, resolveValue?: any) => Promise<unknown>;
|
|
53
|
+
export declare class AuthAPIError extends Error {
|
|
54
|
+
protected serverErrorStack: string | undefined;
|
|
55
|
+
protected serverErrorCode: string | undefined;
|
|
56
|
+
constructor(serverErrorMessage: string, serverErrorCode?: string, serverErrorStack?: string);
|
|
57
|
+
}
|
|
58
|
+
export declare class BunnyAPIError extends Error {
|
|
59
|
+
protected serverErrorStack: string | undefined;
|
|
60
|
+
protected serverErrorCode: string | undefined;
|
|
61
|
+
constructor(serverErrorMessage: string, serverErrorCode?: string, serverErrorStack?: string);
|
|
62
|
+
}
|
|
63
|
+
export declare class NomicsAPIError extends Error {
|
|
64
|
+
protected serverErrorStack: string | undefined;
|
|
65
|
+
protected serverErrorCode: string | undefined;
|
|
66
|
+
constructor(serverErrorMessage: string, serverErrorCode?: string, serverErrorStack?: string);
|
|
67
|
+
}
|
|
68
|
+
export declare function extractValue<Item>(data: {
|
|
69
|
+
key: string;
|
|
70
|
+
value: Item;
|
|
71
|
+
}[]): Item[];
|
|
72
|
+
export declare function keyValueToArray<Item>(data: {
|
|
73
|
+
[key: string]: Item;
|
|
74
|
+
}): Item[];
|
|
75
|
+
export declare function minuted(time: number): string;
|
|
76
|
+
export declare function randomDate(start?: Date, end?: Date, specificProbabilityStart?: Date, specificProbability?: number): Date;
|
|
77
|
+
export declare const capitalizeWords: (str: string) => string;
|
|
78
|
+
export declare const capitalizeFirstLetter: (str: string) => string;
|
|
79
|
+
export declare const comparerArray: <T>(otherArray: T[], limitKeys?: string[]) => (current: T) => boolean;
|
|
80
|
+
export declare const onlyInA: <T>(a: T[], b: T[]) => T[];
|
|
81
|
+
export declare const onlyInB: <T>(a: T[], b: T[]) => T[];
|
|
82
|
+
export declare const diffAB: <T>(a: T[], b: T[]) => T[];
|
|
83
|
+
export declare class StringUtil {
|
|
84
|
+
static toCamelCase(str: string): string;
|
|
85
|
+
static toSnakeCase(str: string): string;
|
|
86
|
+
static toPascalCase(str: string): string;
|
|
87
|
+
static toConstantCase(str: string): string;
|
|
88
|
+
static toKebabCase(str: string): string;
|
|
89
|
+
static toLowerCase(str: string): string;
|
|
90
|
+
static toTitleCase(str: string): string;
|
|
91
|
+
static toSentenceCase(str: string): string;
|
|
92
|
+
static toPathCase(str: string): string;
|
|
93
|
+
static toDotCase(str: string): string;
|
|
94
|
+
}
|
|
95
|
+
type ToCase = 'camel' | 'snake' | 'pascal' | 'constant' | 'kebab' | 'lower' | 'title' | 'sentence' | 'path' | 'dot';
|
|
96
|
+
export declare const deepKeysConvert: (obj: any, toType?: ToCase) => any;
|
|
97
|
+
export declare const deepRemoveByKey: (obj: any, keysToBeRemoved: string[]) => any;
|
|
98
|
+
export declare const deepRenameKeys: (obj: JSONSerializable, keysMap: {
|
|
99
|
+
[x: string]: string;
|
|
100
|
+
}) => JSONSerializable;
|
|
101
|
+
export declare const deepReplaceValues: (obj: JSONSerializable, keyReducerMap: {
|
|
102
|
+
[x: string]: (item: JSONSerializable) => any;
|
|
103
|
+
}) => JSONSerializable;
|
|
104
|
+
export declare const deepAdd: (obj: JSONSerializable, keyReducerMap: {
|
|
105
|
+
[x: string]: (item: JSONSerializable) => any;
|
|
106
|
+
}, isItemRootParent?: boolean) => [] | JSONObject;
|
|
107
|
+
export declare const bunnyConsole: {
|
|
108
|
+
log: (headerLog?: string, ...args: any[]) => void;
|
|
109
|
+
warn: (headerLog?: string, ...args: any[]) => void;
|
|
110
|
+
error: (headerLog?: string, ...args: any[]) => void;
|
|
111
|
+
};
|
|
112
|
+
export declare const timeStart: () => number;
|
|
113
|
+
export declare const timeEnd: (startTime: number, headerLog?: string, consoleConditionFn?: ((timeSpent: number) => boolean) | undefined) => void;
|
|
114
|
+
export declare const arrayRemove: <T>(array: T[], predicate: (item: T, index: number, array: T[]) => boolean) => T[];
|
|
115
|
+
export declare function memo(): (target: Object, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
|
116
|
+
export declare function zip<T = number, T1 = number>(array1: T[], array2: T1[], options?: {
|
|
117
|
+
isToObj: boolean;
|
|
118
|
+
}): [T, T1][] | {
|
|
119
|
+
x: T;
|
|
120
|
+
y: T1;
|
|
121
|
+
}[];
|
|
122
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TreeNode = void 0;
|
|
4
|
+
const arr = ['1', 2, 4, 5, 6];
|
|
5
|
+
const a = 2;
|
|
6
|
+
class TreeNode {
|
|
7
|
+
constructor(id, name, value, children) {
|
|
8
|
+
this.id = id;
|
|
9
|
+
this.name = name || '';
|
|
10
|
+
this.value = value || undefined;
|
|
11
|
+
this.children = children || [];
|
|
12
|
+
}
|
|
13
|
+
// TODO get set
|
|
14
|
+
// get name (): string | undefined {
|
|
15
|
+
// return this.name;
|
|
16
|
+
// }
|
|
17
|
+
//
|
|
18
|
+
// set name (name: string | undefined) {
|
|
19
|
+
// this.name = name;
|
|
20
|
+
// }
|
|
21
|
+
addChildren(children) {
|
|
22
|
+
if (!this.children) {
|
|
23
|
+
this.children = [];
|
|
24
|
+
}
|
|
25
|
+
if (children instanceof Array) {
|
|
26
|
+
this.children = this.children.concat(children);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.children.push(children);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
getHeight() {
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
34
|
+
const beginRoot = this;
|
|
35
|
+
let maxDepth = 1;
|
|
36
|
+
if (beginRoot) {
|
|
37
|
+
const bfs = (node, level) => {
|
|
38
|
+
if (level > maxDepth) {
|
|
39
|
+
maxDepth = level;
|
|
40
|
+
}
|
|
41
|
+
const { children } = node;
|
|
42
|
+
if (children) {
|
|
43
|
+
for (let i = 0, len = children.length; i < len; i++) {
|
|
44
|
+
bfs(children[i], level + 1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
bfs(beginRoot, 1);
|
|
49
|
+
}
|
|
50
|
+
return maxDepth;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.TreeNode = TreeNode;
|