@bian-womp/spark-graph 0.1.4 → 0.1.5
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/lib/cjs/index.cjs +40 -39
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/builder/Registry.d.ts +23 -11
- package/lib/cjs/src/builder/Registry.d.ts.map +1 -1
- package/lib/cjs/src/examples/shared.d.ts.map +1 -1
- package/lib/esm/index.js +40 -39
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/builder/Registry.d.ts +23 -11
- package/lib/esm/src/builder/Registry.d.ts.map +1 -1
- package/lib/esm/src/examples/shared.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -9,6 +9,14 @@ export declare class CategoryRegistry {
|
|
|
9
9
|
export declare class Registry {
|
|
10
10
|
readonly types: Map<string, DataTypeDescriptor<any>>;
|
|
11
11
|
readonly nodes: Map<string, NodeTypeDescriptor<Record<string, string>, Record<string, string>, unknown, (inputs: Record<string, unknown>, ctx: NodeContext<unknown>) => void | Record<string, unknown> | Promise<void | Record<string, unknown>>>>;
|
|
12
|
+
readonly enums: Map<string, {
|
|
13
|
+
options: Array<{
|
|
14
|
+
value: number;
|
|
15
|
+
label: string;
|
|
16
|
+
}>;
|
|
17
|
+
valueToLabel: Map<number, string>;
|
|
18
|
+
labelToValue: Map<string, number>;
|
|
19
|
+
}>;
|
|
12
20
|
readonly categories: CategoryRegistry;
|
|
13
21
|
readonly serializers: Map<string, {
|
|
14
22
|
serialize: (value: unknown) => unknown;
|
|
@@ -16,7 +24,6 @@ export declare class Registry {
|
|
|
16
24
|
}>;
|
|
17
25
|
private coercions;
|
|
18
26
|
private asyncCoercions;
|
|
19
|
-
private enums;
|
|
20
27
|
registerType(desc: DataTypeDescriptor, opts?: {
|
|
21
28
|
withArray?: boolean;
|
|
22
29
|
arrayId?: string;
|
|
@@ -37,15 +44,20 @@ export declare class Registry {
|
|
|
37
44
|
to: string;
|
|
38
45
|
async: boolean;
|
|
39
46
|
}>;
|
|
40
|
-
registerEnum(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
registerEnum(desc: {
|
|
48
|
+
id: string;
|
|
49
|
+
displayName?: string;
|
|
50
|
+
options: Array<{
|
|
51
|
+
value: number;
|
|
52
|
+
label: string;
|
|
53
|
+
}>;
|
|
54
|
+
opts?: {
|
|
55
|
+
labelType?: string;
|
|
56
|
+
valueType?: string;
|
|
57
|
+
withArray?: boolean;
|
|
58
|
+
arrayId?: string;
|
|
59
|
+
arrayPickFirstDefined?: boolean;
|
|
60
|
+
};
|
|
61
|
+
}): this;
|
|
50
62
|
}
|
|
51
63
|
//# sourceMappingURL=Registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../../../../src/builder/Registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAuD;IACzE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI;IAIrE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IAG7D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAGzB;AAED,qBAAa,QAAQ;IACnB,QAAQ,CAAC,KAAK,uCAA8C;IAC5D,QAAQ,CAAC,KAAK,qOAAyC;IACvD,QAAQ,CAAC,UAAU,mBAA0B;IAC7C,QAAQ,CAAC,WAAW;mBAGL,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO;qBACzB,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO;OAEvC;IAEJ,OAAO,CAAC,SAAS,CAAkD;IACnE,OAAO,CAAC,cAAc,CAGlB;
|
|
1
|
+
{"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../../../../src/builder/Registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/examples/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,eAAe,CAAC;AAGvB,wBAAgB,uBAAuB,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/examples/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,eAAe,CAAC;AAGvB,wBAAgB,uBAAuB,IAAI,QAAQ,CAoYlD;AAED,wBAAgB,wBAAwB,IAAI,eAAe,CAc1D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,QA2BnD;AAqBD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,QA6BvD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,6BAUrE"}
|
package/lib/esm/index.js
CHANGED
|
@@ -17,11 +17,11 @@ class Registry {
|
|
|
17
17
|
constructor() {
|
|
18
18
|
this.types = new Map();
|
|
19
19
|
this.nodes = new Map();
|
|
20
|
+
this.enums = new Map();
|
|
20
21
|
this.categories = new CategoryRegistry();
|
|
21
22
|
this.serializers = new Map();
|
|
22
23
|
this.coercions = new Map();
|
|
23
24
|
this.asyncCoercions = new Map();
|
|
24
|
-
this.enums = new Map();
|
|
25
25
|
}
|
|
26
26
|
registerType(desc, opts) {
|
|
27
27
|
this.types.set(desc.id, desc);
|
|
@@ -122,33 +122,37 @@ class Registry {
|
|
|
122
122
|
return out;
|
|
123
123
|
}
|
|
124
124
|
// Enum support
|
|
125
|
-
registerEnum(
|
|
125
|
+
registerEnum(desc) {
|
|
126
|
+
const { id, displayName, options, opts } = desc;
|
|
127
|
+
const labelType = opts?.labelType ?? "base.string";
|
|
128
|
+
const valueType = opts?.valueType ?? "base.float";
|
|
126
129
|
const valueToLabel = new Map();
|
|
127
130
|
const labelToValue = new Map();
|
|
128
131
|
for (const { value, label } of options) {
|
|
129
132
|
valueToLabel.set(value, label);
|
|
130
133
|
labelToValue.set(label.toLowerCase(), value);
|
|
131
134
|
}
|
|
132
|
-
this.enums.set(
|
|
135
|
+
this.enums.set(id, {
|
|
133
136
|
options,
|
|
134
137
|
valueToLabel,
|
|
135
138
|
labelToValue,
|
|
136
139
|
});
|
|
137
140
|
// Register type descriptor and serializer for enum (stored as number)
|
|
138
141
|
this.registerType({
|
|
139
|
-
id
|
|
142
|
+
id,
|
|
143
|
+
displayName,
|
|
140
144
|
validate: (v) => typeof v === "number" && valueToLabel.has(Number(v)),
|
|
141
|
-
});
|
|
142
|
-
this.registerSerializer(
|
|
145
|
+
}, opts);
|
|
146
|
+
this.registerSerializer(id, {
|
|
143
147
|
serialize: (v) => v,
|
|
144
148
|
deserialize: (d) => Number(d),
|
|
145
149
|
});
|
|
146
150
|
// Coercions: string -> enum (by label), float -> enum (by numeric value), enum -> string (label)
|
|
147
|
-
this.registerCoercion(labelType,
|
|
151
|
+
this.registerCoercion(labelType, id, (value) => {
|
|
148
152
|
const s = String(value ?? "")
|
|
149
153
|
.trim()
|
|
150
154
|
.toLowerCase();
|
|
151
|
-
const rec = this.enums.get(
|
|
155
|
+
const rec = this.enums.get(id);
|
|
152
156
|
if (!rec)
|
|
153
157
|
return value;
|
|
154
158
|
if (rec.labelToValue.has(s))
|
|
@@ -158,33 +162,24 @@ class Registry {
|
|
|
158
162
|
return asNum;
|
|
159
163
|
return Array.from(rec.valueToLabel.keys())[0] ?? 0;
|
|
160
164
|
});
|
|
161
|
-
this.registerCoercion(valueType,
|
|
165
|
+
this.registerCoercion(valueType, id, (value) => {
|
|
162
166
|
const n = Number(value);
|
|
163
|
-
const rec = this.enums.get(
|
|
167
|
+
const rec = this.enums.get(id);
|
|
164
168
|
if (!rec)
|
|
165
169
|
return value;
|
|
166
170
|
return rec.valueToLabel.has(n)
|
|
167
171
|
? n
|
|
168
172
|
: Array.from(rec.valueToLabel.keys())[0] ?? 0;
|
|
169
173
|
});
|
|
170
|
-
this.registerCoercion(
|
|
174
|
+
this.registerCoercion(id, labelType, (value) => {
|
|
171
175
|
const n = Number(value);
|
|
172
|
-
const rec = this.enums.get(
|
|
176
|
+
const rec = this.enums.get(id);
|
|
173
177
|
if (!rec)
|
|
174
178
|
return String(value);
|
|
175
179
|
return rec.valueToLabel.get(n) ?? String(n);
|
|
176
180
|
});
|
|
177
181
|
return this;
|
|
178
182
|
}
|
|
179
|
-
getEnumOptions(enumTypeId) {
|
|
180
|
-
return this.enums.get(enumTypeId)?.options ?? [];
|
|
181
|
-
}
|
|
182
|
-
getEnumLabel(enumTypeId, value) {
|
|
183
|
-
return this.enums.get(enumTypeId)?.valueToLabel.get(value);
|
|
184
|
-
}
|
|
185
|
-
getEnumValue(enumTypeId, label) {
|
|
186
|
-
return this.enums.get(enumTypeId)?.labelToValue.get(label.toLowerCase());
|
|
187
|
-
}
|
|
188
183
|
}
|
|
189
184
|
|
|
190
185
|
class GraphRuntime {
|
|
@@ -1434,25 +1429,31 @@ function setupBasicGraphRegistry() {
|
|
|
1434
1429
|
impl: (ins) => ({ Text: String(ins.Value) }),
|
|
1435
1430
|
});
|
|
1436
1431
|
// Enums: Math Operation
|
|
1437
|
-
registry.registerEnum(
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1432
|
+
registry.registerEnum({
|
|
1433
|
+
id: "base.enum:math.operation",
|
|
1434
|
+
options: [
|
|
1435
|
+
{ value: 0, label: "Add" },
|
|
1436
|
+
{ value: 1, label: "Subtract" },
|
|
1437
|
+
{ value: 2, label: "Multiply" },
|
|
1438
|
+
{ value: 3, label: "Divide" },
|
|
1439
|
+
{ value: 4, label: "Min" },
|
|
1440
|
+
{ value: 5, label: "Max" },
|
|
1441
|
+
{ value: 6, label: "Modulo" },
|
|
1442
|
+
{ value: 7, label: "Power" },
|
|
1443
|
+
],
|
|
1444
|
+
});
|
|
1447
1445
|
// Enums: Compare Operation
|
|
1448
|
-
registry.registerEnum(
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1446
|
+
registry.registerEnum({
|
|
1447
|
+
id: "base.enum:compare.operation",
|
|
1448
|
+
options: [
|
|
1449
|
+
{ value: 0, label: "LessThan" },
|
|
1450
|
+
{ value: 1, label: "LessThanOrEqual" },
|
|
1451
|
+
{ value: 2, label: "GreaterThan" },
|
|
1452
|
+
{ value: 3, label: "GreaterThanOrEqual" },
|
|
1453
|
+
{ value: 4, label: "Equal" },
|
|
1454
|
+
{ value: 5, label: "NotEqual" },
|
|
1455
|
+
],
|
|
1456
|
+
});
|
|
1456
1457
|
// Clamp
|
|
1457
1458
|
registry.registerNode({
|
|
1458
1459
|
id: "base.clamp",
|