@agoric/internal 0.3.3-dev-f199a73.0.f199a73 → 0.3.3-dev-98e20a0.0.98e20a0
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 +4 -4
- package/src/js-utils.d.ts +14 -0
- package/src/js-utils.d.ts.map +1 -1
- package/src/js-utils.js +19 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/internal",
|
|
3
|
-
"version": "0.3.3-dev-
|
|
3
|
+
"version": "0.3.3-dev-98e20a0.0.98e20a0",
|
|
4
4
|
"description": "Externally unsupported utilities internal to agoric-sdk",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"lint:types": "yarn run -T tsgo --tsBuildInfoFile tsconfig.tsgo.tsbuildinfo"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@agoric/base-zone": "0.1.1-dev-
|
|
27
|
+
"@agoric/base-zone": "0.1.1-dev-98e20a0.0.98e20a0",
|
|
28
28
|
"@endo/cache-map": "^1.1.0",
|
|
29
29
|
"@endo/common": "^1.4.0",
|
|
30
30
|
"@endo/compartment-mapper": "^2.3.0",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"jessie.js": "^0.3.4"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@agoric/cosmic-proto": "0.4.1-dev-
|
|
45
|
+
"@agoric/cosmic-proto": "0.4.1-dev-98e20a0.0.98e20a0",
|
|
46
46
|
"@endo/exo": "^1.7.0",
|
|
47
47
|
"@endo/init": "^1.1.13",
|
|
48
48
|
"@endo/ses-ava": "^1.4.2",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"typeCoverage": {
|
|
63
63
|
"atLeast": 95.63
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "98e20a0ea189c7d4a12193a29dccff170e0032a3"
|
|
66
66
|
}
|
package/src/js-utils.d.ts
CHANGED
|
@@ -25,6 +25,20 @@ export const fromTypedEntries: FromTypedEntries;
|
|
|
25
25
|
*/
|
|
26
26
|
export const typedMap: TypedMap;
|
|
27
27
|
export const logLevels: readonly ["debug", "log", "info", "warn", "error"];
|
|
28
|
+
/** @typedef {(typeof logLevels)[keyof typeof logLevels & number]} LogLevel */
|
|
29
|
+
/** @typedef {Pick<Console, LogLevel>} LimitedConsole */
|
|
30
|
+
/**
|
|
31
|
+
* Compare two same-type values using built-in operators.
|
|
32
|
+
* All zeros are placed in an equivalence class that ignores their sign, all
|
|
33
|
+
* NaNs are placed in an equivalence class after all other numbers, and strings
|
|
34
|
+
* are compared lexicographically by UTF-16 code unit.
|
|
35
|
+
*
|
|
36
|
+
* @type {((a: bigint, b: bigint) => -1 | 0 | 1) &
|
|
37
|
+
* ((a: number, b: number) => -1 | 0 | 1) &
|
|
38
|
+
* ((a: string, b: string) => -1 | 0 | 1)
|
|
39
|
+
* }
|
|
40
|
+
*/
|
|
41
|
+
export const naiveCompare: ((a: bigint, b: bigint) => -1 | 0 | 1) & ((a: number, b: number) => -1 | 0 | 1) & ((a: string, b: string) => -1 | 0 | 1);
|
|
28
42
|
export function deepCopyJsonable<T>(value: T): T;
|
|
29
43
|
export function deepMapObject<O extends Record<string, unknown>, M>(obj: O, mapper: <T extends Record<string, unknown>, K extends string & keyof T>(value: T[K], name: K, record: T) => T[K] | M): O | { [K_1 in keyof O]: K_1 extends string ? O[K_1] | M : never; };
|
|
30
44
|
export function defineName<F extends Function>(name: string, fn: F): F;
|
package/src/js-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js-utils.d.ts","sourceRoot":"","sources":["js-utils.js"],"names":[],"mappings":"AAQA,yEAAyE;AACzE,mBAA0C,IAAI,CAAE;AAEhD;;;;;;;GAOG;AACH,2BAAuC,YAAY,CAAsB;AAEzE;;;;;;GAMG;AACH,+BAA2C,gBAAgB,CAEzD;AAEF;;;;;GAKG;AACH,uBAAmC,QAAQ,CAEzC;AAEF,2EAMG;
|
|
1
|
+
{"version":3,"file":"js-utils.d.ts","sourceRoot":"","sources":["js-utils.js"],"names":[],"mappings":"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"}
|
package/src/js-utils.js
CHANGED
|
@@ -53,6 +53,25 @@ Object.freeze(logLevels);
|
|
|
53
53
|
|
|
54
54
|
/** @typedef {Pick<Console, LogLevel>} LimitedConsole */
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Compare two same-type values using built-in operators.
|
|
58
|
+
* All zeros are placed in an equivalence class that ignores their sign, all
|
|
59
|
+
* NaNs are placed in an equivalence class after all other numbers, and strings
|
|
60
|
+
* are compared lexicographically by UTF-16 code unit.
|
|
61
|
+
*
|
|
62
|
+
* @type {((a: bigint, b: bigint) => -1 | 0 | 1) &
|
|
63
|
+
* ((a: number, b: number) => -1 | 0 | 1) &
|
|
64
|
+
* ((a: string, b: string) => -1 | 0 | 1)
|
|
65
|
+
* }
|
|
66
|
+
*/
|
|
67
|
+
export const naiveCompare = (a, b) => {
|
|
68
|
+
if (a < b) return -1;
|
|
69
|
+
if (a > b) return 1;
|
|
70
|
+
return /** @type {-1 | 0 | 1} */ (
|
|
71
|
+
(Number.isNaN(a) ? 1 : 0) - (Number.isNaN(b) ? 1 : 0)
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
|
|
56
75
|
/**
|
|
57
76
|
* Deep-copy a value by round-tripping it through JSON (which drops
|
|
58
77
|
* function/symbol/undefined values and properties that are non-enumerable
|