@itwin/core-bentley 4.0.0-dev.8 → 4.0.0-dev.80
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/CHANGELOG.md +50 -1
- package/lib/cjs/AccessToken.d.ts +10 -10
- package/lib/cjs/AccessToken.d.ts.map +1 -1
- package/lib/cjs/AccessToken.js +9 -9
- package/lib/cjs/Assert.d.ts +25 -25
- package/lib/cjs/Assert.js +45 -45
- package/lib/cjs/Assert.js.map +1 -1
- package/lib/cjs/BeEvent.d.ts +81 -81
- package/lib/cjs/BeEvent.d.ts.map +1 -1
- package/lib/cjs/BeEvent.js +156 -156
- package/lib/cjs/BeSQLite.d.ts +172 -170
- package/lib/cjs/BeSQLite.d.ts.map +1 -1
- package/lib/cjs/BeSQLite.js +185 -183
- package/lib/cjs/BeSQLite.js.map +1 -1
- package/lib/cjs/BentleyError.d.ts +378 -378
- package/lib/cjs/BentleyError.d.ts.map +1 -1
- package/lib/cjs/BentleyError.js +703 -702
- package/lib/cjs/BentleyError.js.map +1 -1
- package/lib/cjs/BentleyLoggerCategory.d.ts +11 -11
- package/lib/cjs/BentleyLoggerCategory.js +19 -19
- package/lib/cjs/ByteStream.d.ts +110 -110
- package/lib/cjs/ByteStream.js +159 -159
- package/lib/cjs/ClassUtils.d.ts +14 -14
- package/lib/cjs/ClassUtils.js +27 -27
- package/lib/cjs/Compare.d.ts +47 -47
- package/lib/cjs/Compare.d.ts.map +1 -1
- package/lib/cjs/Compare.js +75 -75
- package/lib/cjs/CompressedId64Set.d.ts +134 -134
- package/lib/cjs/CompressedId64Set.d.ts.map +1 -1
- package/lib/cjs/CompressedId64Set.js +428 -428
- package/lib/cjs/CompressedId64Set.js.map +1 -1
- package/lib/cjs/Dictionary.d.ts +125 -125
- package/lib/cjs/Dictionary.js +203 -203
- package/lib/cjs/Disposable.d.ts +80 -80
- package/lib/cjs/Disposable.d.ts.map +1 -1
- package/lib/cjs/Disposable.js +120 -120
- package/lib/cjs/Id.d.ts +285 -285
- package/lib/cjs/Id.d.ts.map +1 -1
- package/lib/cjs/Id.js +643 -643
- package/lib/cjs/IndexMap.d.ts +65 -65
- package/lib/cjs/IndexMap.js +91 -91
- package/lib/cjs/JsonSchema.d.ts +77 -77
- package/lib/cjs/JsonSchema.d.ts.map +1 -1
- package/lib/cjs/JsonSchema.js +9 -9
- package/lib/cjs/JsonUtils.d.ts +78 -78
- package/lib/cjs/JsonUtils.js +151 -151
- package/lib/cjs/LRUMap.d.ts +129 -129
- package/lib/cjs/LRUMap.js +333 -333
- package/lib/cjs/LRUMap.js.map +1 -1
- package/lib/cjs/Logger.d.ts +143 -143
- package/lib/cjs/Logger.d.ts.map +1 -1
- package/lib/cjs/Logger.js +256 -258
- package/lib/cjs/Logger.js.map +1 -1
- package/lib/cjs/ObservableSet.d.ts +23 -23
- package/lib/cjs/ObservableSet.js +51 -51
- package/lib/cjs/OneAtATimeAction.d.ts +31 -31
- package/lib/cjs/OneAtATimeAction.js +94 -94
- package/lib/cjs/OneAtATimeAction.js.map +1 -1
- package/lib/cjs/OrderedId64Iterable.d.ts +74 -74
- package/lib/cjs/OrderedId64Iterable.d.ts.map +1 -1
- package/lib/cjs/OrderedId64Iterable.js +235 -235
- package/lib/cjs/OrderedSet.d.ts +40 -40
- package/lib/cjs/OrderedSet.js +64 -64
- package/lib/cjs/PriorityQueue.d.ts +70 -70
- package/lib/cjs/PriorityQueue.d.ts.map +1 -1
- package/lib/cjs/PriorityQueue.js +140 -140
- package/lib/cjs/ProcessDetector.d.ts +59 -59
- package/lib/cjs/ProcessDetector.js +71 -71
- package/lib/cjs/SortedArray.d.ts +236 -232
- package/lib/cjs/SortedArray.d.ts.map +1 -1
- package/lib/cjs/SortedArray.js +315 -303
- package/lib/cjs/SortedArray.js.map +1 -1
- package/lib/cjs/StatusCategory.d.ts +30 -30
- package/lib/cjs/StatusCategory.d.ts.map +1 -1
- package/lib/cjs/StatusCategory.js +460 -460
- package/lib/cjs/StatusCategory.js.map +1 -1
- package/lib/cjs/StringUtils.d.ts +22 -22
- package/lib/cjs/StringUtils.js +148 -148
- package/lib/cjs/Time.d.ts +122 -122
- package/lib/cjs/Time.js +152 -152
- package/lib/cjs/Time.js.map +1 -1
- package/lib/cjs/Tracing.d.ts +43 -40
- package/lib/cjs/Tracing.d.ts.map +1 -1
- package/lib/cjs/Tracing.js +134 -130
- package/lib/cjs/Tracing.js.map +1 -1
- package/lib/cjs/TupleKeyedMap.d.ts +36 -36
- package/lib/cjs/TupleKeyedMap.js +102 -102
- package/lib/cjs/TypedArrayBuilder.d.ts +155 -155
- package/lib/cjs/TypedArrayBuilder.d.ts.map +1 -1
- package/lib/cjs/TypedArrayBuilder.js +206 -208
- package/lib/cjs/TypedArrayBuilder.js.map +1 -1
- package/lib/cjs/UnexpectedErrors.d.ts +43 -43
- package/lib/cjs/UnexpectedErrors.d.ts.map +1 -1
- package/lib/cjs/UnexpectedErrors.js +68 -68
- package/lib/cjs/UnexpectedErrors.js.map +1 -1
- package/lib/cjs/UtilityTypes.d.ts +112 -96
- package/lib/cjs/UtilityTypes.d.ts.map +1 -1
- package/lib/cjs/UtilityTypes.js +40 -40
- package/lib/cjs/UtilityTypes.js.map +1 -1
- package/lib/cjs/YieldManager.d.ts +18 -18
- package/lib/cjs/YieldManager.js +34 -34
- package/lib/cjs/core-bentley.d.ts +74 -74
- package/lib/cjs/core-bentley.js +94 -90
- package/lib/cjs/core-bentley.js.map +1 -1
- package/lib/cjs/partitionArray.d.ts +21 -21
- package/lib/cjs/partitionArray.js +43 -43
- package/lib/esm/AccessToken.d.ts +10 -10
- package/lib/esm/AccessToken.d.ts.map +1 -1
- package/lib/esm/AccessToken.js +8 -8
- package/lib/esm/Assert.d.ts +25 -25
- package/lib/esm/Assert.js +41 -41
- package/lib/esm/Assert.js.map +1 -1
- package/lib/esm/BeEvent.d.ts +81 -81
- package/lib/esm/BeEvent.d.ts.map +1 -1
- package/lib/esm/BeEvent.js +150 -150
- package/lib/esm/BeSQLite.d.ts +172 -170
- package/lib/esm/BeSQLite.d.ts.map +1 -1
- package/lib/esm/BeSQLite.js +182 -180
- package/lib/esm/BeSQLite.js.map +1 -1
- package/lib/esm/BentleyError.d.ts +378 -378
- package/lib/esm/BentleyError.d.ts.map +1 -1
- package/lib/esm/BentleyError.js +699 -698
- package/lib/esm/BentleyError.js.map +1 -1
- package/lib/esm/BentleyLoggerCategory.d.ts +11 -11
- package/lib/esm/BentleyLoggerCategory.js +16 -16
- package/lib/esm/ByteStream.d.ts +110 -110
- package/lib/esm/ByteStream.js +155 -155
- package/lib/esm/ClassUtils.d.ts +14 -14
- package/lib/esm/ClassUtils.js +22 -22
- package/lib/esm/Compare.d.ts +47 -47
- package/lib/esm/Compare.d.ts.map +1 -1
- package/lib/esm/Compare.js +63 -63
- package/lib/esm/CompressedId64Set.d.ts +134 -134
- package/lib/esm/CompressedId64Set.d.ts.map +1 -1
- package/lib/esm/CompressedId64Set.js +423 -423
- package/lib/esm/CompressedId64Set.js.map +1 -1
- package/lib/esm/Dictionary.d.ts +125 -125
- package/lib/esm/Dictionary.js +199 -199
- package/lib/esm/Disposable.d.ts +80 -80
- package/lib/esm/Disposable.d.ts.map +1 -1
- package/lib/esm/Disposable.js +112 -112
- package/lib/esm/Id.d.ts +285 -285
- package/lib/esm/Id.d.ts.map +1 -1
- package/lib/esm/Id.js +639 -639
- package/lib/esm/IndexMap.d.ts +65 -65
- package/lib/esm/IndexMap.js +86 -86
- package/lib/esm/JsonSchema.d.ts +77 -77
- package/lib/esm/JsonSchema.d.ts.map +1 -1
- package/lib/esm/JsonSchema.js +8 -8
- package/lib/esm/JsonUtils.d.ts +78 -78
- package/lib/esm/JsonUtils.js +148 -148
- package/lib/esm/LRUMap.d.ts +129 -129
- package/lib/esm/LRUMap.js +326 -326
- package/lib/esm/LRUMap.js.map +1 -1
- package/lib/esm/Logger.d.ts +143 -143
- package/lib/esm/Logger.d.ts.map +1 -1
- package/lib/esm/Logger.js +253 -253
- package/lib/esm/Logger.js.map +1 -1
- package/lib/esm/ObservableSet.d.ts +23 -23
- package/lib/esm/ObservableSet.js +47 -47
- package/lib/esm/OneAtATimeAction.d.ts +31 -31
- package/lib/esm/OneAtATimeAction.js +89 -89
- package/lib/esm/OneAtATimeAction.js.map +1 -1
- package/lib/esm/OrderedId64Iterable.d.ts +74 -74
- package/lib/esm/OrderedId64Iterable.d.ts.map +1 -1
- package/lib/esm/OrderedId64Iterable.js +232 -232
- package/lib/esm/OrderedSet.d.ts +40 -40
- package/lib/esm/OrderedSet.js +59 -59
- package/lib/esm/PriorityQueue.d.ts +70 -70
- package/lib/esm/PriorityQueue.d.ts.map +1 -1
- package/lib/esm/PriorityQueue.js +136 -136
- package/lib/esm/ProcessDetector.d.ts +59 -59
- package/lib/esm/ProcessDetector.js +67 -67
- package/lib/esm/SortedArray.d.ts +236 -232
- package/lib/esm/SortedArray.d.ts.map +1 -1
- package/lib/esm/SortedArray.js +308 -296
- package/lib/esm/SortedArray.js.map +1 -1
- package/lib/esm/StatusCategory.d.ts +30 -30
- package/lib/esm/StatusCategory.d.ts.map +1 -1
- package/lib/esm/StatusCategory.js +455 -454
- package/lib/esm/StatusCategory.js.map +1 -1
- package/lib/esm/StringUtils.d.ts +22 -22
- package/lib/esm/StringUtils.js +142 -142
- package/lib/esm/Time.d.ts +122 -122
- package/lib/esm/Time.js +146 -146
- package/lib/esm/Time.js.map +1 -1
- package/lib/esm/Tracing.d.ts +43 -40
- package/lib/esm/Tracing.d.ts.map +1 -1
- package/lib/esm/Tracing.js +130 -126
- package/lib/esm/Tracing.js.map +1 -1
- package/lib/esm/TupleKeyedMap.d.ts +36 -36
- package/lib/esm/TupleKeyedMap.js +98 -98
- package/lib/esm/TypedArrayBuilder.d.ts +155 -155
- package/lib/esm/TypedArrayBuilder.d.ts.map +1 -1
- package/lib/esm/TypedArrayBuilder.js +198 -200
- package/lib/esm/TypedArrayBuilder.js.map +1 -1
- package/lib/esm/UnexpectedErrors.d.ts +43 -43
- package/lib/esm/UnexpectedErrors.d.ts.map +1 -1
- package/lib/esm/UnexpectedErrors.js +65 -64
- package/lib/esm/UnexpectedErrors.js.map +1 -1
- package/lib/esm/UtilityTypes.d.ts +112 -96
- package/lib/esm/UtilityTypes.d.ts.map +1 -1
- package/lib/esm/UtilityTypes.js +34 -34
- package/lib/esm/UtilityTypes.js.map +1 -1
- package/lib/esm/YieldManager.d.ts +18 -18
- package/lib/esm/YieldManager.js +30 -30
- package/lib/esm/core-bentley.d.ts +74 -74
- package/lib/esm/core-bentley.js +78 -78
- package/lib/esm/partitionArray.d.ts +21 -21
- package/lib/esm/partitionArray.js +39 -39
- package/package.json +9 -9
package/lib/esm/IndexMap.d.ts
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Collections
|
|
3
|
-
*/
|
|
4
|
-
import { OrderedComparator } from "./Compare";
|
|
5
|
-
import { CloneFunction } from "./SortedArray";
|
|
6
|
-
/** Associates a value of type T with an index representing its insertion order in an IndexMap<T>
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
|
-
export declare class IndexedValue<T> {
|
|
10
|
-
readonly value: T;
|
|
11
|
-
readonly index: number;
|
|
12
|
-
constructor(value: T, index: number);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Maintains a set of unique elements in sorted order and retains the insertion order of each.
|
|
16
|
-
* The uniqueness of the elements is determined by a comparison routine supplied by the user.
|
|
17
|
-
* The user may also supply a maximum size, beyond which insertions will fail.
|
|
18
|
-
* @public
|
|
19
|
-
*/
|
|
20
|
-
export declare class IndexMap<T> {
|
|
21
|
-
protected _array: Array<IndexedValue<T>>;
|
|
22
|
-
protected readonly _compareValues: OrderedComparator<T>;
|
|
23
|
-
protected readonly _clone: CloneFunction<T>;
|
|
24
|
-
protected readonly _maximumSize: number;
|
|
25
|
-
/**
|
|
26
|
-
* Construct a new IndexMap<T>.
|
|
27
|
-
* @param compare The function used to compare elements within the map.
|
|
28
|
-
* @param maximumSize The maximum number of elements permitted in the IndexMap. The maximum index of an element is maximumSize-1.
|
|
29
|
-
* @param clone The function invoked to clone a new element for insertion into the array. The default implementation simply returns its input.
|
|
30
|
-
*/
|
|
31
|
-
constructor(compare: OrderedComparator<T>, maximumSize?: number, clone?: CloneFunction<T>);
|
|
32
|
-
/** The number of elements in the map. */
|
|
33
|
-
get length(): number;
|
|
34
|
-
/** Returns true if the maximum number of elements have been inserted. */
|
|
35
|
-
get isFull(): boolean;
|
|
36
|
-
/** Returns true if the map contains no elements. */
|
|
37
|
-
get isEmpty(): boolean;
|
|
38
|
-
/** Removes all elements from the map. */
|
|
39
|
-
clear(): void;
|
|
40
|
-
/** Attempt to insert a new value into the map.
|
|
41
|
-
* If an equivalent element already exists in the map, the corresponding index is returned.
|
|
42
|
-
* If the map is full, nothing is inserted and -1 is returned.
|
|
43
|
-
* Otherwise:
|
|
44
|
-
* The new element is mapped to the next-available index (that is, the length of the map prior to insertion of this new element);
|
|
45
|
-
* the value is cloned using the function supplied to the IndexMap constructor;
|
|
46
|
-
* the cloned result is inserted into the map; and
|
|
47
|
-
* the index of the new element is returned.
|
|
48
|
-
* @param value The value to insert
|
|
49
|
-
* @param onInsert The optional callback method to call if insertion occurs with the inserted value
|
|
50
|
-
* @returns the index of the equivalent element in the map, or -1 if the map is full and no equivalent element exists.
|
|
51
|
-
*/
|
|
52
|
-
insert(value: T, onInsert?: (value: T) => any): number;
|
|
53
|
-
/**
|
|
54
|
-
* Finds the index of an element equivalent to the supplied value.
|
|
55
|
-
* @param value the value to find
|
|
56
|
-
* @returns the index of an equivalent element in the map, or -1 if no such element exists.
|
|
57
|
-
*/
|
|
58
|
-
indexOf(value: T): number;
|
|
59
|
-
protected lowerBound(value: T): {
|
|
60
|
-
index: number;
|
|
61
|
-
equal: boolean;
|
|
62
|
-
};
|
|
63
|
-
/** Return an array of the elements in this map in which the array index of each element corresponds to the index assigned to it by the map. */
|
|
64
|
-
toArray(): T[];
|
|
65
|
-
}
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Collections
|
|
3
|
+
*/
|
|
4
|
+
import { OrderedComparator } from "./Compare";
|
|
5
|
+
import { CloneFunction } from "./SortedArray";
|
|
6
|
+
/** Associates a value of type T with an index representing its insertion order in an IndexMap<T>
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare class IndexedValue<T> {
|
|
10
|
+
readonly value: T;
|
|
11
|
+
readonly index: number;
|
|
12
|
+
constructor(value: T, index: number);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Maintains a set of unique elements in sorted order and retains the insertion order of each.
|
|
16
|
+
* The uniqueness of the elements is determined by a comparison routine supplied by the user.
|
|
17
|
+
* The user may also supply a maximum size, beyond which insertions will fail.
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export declare class IndexMap<T> {
|
|
21
|
+
protected _array: Array<IndexedValue<T>>;
|
|
22
|
+
protected readonly _compareValues: OrderedComparator<T>;
|
|
23
|
+
protected readonly _clone: CloneFunction<T>;
|
|
24
|
+
protected readonly _maximumSize: number;
|
|
25
|
+
/**
|
|
26
|
+
* Construct a new IndexMap<T>.
|
|
27
|
+
* @param compare The function used to compare elements within the map.
|
|
28
|
+
* @param maximumSize The maximum number of elements permitted in the IndexMap. The maximum index of an element is maximumSize-1.
|
|
29
|
+
* @param clone The function invoked to clone a new element for insertion into the array. The default implementation simply returns its input.
|
|
30
|
+
*/
|
|
31
|
+
constructor(compare: OrderedComparator<T>, maximumSize?: number, clone?: CloneFunction<T>);
|
|
32
|
+
/** The number of elements in the map. */
|
|
33
|
+
get length(): number;
|
|
34
|
+
/** Returns true if the maximum number of elements have been inserted. */
|
|
35
|
+
get isFull(): boolean;
|
|
36
|
+
/** Returns true if the map contains no elements. */
|
|
37
|
+
get isEmpty(): boolean;
|
|
38
|
+
/** Removes all elements from the map. */
|
|
39
|
+
clear(): void;
|
|
40
|
+
/** Attempt to insert a new value into the map.
|
|
41
|
+
* If an equivalent element already exists in the map, the corresponding index is returned.
|
|
42
|
+
* If the map is full, nothing is inserted and -1 is returned.
|
|
43
|
+
* Otherwise:
|
|
44
|
+
* The new element is mapped to the next-available index (that is, the length of the map prior to insertion of this new element);
|
|
45
|
+
* the value is cloned using the function supplied to the IndexMap constructor;
|
|
46
|
+
* the cloned result is inserted into the map; and
|
|
47
|
+
* the index of the new element is returned.
|
|
48
|
+
* @param value The value to insert
|
|
49
|
+
* @param onInsert The optional callback method to call if insertion occurs with the inserted value
|
|
50
|
+
* @returns the index of the equivalent element in the map, or -1 if the map is full and no equivalent element exists.
|
|
51
|
+
*/
|
|
52
|
+
insert(value: T, onInsert?: (value: T) => any): number;
|
|
53
|
+
/**
|
|
54
|
+
* Finds the index of an element equivalent to the supplied value.
|
|
55
|
+
* @param value the value to find
|
|
56
|
+
* @returns the index of an equivalent element in the map, or -1 if no such element exists.
|
|
57
|
+
*/
|
|
58
|
+
indexOf(value: T): number;
|
|
59
|
+
protected lowerBound(value: T): {
|
|
60
|
+
index: number;
|
|
61
|
+
equal: boolean;
|
|
62
|
+
};
|
|
63
|
+
/** Return an array of the elements in this map in which the array index of each element corresponds to the index assigned to it by the map. */
|
|
64
|
+
toArray(): T[];
|
|
65
|
+
}
|
|
66
66
|
//# sourceMappingURL=IndexMap.d.ts.map
|
package/lib/esm/IndexMap.js
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/** @packageDocumentation
|
|
6
|
-
* @module Collections
|
|
7
|
-
*/
|
|
8
|
-
import { lowerBound, shallowClone } from "./SortedArray";
|
|
9
|
-
/** Associates a value of type T with an index representing its insertion order in an IndexMap<T>
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
export class IndexedValue {
|
|
13
|
-
constructor(value, index) {
|
|
14
|
-
this.value = value;
|
|
15
|
-
this.index = index;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Maintains a set of unique elements in sorted order and retains the insertion order of each.
|
|
20
|
-
* The uniqueness of the elements is determined by a comparison routine supplied by the user.
|
|
21
|
-
* The user may also supply a maximum size, beyond which insertions will fail.
|
|
22
|
-
* @public
|
|
23
|
-
*/
|
|
24
|
-
export class IndexMap {
|
|
25
|
-
/**
|
|
26
|
-
* Construct a new IndexMap<T>.
|
|
27
|
-
* @param compare The function used to compare elements within the map.
|
|
28
|
-
* @param maximumSize The maximum number of elements permitted in the IndexMap. The maximum index of an element is maximumSize-1.
|
|
29
|
-
* @param clone The function invoked to clone a new element for insertion into the array. The default implementation simply returns its input.
|
|
30
|
-
*/
|
|
31
|
-
constructor(compare, maximumSize = Number.MAX_SAFE_INTEGER, clone = shallowClone) {
|
|
32
|
-
this._array = [];
|
|
33
|
-
this._compareValues = compare;
|
|
34
|
-
this._clone = clone;
|
|
35
|
-
this._maximumSize = maximumSize;
|
|
36
|
-
}
|
|
37
|
-
/** The number of elements in the map. */
|
|
38
|
-
get length() { return this._array.length; }
|
|
39
|
-
/** Returns true if the maximum number of elements have been inserted. */
|
|
40
|
-
get isFull() { return this.length >= this._maximumSize; }
|
|
41
|
-
/** Returns true if the map contains no elements. */
|
|
42
|
-
get isEmpty() { return 0 === this.length; }
|
|
43
|
-
/** Removes all elements from the map. */
|
|
44
|
-
clear() { this._array = []; }
|
|
45
|
-
/** Attempt to insert a new value into the map.
|
|
46
|
-
* If an equivalent element already exists in the map, the corresponding index is returned.
|
|
47
|
-
* If the map is full, nothing is inserted and -1 is returned.
|
|
48
|
-
* Otherwise:
|
|
49
|
-
* The new element is mapped to the next-available index (that is, the length of the map prior to insertion of this new element);
|
|
50
|
-
* the value is cloned using the function supplied to the IndexMap constructor;
|
|
51
|
-
* the cloned result is inserted into the map; and
|
|
52
|
-
* the index of the new element is returned.
|
|
53
|
-
* @param value The value to insert
|
|
54
|
-
* @param onInsert The optional callback method to call if insertion occurs with the inserted value
|
|
55
|
-
* @returns the index of the equivalent element in the map, or -1 if the map is full and no equivalent element exists.
|
|
56
|
-
*/
|
|
57
|
-
insert(value, onInsert) {
|
|
58
|
-
const bound = this.lowerBound(value);
|
|
59
|
-
if (bound.equal)
|
|
60
|
-
return this._array[bound.index].index;
|
|
61
|
-
else if (this.isFull)
|
|
62
|
-
return -1;
|
|
63
|
-
const entry = new IndexedValue(this._clone(value), this._array.length);
|
|
64
|
-
if (undefined !== onInsert)
|
|
65
|
-
onInsert(entry.value);
|
|
66
|
-
this._array.splice(bound.index, 0, entry);
|
|
67
|
-
return entry.index;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Finds the index of an element equivalent to the supplied value.
|
|
71
|
-
* @param value the value to find
|
|
72
|
-
* @returns the index of an equivalent element in the map, or -1 if no such element exists.
|
|
73
|
-
*/
|
|
74
|
-
indexOf(value) {
|
|
75
|
-
const bound = this.lowerBound(value);
|
|
76
|
-
return bound.equal ? this._array[bound.index].index : -1;
|
|
77
|
-
}
|
|
78
|
-
lowerBound(value) { return lowerBound(value, this._array, (lhs, rhs) => this._compareValues(lhs, rhs.value)); }
|
|
79
|
-
/** Return an array of the elements in this map in which the array index of each element corresponds to the index assigned to it by the map. */
|
|
80
|
-
toArray() {
|
|
81
|
-
const array = [];
|
|
82
|
-
for (const entry of this._array)
|
|
83
|
-
array[entry.index] = entry.value;
|
|
84
|
-
return array;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module Collections
|
|
7
|
+
*/
|
|
8
|
+
import { lowerBound, shallowClone } from "./SortedArray";
|
|
9
|
+
/** Associates a value of type T with an index representing its insertion order in an IndexMap<T>
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export class IndexedValue {
|
|
13
|
+
constructor(value, index) {
|
|
14
|
+
this.value = value;
|
|
15
|
+
this.index = index;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Maintains a set of unique elements in sorted order and retains the insertion order of each.
|
|
20
|
+
* The uniqueness of the elements is determined by a comparison routine supplied by the user.
|
|
21
|
+
* The user may also supply a maximum size, beyond which insertions will fail.
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
export class IndexMap {
|
|
25
|
+
/**
|
|
26
|
+
* Construct a new IndexMap<T>.
|
|
27
|
+
* @param compare The function used to compare elements within the map.
|
|
28
|
+
* @param maximumSize The maximum number of elements permitted in the IndexMap. The maximum index of an element is maximumSize-1.
|
|
29
|
+
* @param clone The function invoked to clone a new element for insertion into the array. The default implementation simply returns its input.
|
|
30
|
+
*/
|
|
31
|
+
constructor(compare, maximumSize = Number.MAX_SAFE_INTEGER, clone = shallowClone) {
|
|
32
|
+
this._array = [];
|
|
33
|
+
this._compareValues = compare;
|
|
34
|
+
this._clone = clone;
|
|
35
|
+
this._maximumSize = maximumSize;
|
|
36
|
+
}
|
|
37
|
+
/** The number of elements in the map. */
|
|
38
|
+
get length() { return this._array.length; }
|
|
39
|
+
/** Returns true if the maximum number of elements have been inserted. */
|
|
40
|
+
get isFull() { return this.length >= this._maximumSize; }
|
|
41
|
+
/** Returns true if the map contains no elements. */
|
|
42
|
+
get isEmpty() { return 0 === this.length; }
|
|
43
|
+
/** Removes all elements from the map. */
|
|
44
|
+
clear() { this._array = []; }
|
|
45
|
+
/** Attempt to insert a new value into the map.
|
|
46
|
+
* If an equivalent element already exists in the map, the corresponding index is returned.
|
|
47
|
+
* If the map is full, nothing is inserted and -1 is returned.
|
|
48
|
+
* Otherwise:
|
|
49
|
+
* The new element is mapped to the next-available index (that is, the length of the map prior to insertion of this new element);
|
|
50
|
+
* the value is cloned using the function supplied to the IndexMap constructor;
|
|
51
|
+
* the cloned result is inserted into the map; and
|
|
52
|
+
* the index of the new element is returned.
|
|
53
|
+
* @param value The value to insert
|
|
54
|
+
* @param onInsert The optional callback method to call if insertion occurs with the inserted value
|
|
55
|
+
* @returns the index of the equivalent element in the map, or -1 if the map is full and no equivalent element exists.
|
|
56
|
+
*/
|
|
57
|
+
insert(value, onInsert) {
|
|
58
|
+
const bound = this.lowerBound(value);
|
|
59
|
+
if (bound.equal)
|
|
60
|
+
return this._array[bound.index].index;
|
|
61
|
+
else if (this.isFull)
|
|
62
|
+
return -1;
|
|
63
|
+
const entry = new IndexedValue(this._clone(value), this._array.length);
|
|
64
|
+
if (undefined !== onInsert)
|
|
65
|
+
onInsert(entry.value);
|
|
66
|
+
this._array.splice(bound.index, 0, entry);
|
|
67
|
+
return entry.index;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Finds the index of an element equivalent to the supplied value.
|
|
71
|
+
* @param value the value to find
|
|
72
|
+
* @returns the index of an equivalent element in the map, or -1 if no such element exists.
|
|
73
|
+
*/
|
|
74
|
+
indexOf(value) {
|
|
75
|
+
const bound = this.lowerBound(value);
|
|
76
|
+
return bound.equal ? this._array[bound.index].index : -1;
|
|
77
|
+
}
|
|
78
|
+
lowerBound(value) { return lowerBound(value, this._array, (lhs, rhs) => this._compareValues(lhs, rhs.value)); }
|
|
79
|
+
/** Return an array of the elements in this map in which the array index of each element corresponds to the index assigned to it by the map. */
|
|
80
|
+
toArray() {
|
|
81
|
+
const array = [];
|
|
82
|
+
for (const entry of this._array)
|
|
83
|
+
array[entry.index] = entry.value;
|
|
84
|
+
return array;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
87
|
//# sourceMappingURL=IndexMap.js.map
|
package/lib/esm/JsonSchema.d.ts
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Json
|
|
3
|
-
*/
|
|
4
|
-
/** @public */
|
|
5
|
-
export
|
|
6
|
-
/** @public */
|
|
7
|
-
export
|
|
8
|
-
/** @public */
|
|
9
|
-
export interface JSONSchema {
|
|
10
|
-
id?: string;
|
|
11
|
-
$id?: string;
|
|
12
|
-
$schema?: string;
|
|
13
|
-
type?: JSONSchemaTypeName | JSONSchemaTypeName[];
|
|
14
|
-
title?: string;
|
|
15
|
-
default?: JSONSchemaType;
|
|
16
|
-
definitions?: JSONSchemaMap;
|
|
17
|
-
description?: string;
|
|
18
|
-
properties?: JSONSchemaMap;
|
|
19
|
-
patternProperties?: JSONSchemaMap;
|
|
20
|
-
additionalProperties?: boolean | JSONSchema;
|
|
21
|
-
minProperties?: number;
|
|
22
|
-
maxProperties?: number;
|
|
23
|
-
dependencies?: JSONSchemaMap | {
|
|
24
|
-
[prop: string]: string[];
|
|
25
|
-
};
|
|
26
|
-
items?: JSONSchema | JSONSchema[];
|
|
27
|
-
minItems?: number;
|
|
28
|
-
maxItems?: number;
|
|
29
|
-
uniqueItems?: boolean;
|
|
30
|
-
additionalItems?: boolean | JSONSchema;
|
|
31
|
-
pattern?: string;
|
|
32
|
-
minLength?: number;
|
|
33
|
-
maxLength?: number;
|
|
34
|
-
minimum?: number;
|
|
35
|
-
maximum?: number;
|
|
36
|
-
exclusiveMinimum?: boolean | number;
|
|
37
|
-
exclusiveMaximum?: boolean | number;
|
|
38
|
-
multipleOf?: number;
|
|
39
|
-
required?: string[];
|
|
40
|
-
$ref?: string;
|
|
41
|
-
anyOf?: JSONSchema[];
|
|
42
|
-
allOf?: JSONSchema[];
|
|
43
|
-
oneOf?: JSONSchema[];
|
|
44
|
-
not?: JSONSchema;
|
|
45
|
-
enum?: JSONSchemaType[];
|
|
46
|
-
format?: string;
|
|
47
|
-
const?: any;
|
|
48
|
-
contains?: JSONSchema;
|
|
49
|
-
propertyNames?: JSONSchema;
|
|
50
|
-
$comment?: string;
|
|
51
|
-
if?: JSONSchema;
|
|
52
|
-
then?: JSONSchema;
|
|
53
|
-
else?: JSONSchema;
|
|
54
|
-
defaultSnippets?: JSONSchemaSnippet[];
|
|
55
|
-
errorMessage?: string;
|
|
56
|
-
patternErrorMessage?: string;
|
|
57
|
-
deprecationMessage?: string;
|
|
58
|
-
markdownDeprecationMessage?: string;
|
|
59
|
-
enumDescriptions?: string[];
|
|
60
|
-
markdownEnumDescriptions?: string[];
|
|
61
|
-
markdownDescription?: string;
|
|
62
|
-
doNotSuggest?: boolean;
|
|
63
|
-
suggestSortText?: string;
|
|
64
|
-
allowComments?: boolean;
|
|
65
|
-
allowTrailingCommas?: boolean;
|
|
66
|
-
}
|
|
67
|
-
/** @public */
|
|
68
|
-
export interface JSONSchemaMap {
|
|
69
|
-
[name: string]: JSONSchema;
|
|
70
|
-
}
|
|
71
|
-
/** @public */
|
|
72
|
-
export interface JSONSchemaSnippet {
|
|
73
|
-
label?: string;
|
|
74
|
-
description?: string;
|
|
75
|
-
body?: any;
|
|
76
|
-
bodyText?: string;
|
|
77
|
-
}
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Json
|
|
3
|
+
*/
|
|
4
|
+
/** @public */
|
|
5
|
+
export type JSONSchemaTypeName = "string" | "number" | "integer" | "boolean" | "null" | "array" | "object";
|
|
6
|
+
/** @public */
|
|
7
|
+
export type JSONSchemaType = string | number | boolean | object | JSONSchemaType[];
|
|
8
|
+
/** @public */
|
|
9
|
+
export interface JSONSchema {
|
|
10
|
+
id?: string;
|
|
11
|
+
$id?: string;
|
|
12
|
+
$schema?: string;
|
|
13
|
+
type?: JSONSchemaTypeName | JSONSchemaTypeName[];
|
|
14
|
+
title?: string;
|
|
15
|
+
default?: JSONSchemaType;
|
|
16
|
+
definitions?: JSONSchemaMap;
|
|
17
|
+
description?: string;
|
|
18
|
+
properties?: JSONSchemaMap;
|
|
19
|
+
patternProperties?: JSONSchemaMap;
|
|
20
|
+
additionalProperties?: boolean | JSONSchema;
|
|
21
|
+
minProperties?: number;
|
|
22
|
+
maxProperties?: number;
|
|
23
|
+
dependencies?: JSONSchemaMap | {
|
|
24
|
+
[prop: string]: string[];
|
|
25
|
+
};
|
|
26
|
+
items?: JSONSchema | JSONSchema[];
|
|
27
|
+
minItems?: number;
|
|
28
|
+
maxItems?: number;
|
|
29
|
+
uniqueItems?: boolean;
|
|
30
|
+
additionalItems?: boolean | JSONSchema;
|
|
31
|
+
pattern?: string;
|
|
32
|
+
minLength?: number;
|
|
33
|
+
maxLength?: number;
|
|
34
|
+
minimum?: number;
|
|
35
|
+
maximum?: number;
|
|
36
|
+
exclusiveMinimum?: boolean | number;
|
|
37
|
+
exclusiveMaximum?: boolean | number;
|
|
38
|
+
multipleOf?: number;
|
|
39
|
+
required?: string[];
|
|
40
|
+
$ref?: string;
|
|
41
|
+
anyOf?: JSONSchema[];
|
|
42
|
+
allOf?: JSONSchema[];
|
|
43
|
+
oneOf?: JSONSchema[];
|
|
44
|
+
not?: JSONSchema;
|
|
45
|
+
enum?: JSONSchemaType[];
|
|
46
|
+
format?: string;
|
|
47
|
+
const?: any;
|
|
48
|
+
contains?: JSONSchema;
|
|
49
|
+
propertyNames?: JSONSchema;
|
|
50
|
+
$comment?: string;
|
|
51
|
+
if?: JSONSchema;
|
|
52
|
+
then?: JSONSchema;
|
|
53
|
+
else?: JSONSchema;
|
|
54
|
+
defaultSnippets?: JSONSchemaSnippet[];
|
|
55
|
+
errorMessage?: string;
|
|
56
|
+
patternErrorMessage?: string;
|
|
57
|
+
deprecationMessage?: string;
|
|
58
|
+
markdownDeprecationMessage?: string;
|
|
59
|
+
enumDescriptions?: string[];
|
|
60
|
+
markdownEnumDescriptions?: string[];
|
|
61
|
+
markdownDescription?: string;
|
|
62
|
+
doNotSuggest?: boolean;
|
|
63
|
+
suggestSortText?: string;
|
|
64
|
+
allowComments?: boolean;
|
|
65
|
+
allowTrailingCommas?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/** @public */
|
|
68
|
+
export interface JSONSchemaMap {
|
|
69
|
+
[name: string]: JSONSchema;
|
|
70
|
+
}
|
|
71
|
+
/** @public */
|
|
72
|
+
export interface JSONSchemaSnippet {
|
|
73
|
+
label?: string;
|
|
74
|
+
description?: string;
|
|
75
|
+
body?: any;
|
|
76
|
+
bodyText?: string;
|
|
77
|
+
}
|
|
78
78
|
//# sourceMappingURL=JsonSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../src/JsonSchema.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,cAAc;AACd,
|
|
1
|
+
{"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../src/JsonSchema.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/JsonSchema.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/** @packageDocumentation
|
|
6
|
-
* @module Json
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module Json
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
9
|
//# sourceMappingURL=JsonSchema.js.map
|
package/lib/esm/JsonUtils.d.ts
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Json
|
|
3
|
-
*/
|
|
4
|
-
/** Utility functions for converting from JSON objects, with default values.
|
|
5
|
-
* @public
|
|
6
|
-
*/
|
|
7
|
-
export declare namespace JsonUtils {
|
|
8
|
-
/** Get a value as a boolean.
|
|
9
|
-
* @param json the input JSON object
|
|
10
|
-
* @param defaultVal default value if json cannot be converted to boolean
|
|
11
|
-
* @returns the value of json as a boolean, or default value
|
|
12
|
-
*/
|
|
13
|
-
function asBool(json: any, defaultVal?: boolean): boolean;
|
|
14
|
-
/** Get a value as an integer.
|
|
15
|
-
* @param json the input JSON object
|
|
16
|
-
* @param defaultVal default value if json cannot be converted to integer
|
|
17
|
-
* @returns the value of json as an integer, or default value
|
|
18
|
-
*/
|
|
19
|
-
function asInt(json: any, defaultVal?: number): number;
|
|
20
|
-
/** Get a value as a double.
|
|
21
|
-
* @param json the input JSON object
|
|
22
|
-
* @param defaultVal default value if json cannot be converted to double
|
|
23
|
-
* @returns the value of json as a double, or default value
|
|
24
|
-
*/
|
|
25
|
-
function asDouble(json: any, defaultVal?: number): number;
|
|
26
|
-
/** Get a value as a string.
|
|
27
|
-
* @param json the input JSON object
|
|
28
|
-
* @param defaultVal default value if json cannot be converted to string
|
|
29
|
-
* @returns the value of json as a string, or default value
|
|
30
|
-
*/
|
|
31
|
-
function asString(json: any, defaultVal?: string): string;
|
|
32
|
-
/** Get a value as an array.
|
|
33
|
-
* @param json the input JSON object
|
|
34
|
-
* @returns the input JSON object if it is an array, otherwise undefined
|
|
35
|
-
*/
|
|
36
|
-
function asArray(json: any): any;
|
|
37
|
-
/** Get a value as an object.
|
|
38
|
-
* @param json the input JSON object
|
|
39
|
-
* @returns the input JSON object if it is an object, otherwise undefined
|
|
40
|
-
*/
|
|
41
|
-
function asObject(json: any): any;
|
|
42
|
-
/** Set or remove a number on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,
|
|
43
|
-
* otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.
|
|
44
|
-
* @param json the JSON object to affect
|
|
45
|
-
* @param key the name of the member to set or remove
|
|
46
|
-
* @param val the value to set
|
|
47
|
-
* @param defaultVal the default value.
|
|
48
|
-
*/
|
|
49
|
-
function setOrRemoveNumber(json: any, key: string, val: number, defaultVal: number): void;
|
|
50
|
-
/** Set or remove a boolean on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,
|
|
51
|
-
* otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.
|
|
52
|
-
* @param json the JSON object to affect
|
|
53
|
-
* @param key the name of the member to set or remove
|
|
54
|
-
* @param val the value to set
|
|
55
|
-
* @param defaultVal the default value.
|
|
56
|
-
*/
|
|
57
|
-
function setOrRemoveBoolean(json: any, key: string, val: boolean, defaultVal: boolean): void;
|
|
58
|
-
/** Determine if a Javascript object is equivalent to `{}`.
|
|
59
|
-
* @param json The JSON object to test.
|
|
60
|
-
* @returns true if `json` is an Object with no keys.
|
|
61
|
-
*/
|
|
62
|
-
function isEmptyObject(json: any): boolean;
|
|
63
|
-
/** Determine if the input is undefined or an empty Javascript object.
|
|
64
|
-
* @param json The JSON object to test.
|
|
65
|
-
* @returns true if `json` is undefined or is an Object with no keys (equivalent to `{}`).
|
|
66
|
-
*/
|
|
67
|
-
function isEmptyObjectOrUndefined(json: any): boolean;
|
|
68
|
-
/** Determine if the input is a non-empty Javascript object.
|
|
69
|
-
* @param value The value to test.
|
|
70
|
-
* @returns true if `value` is an Object with at least one key.
|
|
71
|
-
*/
|
|
72
|
-
function isNonEmptyObject(value: any): value is Object;
|
|
73
|
-
/**
|
|
74
|
-
* Convert the input object into a "pure" JavaScript object, with only instances of "object" or primitives in the returned value.
|
|
75
|
-
* Works recursively for object members, and over arrays entries. Calls "toJSON" on any members that implement it.
|
|
76
|
-
*/
|
|
77
|
-
function toObject(val: any): any;
|
|
78
|
-
}
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Json
|
|
3
|
+
*/
|
|
4
|
+
/** Utility functions for converting from JSON objects, with default values.
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export declare namespace JsonUtils {
|
|
8
|
+
/** Get a value as a boolean.
|
|
9
|
+
* @param json the input JSON object
|
|
10
|
+
* @param defaultVal default value if json cannot be converted to boolean
|
|
11
|
+
* @returns the value of json as a boolean, or default value
|
|
12
|
+
*/
|
|
13
|
+
function asBool(json: any, defaultVal?: boolean): boolean;
|
|
14
|
+
/** Get a value as an integer.
|
|
15
|
+
* @param json the input JSON object
|
|
16
|
+
* @param defaultVal default value if json cannot be converted to integer
|
|
17
|
+
* @returns the value of json as an integer, or default value
|
|
18
|
+
*/
|
|
19
|
+
function asInt(json: any, defaultVal?: number): number;
|
|
20
|
+
/** Get a value as a double.
|
|
21
|
+
* @param json the input JSON object
|
|
22
|
+
* @param defaultVal default value if json cannot be converted to double
|
|
23
|
+
* @returns the value of json as a double, or default value
|
|
24
|
+
*/
|
|
25
|
+
function asDouble(json: any, defaultVal?: number): number;
|
|
26
|
+
/** Get a value as a string.
|
|
27
|
+
* @param json the input JSON object
|
|
28
|
+
* @param defaultVal default value if json cannot be converted to string
|
|
29
|
+
* @returns the value of json as a string, or default value
|
|
30
|
+
*/
|
|
31
|
+
function asString(json: any, defaultVal?: string): string;
|
|
32
|
+
/** Get a value as an array.
|
|
33
|
+
* @param json the input JSON object
|
|
34
|
+
* @returns the input JSON object if it is an array, otherwise undefined
|
|
35
|
+
*/
|
|
36
|
+
function asArray(json: any): any;
|
|
37
|
+
/** Get a value as an object.
|
|
38
|
+
* @param json the input JSON object
|
|
39
|
+
* @returns the input JSON object if it is an object, otherwise undefined
|
|
40
|
+
*/
|
|
41
|
+
function asObject(json: any): any;
|
|
42
|
+
/** Set or remove a number on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,
|
|
43
|
+
* otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.
|
|
44
|
+
* @param json the JSON object to affect
|
|
45
|
+
* @param key the name of the member to set or remove
|
|
46
|
+
* @param val the value to set
|
|
47
|
+
* @param defaultVal the default value.
|
|
48
|
+
*/
|
|
49
|
+
function setOrRemoveNumber(json: any, key: string, val: number, defaultVal: number): void;
|
|
50
|
+
/** Set or remove a boolean on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,
|
|
51
|
+
* otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.
|
|
52
|
+
* @param json the JSON object to affect
|
|
53
|
+
* @param key the name of the member to set or remove
|
|
54
|
+
* @param val the value to set
|
|
55
|
+
* @param defaultVal the default value.
|
|
56
|
+
*/
|
|
57
|
+
function setOrRemoveBoolean(json: any, key: string, val: boolean, defaultVal: boolean): void;
|
|
58
|
+
/** Determine if a Javascript object is equivalent to `{}`.
|
|
59
|
+
* @param json The JSON object to test.
|
|
60
|
+
* @returns true if `json` is an Object with no keys.
|
|
61
|
+
*/
|
|
62
|
+
function isEmptyObject(json: any): boolean;
|
|
63
|
+
/** Determine if the input is undefined or an empty Javascript object.
|
|
64
|
+
* @param json The JSON object to test.
|
|
65
|
+
* @returns true if `json` is undefined or is an Object with no keys (equivalent to `{}`).
|
|
66
|
+
*/
|
|
67
|
+
function isEmptyObjectOrUndefined(json: any): boolean;
|
|
68
|
+
/** Determine if the input is a non-empty Javascript object.
|
|
69
|
+
* @param value The value to test.
|
|
70
|
+
* @returns true if `value` is an Object with at least one key.
|
|
71
|
+
*/
|
|
72
|
+
function isNonEmptyObject(value: any): value is Object;
|
|
73
|
+
/**
|
|
74
|
+
* Convert the input object into a "pure" JavaScript object, with only instances of "object" or primitives in the returned value.
|
|
75
|
+
* Works recursively for object members, and over arrays entries. Calls "toJSON" on any members that implement it.
|
|
76
|
+
*/
|
|
77
|
+
function toObject(val: any): any;
|
|
78
|
+
}
|
|
79
79
|
//# sourceMappingURL=JsonUtils.d.ts.map
|