@cargolift-cdi/lib-payload 0.1.10 → 0.1.11
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/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/util/payload-pointer.util.js +113 -0
- package/dist/cjs/util/payload-pointer.util.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/util/payload-pointer.util.js +105 -0
- package/dist/esm/util/payload-pointer.util.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/util/payload-pointer.util.d.ts +7 -0
- package/package.json +1 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeSegment = encodeSegment;
|
|
4
|
+
exports.parsePointer = parsePointer;
|
|
5
|
+
exports.existsPathPayload = existsPathPayload;
|
|
6
|
+
exports.getValuePayload = getValuePayload;
|
|
7
|
+
exports.removePathPayload = removePathPayload;
|
|
8
|
+
exports.setValuePayload = setValuePayload;
|
|
9
|
+
function decodeSegment(seg) {
|
|
10
|
+
return seg.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
11
|
+
}
|
|
12
|
+
function encodeSegment(seg) {
|
|
13
|
+
return seg.replace(/~/g, "~0").replace(/\//g, "~1");
|
|
14
|
+
}
|
|
15
|
+
function parsePointer(pointer) {
|
|
16
|
+
if (!pointer || pointer === "/")
|
|
17
|
+
return [];
|
|
18
|
+
if (pointer[0] !== "/")
|
|
19
|
+
throw new Error(`Invalid JSON Pointer: ${pointer}`);
|
|
20
|
+
return pointer.substring(1).split("/").map(decodeSegment);
|
|
21
|
+
}
|
|
22
|
+
function existsPathPayload(obj, pointer) {
|
|
23
|
+
try {
|
|
24
|
+
const { exists } = find(obj, parsePointer(pointer));
|
|
25
|
+
return exists;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function getValuePayload(obj, pointer) {
|
|
32
|
+
const segs = parsePointer(pointer);
|
|
33
|
+
let cur = obj;
|
|
34
|
+
for (let i = 0; i < segs.length; i++) {
|
|
35
|
+
if (cur == null)
|
|
36
|
+
return undefined;
|
|
37
|
+
cur = cur[segs[i]];
|
|
38
|
+
}
|
|
39
|
+
return cur;
|
|
40
|
+
}
|
|
41
|
+
function removePathPayload(obj, pointer) {
|
|
42
|
+
const segs = parsePointer(pointer);
|
|
43
|
+
if (segs.length === 0)
|
|
44
|
+
return false;
|
|
45
|
+
let cur = obj;
|
|
46
|
+
for (let i = 0; i < segs.length - 1; i++) {
|
|
47
|
+
if (cur == null)
|
|
48
|
+
return false;
|
|
49
|
+
cur = cur[segs[i]];
|
|
50
|
+
}
|
|
51
|
+
const last = segs[segs.length - 1];
|
|
52
|
+
if (cur == null || !(last in cur))
|
|
53
|
+
return false;
|
|
54
|
+
if (Array.isArray(cur)) {
|
|
55
|
+
const idx = typeof last === "string" ? parseInt(last, 10) : last;
|
|
56
|
+
if (!Number.isNaN(idx)) {
|
|
57
|
+
cur.splice(idx, 1);
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
delete cur[last];
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
function setValuePayload(obj, pointer, value, createIfMissing = false) {
|
|
65
|
+
const segs = parsePointer(pointer);
|
|
66
|
+
if (segs.length === 0)
|
|
67
|
+
throw new Error("Cannot overwrite root with setValuePayload");
|
|
68
|
+
let cur = obj;
|
|
69
|
+
for (let i = 0; i < segs.length - 1; i++) {
|
|
70
|
+
const seg = segs[i];
|
|
71
|
+
let next = cur[seg];
|
|
72
|
+
if (next == null) {
|
|
73
|
+
if (!createIfMissing)
|
|
74
|
+
throw new Error(`Missing path: ${pointer}`);
|
|
75
|
+
const nextSeg = segs[i + 1];
|
|
76
|
+
const asIndex = parseArrayIndex(nextSeg);
|
|
77
|
+
next = Number.isInteger(asIndex) ? [] : {};
|
|
78
|
+
cur[seg] = next;
|
|
79
|
+
}
|
|
80
|
+
cur = next;
|
|
81
|
+
}
|
|
82
|
+
const last = segs[segs.length - 1];
|
|
83
|
+
if (Array.isArray(cur)) {
|
|
84
|
+
const idx = parseArrayIndex(last);
|
|
85
|
+
if (!Number.isInteger(idx))
|
|
86
|
+
throw new Error(`Invalid array index: ${String(last)}`);
|
|
87
|
+
ensureArraySize(cur, idx);
|
|
88
|
+
cur[idx] = value;
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
cur[last] = value;
|
|
92
|
+
}
|
|
93
|
+
function ensureArraySize(arr, index) {
|
|
94
|
+
while (arr.length <= index)
|
|
95
|
+
arr.push(undefined);
|
|
96
|
+
}
|
|
97
|
+
function parseArrayIndex(seg) {
|
|
98
|
+
const s = String(seg);
|
|
99
|
+
if (s === "-")
|
|
100
|
+
return NaN;
|
|
101
|
+
const n = Number(s);
|
|
102
|
+
return Number.isInteger(n) && n >= 0 ? n : NaN;
|
|
103
|
+
}
|
|
104
|
+
function find(obj, segs) {
|
|
105
|
+
let cur = obj;
|
|
106
|
+
for (let i = 0; i < segs.length; i++) {
|
|
107
|
+
if (cur == null || !(segs[i] in cur))
|
|
108
|
+
return { exists: false };
|
|
109
|
+
cur = cur[segs[i]];
|
|
110
|
+
}
|
|
111
|
+
return { exists: true };
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=payload-pointer.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-pointer.util.js","sourceRoot":"","sources":["../../../src/util/payload-pointer.util.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -7,4 +7,5 @@ export * from "./payload-condition/payload-condition.js";
|
|
|
7
7
|
export * from "./payload-condition/payload-condition.interface.js";
|
|
8
8
|
export * from "./util/payload-path.util.js";
|
|
9
9
|
export * from "./util/payload-comparator.util.js";
|
|
10
|
+
export * from "./util/payload-pointer.util.js";
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sDAAsD,CAAC;AACrE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,oDAAoD,CAAC;AAEnE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0CAA0C,CAAC;AACzD,cAAc,oDAAoD,CAAC;AACnE,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sDAAsD,CAAC;AACrE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,oDAAoD,CAAC;AAEnE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0CAA0C,CAAC;AACzD,cAAc,oDAAoD,CAAC;AACnE,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC"}
|