@rkmodules/rules 0.0.153 → 0.0.155

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/index.cjs.js CHANGED
@@ -2389,7 +2389,9 @@ var inputs = {
2389
2389
  description: "Data input.",
2390
2390
  nodeType: "Input",
2391
2391
  inputs: {},
2392
- outputs: {},
2392
+ outputs: {
2393
+ // can be added by implementations
2394
+ },
2393
2395
  impl: function () { return __awaiter(void 0, void 0, void 0, function () {
2394
2396
  return __generator(this, function (_a) {
2395
2397
  return [2 /*return*/, {}];
@@ -2606,14 +2608,110 @@ var explodeObject = {
2606
2608
  }); },
2607
2609
  };
2608
2610
 
2611
+ var setField = {
2612
+ name: "setField",
2613
+ label: "Set Field",
2614
+ description: "Sets a field in an object to a specified value.",
2615
+ inputs: {
2616
+ object: "any",
2617
+ key: "string",
2618
+ value: "string",
2619
+ },
2620
+ params: {
2621
+ overwrite: { type: "boolean", default: true },
2622
+ },
2623
+ outputs: {
2624
+ object: "any",
2625
+ },
2626
+ impl: function (_a, _b) { return __awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
2627
+ var newObject;
2628
+ var _e = _c.object, object = _e === void 0 ? {} : _e, _f = _c.key, key = _f === void 0 ? {} : _f, _g = _c.value, value = _g === void 0 ? {} : _g;
2629
+ var overwrite = _d.overwrite;
2630
+ return __generator(this, function (_h) {
2631
+ newObject = nAryOnTree([object, key, value], function (_a) {
2632
+ var _b = __read(_a, 3), o = _b[0], k = _b[1], v = _b[2];
2633
+ var newObj = __assign({}, o);
2634
+ if (newObj[k] !== undefined && !overwrite) {
2635
+ // If the key already exists and overwrite is false, return the original object
2636
+ return newObj;
2637
+ }
2638
+ if (k !== undefined) {
2639
+ newObj[k] = v;
2640
+ }
2641
+ return newObj;
2642
+ }, true);
2643
+ return [2 /*return*/, {
2644
+ object: newObject,
2645
+ }];
2646
+ });
2647
+ }); },
2648
+ };
2649
+
2650
+ var destructureObject = {
2651
+ name: "destructureObject",
2652
+ label: "Destructure Object",
2653
+ description: "Separates an object into a part with the specified fields and the rest",
2654
+ inputs: {
2655
+ object: "any",
2656
+ fields: { type: "string" },
2657
+ },
2658
+ params: {
2659
+ all: { type: "boolean", default: true, label: "all fields" },
2660
+ },
2661
+ outputs: {
2662
+ object: "any",
2663
+ exclusion: "any",
2664
+ },
2665
+ impl: function (_a, params_1) { return __awaiter(void 0, [_a, params_1], void 0, function (_b, params) {
2666
+ var split;
2667
+ var _c = _b.object, object = _c === void 0 ? {} : _c, _d = _b.fields, fields = _d === void 0 ? {} : _d;
2668
+ return __generator(this, function (_e) {
2669
+ if (params.all) {
2670
+ fields = mapTreeBranch(fields, function (items) {
2671
+ return [items];
2672
+ });
2673
+ }
2674
+ split = nAryOnTree([object, fields], function (_a) {
2675
+ var _b = __read(_a, 2), obj = _b[0], _c = _b[1], flds = _c === void 0 ? [] : _c;
2676
+ var newObj = {};
2677
+ var exclusion = {};
2678
+ if (typeof obj !== "object" || obj === null)
2679
+ return DISCARD;
2680
+ Object.entries(obj).forEach(function (_a) {
2681
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
2682
+ if (flds.includes(key)) {
2683
+ newObj[key] = value;
2684
+ }
2685
+ else {
2686
+ exclusion[key] = value;
2687
+ }
2688
+ });
2689
+ return [[newObj, exclusion]];
2690
+ }, true);
2691
+ return [2 /*return*/, {
2692
+ object: mapTree(split, function (_a) {
2693
+ var _b = __read(_a, 2), o = _b[0]; _b[1];
2694
+ return o;
2695
+ }),
2696
+ exclusion: mapTree(split, function (_a) {
2697
+ var _b = __read(_a, 2); _b[0]; var e = _b[1];
2698
+ return e;
2699
+ }),
2700
+ }];
2701
+ });
2702
+ }); },
2703
+ };
2704
+
2609
2705
  var _a$1;
2610
2706
  var primitives$1 = (_a$1 = {},
2611
2707
  _a$1[object.name] = object,
2708
+ _a$1[setField.name] = setField,
2612
2709
  _a$1[listToArray.name] = listToArray,
2613
2710
  _a$1[arrayToList.name] = arrayToList,
2614
2711
  _a$1[mergeObject.name] = mergeObject,
2615
2712
  _a$1[objectEntries.name] = objectEntries,
2616
2713
  _a$1[explodeObject.name] = explodeObject,
2714
+ _a$1[destructureObject.name] = destructureObject,
2617
2715
  _a$1);
2618
2716
 
2619
2717
  var INFERRED = "inferred";
@@ -6606,6 +6704,7 @@ var InputNode = React.memo(function (_a) {
6606
6704
  name,
6607
6705
  normalizeVarDef(fn.inputs[name]),
6608
6706
  ]; }));
6707
+ var outputEntries = Object.entries(data.outputDefs || {});
6609
6708
  var onRename = function (id, oldLabel) { return __awaiter(void 0, void 0, void 0, function () {
6610
6709
  var label;
6611
6710
  var _a;
@@ -6701,21 +6800,26 @@ var InputNode = React.memo(function (_a) {
6701
6800
  }); };
6702
6801
  return (React.createElement(NodeContainer, { label: data.label, selected: selected, id: id, noDelete: true },
6703
6802
  React.createElement("div", { className: styles.Description }, data.description),
6704
- React.createElement("div", { className: styles.Ports }, Object.entries(outputs || {}).map(function (_a) {
6705
- var _b = __read(_a, 2), name = _b[0], normalized = _b[1];
6706
- return (React.createElement(react.Handle, { key: name, type: "source", position: react.Position.Right, id: "".concat(id, "-").concat(name), className: classNames(styles$1.Output, styles$1.Port, styles$1["type-".concat(normalized.type)]), style: {
6707
- "--type-color": "var(--color-".concat(normalized.type, ")"),
6708
- gridColumn: "1/3",
6709
- } },
6710
- React.createElement(Menu, { handle: React.createElement("button", null, "...") },
6711
- React.createElement(MenuItem, { onClick: function () {
6712
- return onRename(name, normalized.label || name);
6713
- } }, "Rename"),
6714
- React.createElement(MenuItem, { onClick: function () { return onDelete(name); } }, "Delete"),
6715
- React.createElement(MenuItem, { onClick: function () { return onDefault(name); } }, "Set Default"),
6716
- React.createElement(MenuItem, { onClick: function () { return onType(name); } }, "Set Type")),
6717
- React.createElement("span", { className: styles$1.PortLabel }, normalized.label || name)));
6718
- })),
6803
+ React.createElement("div", { className: styles.Ports },
6804
+ outputEntries.map(function (_a, index) {
6805
+ var _b = __read(_a, 2), name = _b[0], varDef = _b[1];
6806
+ return (React.createElement(Output, { key: "".concat(name, "_").concat(index), name: name, varDef: varDef, id: id }));
6807
+ }),
6808
+ Object.entries(outputs || {}).map(function (_a) {
6809
+ var _b = __read(_a, 2), name = _b[0], normalized = _b[1];
6810
+ return (React.createElement(react.Handle, { key: name, type: "source", position: react.Position.Right, id: "".concat(id, "-").concat(name), className: classNames(styles$1.Output, styles$1.Port, styles$1["type-".concat(normalized.type)]), style: {
6811
+ "--type-color": "var(--color-".concat(normalized.type, ")"),
6812
+ gridColumn: "1/3",
6813
+ } },
6814
+ React.createElement(Menu, { handle: React.createElement("button", null, "...") },
6815
+ React.createElement(MenuItem, { onClick: function () {
6816
+ return onRename(name, normalized.label || name);
6817
+ } }, "Rename"),
6818
+ React.createElement(MenuItem, { onClick: function () { return onDelete(name); } }, "Delete"),
6819
+ React.createElement(MenuItem, { onClick: function () { return onDefault(name); } }, "Set Default"),
6820
+ React.createElement(MenuItem, { onClick: function () { return onType(name); } }, "Set Type")),
6821
+ React.createElement("span", { className: styles$1.PortLabel }, normalized.label || name)));
6822
+ })),
6719
6823
  React.createElement("div", { className: styles.Body },
6720
6824
  React.createElement("button", { onClick: function () { return onAdd(); } }, "+"))));
6721
6825
  });