@augment-vir/common 13.2.4 → 13.4.0

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.
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOrSetFromMap = void 0;
4
+ function getOrSetFromMap(map, key, createNewValueCallback) {
5
+ const mapKey = key;
6
+ if (map.has(mapKey)) {
7
+ return map.get(mapKey);
8
+ }
9
+ else {
10
+ const newValue = createNewValueCallback();
11
+ map.set(mapKey, newValue);
12
+ return newValue;
13
+ }
14
+ }
15
+ exports.getOrSetFromMap = getOrSetFromMap;
@@ -1,7 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isLengthAtLeast = void 0;
3
+ exports.assertLengthAtLeast = exports.isLengthAtLeast = void 0;
4
4
  function isLengthAtLeast(array, length) {
5
- return array.length >= length;
5
+ try {
6
+ assertLengthAtLeast(array, length);
7
+ return true;
8
+ }
9
+ catch (error) {
10
+ return false;
11
+ }
6
12
  }
7
13
  exports.isLengthAtLeast = isLengthAtLeast;
14
+ function assertLengthAtLeast(array, length, arrayName) {
15
+ if (array.length < length) {
16
+ throw new Error(arrayName
17
+ ? `'${arrayName}' is not at least '${length}' in length.`
18
+ : `Array is not at least '${length}' in length.`);
19
+ }
20
+ }
21
+ exports.assertLengthAtLeast = assertLengthAtLeast;
package/dist/cjs/index.js CHANGED
@@ -26,6 +26,7 @@ __exportStar(require("./augments/error"), exports);
26
26
  __exportStar(require("./augments/function"), exports);
27
27
  __exportStar(require("./augments/json"), exports);
28
28
  __exportStar(require("./augments/json-compatible"), exports);
29
+ __exportStar(require("./augments/map"), exports);
29
30
  __exportStar(require("./augments/object/enum"), exports);
30
31
  __exportStar(require("./augments/object/filter-object"), exports);
31
32
  __exportStar(require("./augments/object/has-key"), exports);
@@ -0,0 +1,11 @@
1
+ export function getOrSetFromMap(map, key, createNewValueCallback) {
2
+ const mapKey = key;
3
+ if (map.has(mapKey)) {
4
+ return map.get(mapKey);
5
+ }
6
+ else {
7
+ const newValue = createNewValueCallback();
8
+ map.set(mapKey, newValue);
9
+ return newValue;
10
+ }
11
+ }
@@ -1,3 +1,16 @@
1
1
  export function isLengthAtLeast(array, length) {
2
- return array.length >= length;
2
+ try {
3
+ assertLengthAtLeast(array, length);
4
+ return true;
5
+ }
6
+ catch (error) {
7
+ return false;
8
+ }
9
+ }
10
+ export function assertLengthAtLeast(array, length, arrayName) {
11
+ if (array.length < length) {
12
+ throw new Error(arrayName
13
+ ? `'${arrayName}' is not at least '${length}' in length.`
14
+ : `Array is not at least '${length}' in length.`);
15
+ }
3
16
  }
package/dist/esm/index.js CHANGED
@@ -10,6 +10,7 @@ export * from './augments/error';
10
10
  export * from './augments/function';
11
11
  export * from './augments/json';
12
12
  export * from './augments/json-compatible';
13
+ export * from './augments/map';
13
14
  export * from './augments/object/enum';
14
15
  export * from './augments/object/filter-object';
15
16
  export * from './augments/object/has-key';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Get a value from a map or call the callback and return its result and store the result in the
3
+ * map.
4
+ */
5
+ export declare function getOrSetFromMap<MapKey extends object, MapValue>(map: WeakMap<MapKey, MapValue>, key: MapKey, createNewValueCallback: () => MapValue): MapValue;
6
+ export declare function getOrSetFromMap<MapKey, MapValue>(map: Map<MapKey, MapValue>, key: MapKey, createNewValueCallback: () => MapValue): MapValue;
@@ -5,4 +5,5 @@ export type AtLeastTuple<ArrayElementGeneric, LengthGeneric extends number> = re
5
5
  ...(ArrayElementGeneric | undefined)[]
6
6
  ];
7
7
  export declare function isLengthAtLeast<ArrayElementGeneric, LengthGeneric extends number>(array: ReadonlyArray<ArrayElementGeneric | undefined>, length: LengthGeneric): array is AtLeastTuple<ArrayElementGeneric, LengthGeneric>;
8
+ export declare function assertLengthAtLeast<ArrayElementGeneric, LengthGeneric extends number>(array: ReadonlyArray<ArrayElementGeneric | undefined>, length: LengthGeneric, arrayName?: string): asserts array is AtLeastTuple<ArrayElementGeneric, LengthGeneric>;
8
9
  export {};
@@ -10,6 +10,7 @@ export * from './augments/error';
10
10
  export * from './augments/function';
11
11
  export * from './augments/json';
12
12
  export * from './augments/json-compatible';
13
+ export * from './augments/map';
13
14
  export * from './augments/object/enum';
14
15
  export * from './augments/object/filter-object';
15
16
  export * from './augments/object/has-key';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@augment-vir/common",
3
- "version": "13.2.4",
3
+ "version": "13.4.0",
4
4
  "homepage": "https://github.com/electrovir/augment-vir/tree/main/packages/common",
5
5
  "bugs": {
6
6
  "url": "https://github.com/electrovir/augment-vir/issues"