chainflow 0.1.1 → 0.1.3

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/README.md CHANGED
@@ -1,10 +1,23 @@
1
1
  <h1 align="center" style="border-bottom: none;">🌊hainflow</h1>
2
2
  <h3 align="center">A library to create dynamic and composable API call workflows.</h3>
3
+ <div align="center">
4
+
5
+ [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/edwinlzs/chainflow/blob/main/LICENSE)
6
+ &nbsp;
7
+ [![NPM version](https://img.shields.io/npm/v/chainflow.svg?style=flat-square)](https://www.npmjs.com/package/chainflow)
8
+ &nbsp;
9
+ [![GitHub Actions](https://img.shields.io/github/actions/workflow/status/edwinlzs/chainflow/on-push.yml?style=flat-square&branch=main)](https://github.com/edwinlzs/chainflow/actions)
10
+ &nbsp;
11
+ </div>
3
12
 
4
13
  ## Not Released Yet
5
14
 
6
15
  Hi! If you are here, you're a bit early. I'm still setting up some stuff for the first release. Check back in later!
7
16
 
17
+ ## Documentation
18
+
19
+ Read the guides over at <https://edwinlzs.github.io/chainflow-docs/> to get started!
20
+
8
21
  ## Use Cases
9
22
 
10
23
  Create multiple sets of API call workflows with this library that can be used to:
@@ -134,19 +147,6 @@ const createUser = origin.post('/user').body({
134
147
  });
135
148
  ```
136
149
 
137
- ### [_EXPERIMENTAL_] - `pool`
138
-
139
- Provide a pool of values to take from when building requests. By default, Chainflow will randomly choose a value from the pool for each call in a non-exhaustive manner.
140
-
141
- ```typescript
142
- const createUser = origin.post('/user').body({
143
- name: pool(['Tom', 'Harry', 'Jane']),
144
- details: {
145
- age: 40,
146
- },
147
- });
148
- ```
149
-
150
150
  ### `gen`
151
151
 
152
152
  Provide a callback that generates values for building requests.
@@ -162,90 +162,115 @@ const createUser = origin.post('/user').body({
162
162
  });
163
163
  ```
164
164
 
165
- ### `source`
165
+ ### `link`
166
166
 
167
- Specify a source node with a callback.
167
+ You can use the `link` function to specify a callback to transform the response value before it is passed to the node.
168
168
 
169
169
  ```typescript
170
170
  const addGreeting = (name: string) => `Hello ${name}`;
171
171
 
172
- createNotification.body({
173
- msg: source(getUser.resp.body.name, addGreeting);
172
+ const createMessage = origin.post('message').body({
173
+ msg: link(getUser.resp.body.name, addGreeting);
174
174
  });
175
175
  ```
176
176
 
177
- ### `sources`
178
-
179
- Specify multiple source nodes that a value can be taken from, with an optional callback.
180
-
181
- ```typescript
182
- createNotification.body({
183
- msg: sources([getUser.resp.body.name, createUser.resp.body.name], addGreeting);
184
- });
185
- ```
177
+ ### `set`
186
178
 
187
- ### `link`
179
+ The `link` has another function signature.
188
180
 
189
- Link a response values to a single request node.
181
+ You can use the `set` method on an endpoint to expose its input nodes, then use the 2nd function signature of `link` as shown below: pass in the input node first (`msg`), then the source node second and optionally a callback third.
190
182
 
191
183
  ```typescript
192
- createNotification.set(({ body: { msg } }) => {
184
+ createMessage.set(({ body: { msg } }) => {
193
185
  link(msg, getUser.resp.body.name);
186
+ link(msg, createUser.resp.body.name);
194
187
  });
195
188
  ```
196
189
 
197
- Optionally, you can pass a callback to transform the response value before it is passed to the node.
190
+ With a callback:
198
191
 
199
192
  ```typescript
200
- createNotification.set(({ body: { msg } }) => {
193
+ createMessage.set(({ body: { msg } }) => {
201
194
  link(msg, getUser.resp.body.name, addGreeting);
195
+ link(msg, createUser.resp.body.name, addGreeting);
202
196
  });
203
197
  ```
204
198
 
205
199
  ### `linkMerge`
206
200
 
207
- Link multiple response values to a single request node with an optional callback to merge the values into a single input value.
201
+ Link multiple response values to a single request node with an optional callback to merge the values into a single input value. This has 4 function signatures:
208
202
 
209
- For the second argument, you can either pass an array of SourceNodes:
203
+ For the argument containing the source nodes, you can either pass an _array_ of SourceNodes:
210
204
 
211
205
  ```typescript
206
+ // note the callback has an array parameter
212
207
  const mergeValues = ([name, favAnimal]: [string, string]) =>
213
208
  `${name} likes ${favAnimal}.`;
214
209
 
215
- createNotification.set(({ body: { msg } }) => {
216
- linkMerge(
217
- msg, // the request node
218
- // specify which source nodes to take values from
219
- [getUser.resp.body.name, favAnimal: getFavAnimal.resp.body.favAnimal],
220
- // callback that takes the source values as its argument
221
- // and returns a single output value for the request node
222
- // callback parameter should look like an array of source values
210
+ const createMessage = origin.post('message').body({
211
+ msg: linkMerge(
212
+ // array of source nodes
213
+ [getUser.resp.body.name, getFavAnimal.resp.body.favAnimal],
223
214
  mergeValues,
224
215
  );
225
216
  });
226
217
  ```
227
218
 
228
- or you can pass an object with SourceNodes as the values:
219
+ or you can pass an _object_ with SourceNodes as the values:
229
220
 
230
221
  ```typescript
231
- const mergeValues = ({ userName, favAnimal }: { userName: string; favAnimal: string }) =>
232
- `${userName} likes ${favAnimal}.`;
222
+ // note the callback has an object parameter
223
+ const mergeValues = ({
224
+ userName,
225
+ favAnimal,
226
+ }: {
227
+ userName: string;
228
+ favAnimal: string;
229
+ }) => `${userName} likes ${favAnimal}.`;
230
+
231
+
232
+ const createMessage = origin.post('message').body({
233
+ msg: linkMerge(
234
+ // object of source nodes
235
+ {
236
+ userName: getUser.resp.body.name,
237
+ favAnimal: getFavAnimal.resp.body.favAnimal,
238
+ },
239
+ mergeValues,
240
+ );
241
+ });
242
+ ```
243
+
244
+ alternatively, you can use the `set` method in addition with the other function signature of `linkMerge` (similar to how `link` above has overloads to work with `set`).
233
245
 
234
- createNotification.set(({ body: { msg } }) => {
246
+ with array:
247
+
248
+ ```typescript
249
+ createMessage.set(({ body: { msg } }) => {
250
+ linkMerge(
251
+ msg, // the input node
252
+ [getUser.resp.body.name, getFavAnimal.resp.body.favAnimal],
253
+ mergeValues,
254
+ );
255
+ });
256
+ ```
257
+
258
+ with object:
259
+
260
+ ```typescript
261
+ createMessage.set(({ body: { msg } }) => {
235
262
  linkMerge(
236
- msg,
237
- // specify source nodes and assigns them to a key
263
+ msg, // the input node
238
264
  {
239
265
  userName: getUser.resp.body.name,
240
266
  favAnimal: getFavAnimal.resp.body.favAnimal,
241
267
  },
242
- // callback parameter should look like { key: sourceValue }
243
268
  mergeValues,
244
269
  );
245
270
  });
246
271
  ```
247
272
 
248
- Note that the merging link created by this method will only be used if ALL the source nodes specified are available i.e. if `getUser.resp.body.name` does not have a value, this link will not be used at all.
273
+ Note that the merging link created by this method will only be used if ALL the source nodes specified are available i.e. if either one of `getUser.resp.body.name` or `getFavAnimal.resp.body.favAnimal` does not have a value, this link will not be used at all.
249
274
 
250
275
  ### Call Options
251
276
 
@@ -286,13 +311,13 @@ chainflow()
286
311
 
287
312
  ### Allow Undefined Sources Values
288
313
 
289
- By default, an input node will reject and skip a source node's value if it is unavailable or `undefined`. However, you can change this by passing a source node into the `allowUndefined` function, which modifies its properties to inform an input node to use its value regardless of whether the value is `undefined` or not.
314
+ By default, an input node will reject and skip a source node's value if it is unavailable or `undefined`. However, you can change this by passing a source node into the `config` utility function and passing an options object as the second parameter like below. This informs an input node to use the source node's value regardless of whether the value is `undefined` or not.
290
315
 
291
316
  ```typescript
292
- import { allowUndefined } from 'chainflow';
317
+ import { config } from 'chainflow';
293
318
 
294
319
  createUser.set(({ body: { name } }) => {
295
- link(name, allowUndefined(seed.username));
320
+ link(name, config(seed.username, { allowUndefined: true }));
296
321
  });
297
322
  ```
298
323
 
@@ -1,16 +1,11 @@
1
1
  import { SourceNode } from './sourceNode';
2
- import { getNodeValue, setSource, setSources, setValuePool } from './utils/symbols';
3
- /** @experimental How a value pool should choose its values. */
4
- export declare enum VALUE_POOL_SELECT {
5
- UNIFORM = 0
6
- }
2
+ import { getNodeValue, setSource, setSources } from './utils/symbols';
7
3
  export declare enum NodeValue {
8
- ValuePool = 0,
9
- Generator = 1,
10
- Required = 2,
11
- Source = 3,
12
- SourceWithCallback = 4,
13
- Sources = 5
4
+ Generator = 0,
5
+ Required = 1,
6
+ Source = 2,
7
+ SourceWithCallback = 3,
8
+ MergeSourcesWithCallback = 4
14
9
  }
15
10
  type SourceValue = any;
16
11
  export type SourceValues = {
@@ -28,8 +23,6 @@ export declare class InputNode {
28
23
  [setSources](sources: SourceNode[] | {
29
24
  [key: string]: SourceNode;
30
25
  }, callback?: (val: any) => any): void;
31
- /** Sets the pool of values for this input node. */
32
- [setValuePool](valuePool: any[]): void;
33
26
  /** Retrieve value of a node. */
34
27
  [getNodeValue](sourceValues: SourceValues, missingValues: string[][], currentPath: string[]): any;
35
28
  /**
@@ -10,23 +10,17 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
11
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
12
  };
13
- var _InputNode_instances, _InputNode_isKvObject, _InputNode_default, _InputNode_required, _InputNode_sources, _InputNode_valuePool, _InputNode_valuePoolSelect, _InputNode_generator, _InputNode_matchSourceHash, _InputNode_accessSource, _InputNode_getSingleSourceNodeValue, _InputNode_getMultiSourceNodeValues, _InputNode_selectValue;
13
+ var _InputNode_instances, _InputNode_isKvObject, _InputNode_default, _InputNode_required, _InputNode_sources, _InputNode_generator, _InputNode_matchSourceHash, _InputNode_accessSource, _InputNode_getSingleSourceNodeValue, _InputNode_getMultiSourceNodeValues;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.InputNode = exports.NodeValue = exports.VALUE_POOL_SELECT = void 0;
15
+ exports.InputNode = exports.NodeValue = void 0;
16
16
  const symbols_1 = require("./utils/symbols");
17
- /** @experimental How a value pool should choose its values. */
18
- var VALUE_POOL_SELECT;
19
- (function (VALUE_POOL_SELECT) {
20
- VALUE_POOL_SELECT[VALUE_POOL_SELECT["UNIFORM"] = 0] = "UNIFORM";
21
- })(VALUE_POOL_SELECT || (exports.VALUE_POOL_SELECT = VALUE_POOL_SELECT = {}));
22
17
  var NodeValue;
23
18
  (function (NodeValue) {
24
- NodeValue[NodeValue["ValuePool"] = 0] = "ValuePool";
25
- NodeValue[NodeValue["Generator"] = 1] = "Generator";
26
- NodeValue[NodeValue["Required"] = 2] = "Required";
27
- NodeValue[NodeValue["Source"] = 3] = "Source";
28
- NodeValue[NodeValue["SourceWithCallback"] = 4] = "SourceWithCallback";
29
- NodeValue[NodeValue["Sources"] = 5] = "Sources";
19
+ NodeValue[NodeValue["Generator"] = 0] = "Generator";
20
+ NodeValue[NodeValue["Required"] = 1] = "Required";
21
+ NodeValue[NodeValue["Source"] = 2] = "Source";
22
+ NodeValue[NodeValue["SourceWithCallback"] = 3] = "SourceWithCallback";
23
+ NodeValue[NodeValue["MergeSourcesWithCallback"] = 4] = "MergeSourcesWithCallback";
30
24
  })(NodeValue || (exports.NodeValue = NodeValue = {}));
31
25
  /** A data node for constructing an input object. */
32
26
  class InputNode {
@@ -40,10 +34,6 @@ class InputNode {
40
34
  _InputNode_required.set(this, false);
41
35
  /** Stores what source node values can be passed into this node. */
42
36
  _InputNode_sources.set(this, {});
43
- /** @experimental Stores possible values this node can take. */
44
- _InputNode_valuePool.set(this, []);
45
- /** @experimental Determines what strategy to select from pool of values */
46
- _InputNode_valuePoolSelect.set(this, VALUE_POOL_SELECT.UNIFORM);
47
37
  /** Generator function to generate values on demand for this node. */
48
38
  _InputNode_generator.set(this, void 0);
49
39
  if (val == null) {
@@ -51,9 +41,6 @@ class InputNode {
51
41
  return;
52
42
  }
53
43
  switch (val[symbols_1.nodeValueIdentifier]) {
54
- case NodeValue.ValuePool:
55
- __classPrivateFieldSet(this, _InputNode_valuePool, val.valuePool, "f");
56
- return;
57
44
  case NodeValue.Generator:
58
45
  __classPrivateFieldSet(this, _InputNode_generator, val.generator, "f");
59
46
  return;
@@ -63,14 +50,11 @@ class InputNode {
63
50
  case NodeValue.Source:
64
51
  this[symbols_1.setSource](val);
65
52
  return;
66
- case NodeValue.SourceWithCallback: // TODO: explore refactoring here
53
+ case NodeValue.SourceWithCallback /** @todo explore refactoring here */:
67
54
  this[symbols_1.setSource](val.source, val.callback);
68
55
  return;
69
- case NodeValue.Sources:
70
- // TODO: validation here
71
- val.sources.forEach((source) => {
72
- this[symbols_1.setSource](source, val.callback);
73
- });
56
+ case NodeValue.MergeSourcesWithCallback:
57
+ this[symbols_1.setSources](val.sources, val.callback);
74
58
  return;
75
59
  }
76
60
  switch (typeof val) {
@@ -91,10 +75,10 @@ class InputNode {
91
75
  }
92
76
  }
93
77
  /** Sets a source node for this input node. */
94
- [(_InputNode_isKvObject = new WeakMap(), _InputNode_default = new WeakMap(), _InputNode_required = new WeakMap(), _InputNode_sources = new WeakMap(), _InputNode_valuePool = new WeakMap(), _InputNode_valuePoolSelect = new WeakMap(), _InputNode_generator = new WeakMap(), _InputNode_instances = new WeakSet(), symbols_1.setSource)](source, callback) {
78
+ [(_InputNode_isKvObject = new WeakMap(), _InputNode_default = new WeakMap(), _InputNode_required = new WeakMap(), _InputNode_sources = new WeakMap(), _InputNode_generator = new WeakMap(), _InputNode_instances = new WeakSet(), symbols_1.setSource)](source, callback) {
95
79
  __classPrivateFieldGet(this, _InputNode_sources, "f")[source[symbols_1.nodeHash]] = {
96
80
  path: source[symbols_1.nodePath],
97
- undefinedAllowed: source[symbols_1.undefinedAllowed],
81
+ allowUndefined: source[symbols_1.allowUndefined],
98
82
  callback,
99
83
  };
100
84
  }
@@ -110,7 +94,7 @@ class InputNode {
110
94
  hashes.add(hash);
111
95
  return {
112
96
  path: source[symbols_1.nodePath],
113
- undefinedAllowed: source[symbols_1.undefinedAllowed],
97
+ allowUndefined: source[symbols_1.allowUndefined],
114
98
  hash,
115
99
  };
116
100
  });
@@ -121,7 +105,7 @@ class InputNode {
121
105
  hashes.add(hash);
122
106
  return {
123
107
  path: source[symbols_1.nodePath],
124
- undefinedAllowed: source[symbols_1.undefinedAllowed],
108
+ allowUndefined: source[symbols_1.allowUndefined],
125
109
  hash,
126
110
  key,
127
111
  };
@@ -133,10 +117,6 @@ class InputNode {
133
117
  callback,
134
118
  };
135
119
  }
136
- /** Sets the pool of values for this input node. */
137
- [symbols_1.setValuePool](valuePool) {
138
- __classPrivateFieldSet(this, _InputNode_valuePool, valuePool, "f");
139
- }
140
120
  /** Retrieve value of a node. */
141
121
  [symbols_1.getNodeValue](sourceValues, missingValues, currentPath) {
142
122
  const usedSources = []; // stores sourceValues that are already tried
@@ -149,9 +129,9 @@ class InputNode {
149
129
  sourceVal = __classPrivateFieldGet(this, _InputNode_instances, "m", _InputNode_getMultiSourceNodeValues).call(this, source, sourceValues);
150
130
  }
151
131
  else {
152
- sourceVal = __classPrivateFieldGet(this, _InputNode_instances, "m", _InputNode_getSingleSourceNodeValue).call(this, sourceHash, source.path, sourceValues, source.undefinedAllowed);
132
+ sourceVal = __classPrivateFieldGet(this, _InputNode_instances, "m", _InputNode_getSingleSourceNodeValue).call(this, sourceHash, source.path, sourceValues, source.allowUndefined);
153
133
  }
154
- if (sourceVal !== undefined || ('undefinedAllowed' in source && source.undefinedAllowed)) {
134
+ if (sourceVal !== undefined || ('allowUndefined' in source && source.allowUndefined)) {
155
135
  return source.callback ? source.callback(sourceVal) : sourceVal;
156
136
  }
157
137
  usedSources.push(...sourceHash.split('|'));
@@ -161,10 +141,6 @@ class InputNode {
161
141
  if (__classPrivateFieldGet(this, _InputNode_generator, "f")) {
162
142
  return __classPrivateFieldGet(this, _InputNode_generator, "f").call(this);
163
143
  }
164
- // attempt to get value from value pool
165
- if (__classPrivateFieldGet(this, _InputNode_valuePool, "f").length > 0) {
166
- return __classPrivateFieldGet(this, _InputNode_instances, "m", _InputNode_selectValue).call(this);
167
- }
168
144
  if (__classPrivateFieldGet(this, _InputNode_isKvObject, "f")) {
169
145
  return this.buildKvObject(currentPath, missingValues, sourceValues);
170
146
  }
@@ -204,13 +180,13 @@ _InputNode_matchSourceHash = function _InputNode_matchSourceHash(sourceValues, u
204
180
  }
205
181
  return availSourceHashes.includes(hash) && !usedSources.includes(hash);
206
182
  });
207
- }, _InputNode_accessSource = function _InputNode_accessSource(payload, path, undefinedAllowed) {
183
+ }, _InputNode_accessSource = function _InputNode_accessSource(payload, path, allowUndefined) {
208
184
  let sourceVal = payload;
209
185
  let i = 0;
210
186
  while (i < path.length) {
211
187
  // recall that `typeof null` returns 'object'
212
188
  if (sourceVal == null || typeof sourceVal !== 'object') {
213
- if (undefinedAllowed)
189
+ if (allowUndefined)
214
190
  return undefined;
215
191
  return;
216
192
  }
@@ -219,10 +195,10 @@ _InputNode_matchSourceHash = function _InputNode_matchSourceHash(sourceValues, u
219
195
  i += 1;
220
196
  }
221
197
  return sourceVal;
222
- }, _InputNode_getSingleSourceNodeValue = function _InputNode_getSingleSourceNodeValue(hash, path, sourceValues, undefinedAllowed) {
198
+ }, _InputNode_getSingleSourceNodeValue = function _InputNode_getSingleSourceNodeValue(hash, path, sourceValues, allowUndefined) {
223
199
  const sourceObject = sourceValues[hash][0];
224
200
  // get value from a linked source
225
- return __classPrivateFieldGet(this, _InputNode_instances, "m", _InputNode_accessSource).call(this, sourceObject, path, undefinedAllowed);
201
+ return __classPrivateFieldGet(this, _InputNode_instances, "m", _InputNode_accessSource).call(this, sourceObject, path, allowUndefined);
226
202
  }, _InputNode_getMultiSourceNodeValues = function _InputNode_getMultiSourceNodeValues(sources, sourceValues) {
227
203
  let sourceVals;
228
204
  sources.isArray ? (sourceVals = []) : (sourceVals = {});
@@ -236,13 +212,5 @@ _InputNode_matchSourceHash = function _InputNode_matchSourceHash(sourceValues, u
236
212
  : (sourceVals[info.key] = sourceVal);
237
213
  }
238
214
  return sourceVals;
239
- }, _InputNode_selectValue = function _InputNode_selectValue() {
240
- if (__classPrivateFieldGet(this, _InputNode_valuePool, "f").length === 0)
241
- return;
242
- switch (__classPrivateFieldGet(this, _InputNode_valuePoolSelect, "f")) {
243
- case VALUE_POOL_SELECT.UNIFORM:
244
- default:
245
- return __classPrivateFieldGet(this, _InputNode_valuePool, "f")[Math.floor(Math.random() * __classPrivateFieldGet(this, _InputNode_valuePool, "f").length)];
246
- }
247
215
  };
248
216
  //# sourceMappingURL=inputNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputNode.js","sourceRoot":"","sources":["../../src/core/inputNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inputNode.js","sourceRoot":"","sources":["../../src/core/inputNode.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { NodeValue } from './inputNode';
2
- import { nodeHash, nodePath, nodeValueIdentifier, undefinedAllowed } from './utils/symbols';
2
+ import { nodeHash, nodePath, nodeValueIdentifier, allowUndefined } from './utils/symbols';
3
3
  /** Creates a new Source Node with the given hash. */
4
4
  export declare const sourceNode: (hash: string) => SourceNode;
5
5
  /** Describes a value in a source node e.g. the output of an endpoint call. */
6
6
  export interface SourceNode {
7
7
  [nodeHash]: string;
8
8
  [nodePath]: string[];
9
- [undefinedAllowed]?: boolean;
9
+ [allowUndefined]?: boolean;
10
10
  [nodeValueIdentifier]: NodeValue;
11
11
  [key: string]: SourceNode;
12
12
  }
@@ -14,7 +14,7 @@ export interface SourceNode {
14
14
  interface RawSourceNode {
15
15
  path: string[];
16
16
  hash: string;
17
- undefinedAllowed?: boolean;
17
+ allowUndefined?: boolean;
18
18
  }
19
19
  /** Generates proxies recursively to handle nested property access of a source signature. */
20
20
  export declare const SourceNodeHandler: {
@@ -14,8 +14,8 @@ exports.SourceNodeHandler = {
14
14
  return obj.path;
15
15
  case symbols_1.nodeHash:
16
16
  return obj.hash;
17
- case symbols_1.undefinedAllowed:
18
- return obj.undefinedAllowed;
17
+ case symbols_1.allowUndefined:
18
+ return obj.allowUndefined;
19
19
  case symbols_1.nodeValueIdentifier:
20
20
  return inputNode_1.NodeValue.Source;
21
21
  default: {
@@ -24,14 +24,14 @@ exports.SourceNodeHandler = {
24
24
  return new Proxy({
25
25
  path: newPath,
26
26
  hash: obj.hash,
27
- undefinedAllowed: obj.undefinedAllowed,
27
+ allowUndefined: obj.allowUndefined,
28
28
  }, exports.SourceNodeHandler);
29
29
  }
30
30
  }
31
31
  },
32
32
  set(obj, prop, val) {
33
- if (prop === symbols_1.undefinedAllowed)
34
- return (obj.undefinedAllowed = val);
33
+ if (prop === symbols_1.allowUndefined)
34
+ return (obj.allowUndefined = val);
35
35
  },
36
36
  };
37
37
  //# sourceMappingURL=sourceNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceNode.js","sourceRoot":"","sources":["../../src/core/sourceNode.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,6CAA4F;AAE5F,qDAAqD;AAC9C,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CACzC,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,yBAAiB,CAA0B,CAAC;AAD/D,QAAA,UAAU,cACqD;AAkB5E,4FAA4F;AAC/E,QAAA,iBAAiB,GAAG;IAC/B,GAAG,CAAC,GAAkB,EAAE,IAAS;QAC/B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,kBAAQ;gBACX,OAAO,GAAG,CAAC,IAAI,CAAC;YAClB,KAAK,kBAAQ;gBACX,OAAO,GAAG,CAAC,IAAI,CAAC;YAClB,KAAK,0BAAgB;gBACnB,OAAO,GAAG,CAAC,gBAAgB,CAAC;YAC9B,KAAK,6BAAmB;gBACtB,OAAO,qBAAS,CAAC,MAAM,CAAC;YAC1B,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO,IAAI,KAAK,CACd;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;iBACvC,EACD,yBAAiB,CACO,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IACD,GAAG,CAAC,GAAkB,EAAE,IAAS,EAAE,GAAQ;QACzC,IAAI,IAAI,KAAK,0BAAgB;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC;IACrE,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"sourceNode.js","sourceRoot":"","sources":["../../src/core/sourceNode.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,6CAA0F;AAE1F,qDAAqD;AAC9C,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CACzC,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,yBAAiB,CAA0B,CAAC;AAD/D,QAAA,UAAU,cACqD;AAkB5E,4FAA4F;AAC/E,QAAA,iBAAiB,GAAG;IAC/B,GAAG,CAAC,GAAkB,EAAE,IAAS;QAC/B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,kBAAQ;gBACX,OAAO,GAAG,CAAC,IAAI,CAAC;YAClB,KAAK,kBAAQ;gBACX,OAAO,GAAG,CAAC,IAAI,CAAC;YAClB,KAAK,wBAAc;gBACjB,OAAO,GAAG,CAAC,cAAc,CAAC;YAC5B,KAAK,6BAAmB;gBACtB,OAAO,qBAAS,CAAC,MAAM,CAAC;YAC1B,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO,IAAI,KAAK,CACd;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,cAAc,EAAE,GAAG,CAAC,cAAc;iBACnC,EACD,yBAAiB,CACO,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IACD,GAAG,CAAC,GAAkB,EAAE,IAAS,EAAE,GAAQ;QACzC,IAAI,IAAI,KAAK,wBAAc;YAAE,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;IACjE,CAAC;CACF,CAAC"}
@@ -63,7 +63,7 @@ _Store_store = new WeakMap(), _Store_instances = new WeakSet(), _Store_getStoreV
63
63
  while (i < sourcePath.length) {
64
64
  // recall that `typeof null` returns 'object'
65
65
  if (sourceVal == null || typeof sourceVal !== 'object') {
66
- if (source[symbols_1.undefinedAllowed])
66
+ if (source[symbols_1.allowUndefined])
67
67
  return { found: true, value: sourceVal, storePath };
68
68
  return { found: false };
69
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { SourceNode } from '../sourceNode';
2
+ /** Options to configure a Source Node. */
3
+ interface SourceConfigOpts {
4
+ /**
5
+ * Note that setting this to true will make it such that
6
+ * this SourceNode will ALWAYS be used to retrieve
7
+ * a value for any linked input node,
8
+ * unless there is another SourceNode with higher priority.
9
+ */
10
+ allowUndefined?: boolean;
11
+ }
12
+ /**
13
+ * Modifies a SourceNode with several options.
14
+ */
15
+ export declare const config: (source: SourceNode, opts: SourceConfigOpts) => SourceNode;
16
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ const symbols_1 = require("./symbols");
5
+ /**
6
+ * Modifies a SourceNode with several options.
7
+ */
8
+ const config = (source, opts) => {
9
+ opts.allowUndefined && (source[symbols_1.allowUndefined] = true);
10
+ return source;
11
+ };
12
+ exports.config = config;
13
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/utils/config.ts"],"names":[],"mappings":";;;AACA,uCAA2C;AAa3C;;GAEG;AACI,MAAM,MAAM,GAAG,CAAC,MAAkB,EAAE,IAAsB,EAAE,EAAE;IACnE,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,wBAAc,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAHW,QAAA,MAAM,UAGjB"}
@@ -1,10 +1,5 @@
1
1
  import { NodeValue } from '../inputNode';
2
2
  import { nodeValueIdentifier } from './symbols';
3
- /** Defines a set of values to choose from when constructing an input. */
4
- export declare const pool: (valuePool: any[]) => {
5
- valuePool: any[];
6
- [nodeValueIdentifier]: NodeValue;
7
- };
8
3
  /** Provides a generator function to produce a value for an input. */
9
4
  export declare const gen: (generator: () => any) => {
10
5
  generator: () => any;
@@ -1,14 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.required = exports.gen = exports.pool = void 0;
3
+ exports.required = exports.gen = void 0;
4
4
  const inputNode_1 = require("../inputNode");
5
5
  const symbols_1 = require("./symbols");
6
- /** Defines a set of values to choose from when constructing an input. */
7
- const pool = (valuePool) => ({
8
- valuePool,
9
- [symbols_1.nodeValueIdentifier]: inputNode_1.NodeValue.ValuePool,
10
- });
11
- exports.pool = pool;
12
6
  /** Provides a generator function to produce a value for an input. */
13
7
  const gen = (generator) => ({
14
8
  generator,
@@ -1 +1 @@
1
- {"version":3,"file":"initializers.js","sourceRoot":"","sources":["../../../src/core/utils/initializers.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,uCAAgD;AAEhD,yEAAyE;AAClE,MAAM,IAAI,GAAG,CAAC,SAAgB,EAAE,EAAE,CAAC,CAAC;IACzC,SAAS;IACT,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,SAAS;CAC3C,CAAC,CAAC;AAHU,QAAA,IAAI,QAGd;AAEH,qEAAqE;AAC9D,MAAM,GAAG,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC;IAC5C,SAAS;IACT,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,SAAS;CAC3C,CAAC,CAAC;AAHU,QAAA,GAAG,OAGb;AAEH;kDACkD;AAC3C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,QAAQ;CAC1C,CAAC,CAAC;AAFU,QAAA,QAAQ,YAElB"}
1
+ {"version":3,"file":"initializers.js","sourceRoot":"","sources":["../../../src/core/utils/initializers.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,uCAAgD;AAEhD,qEAAqE;AAC9D,MAAM,GAAG,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC;IAC5C,SAAS;IACT,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,SAAS;CAC3C,CAAC,CAAC;AAHU,QAAA,GAAG,OAGb;AAEH;kDACkD;AAC3C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,QAAQ;CAC1C,CAAC,CAAC;AAFU,QAAA,QAAQ,YAElB"}
@@ -1,24 +1,65 @@
1
- import { InputNode } from '../inputNode';
1
+ import { InputNode, NodeValue } from '../inputNode';
2
+ import { nodeValueIdentifier } from './symbols';
2
3
  import { SourceNode } from '../sourceNode';
3
- /**
4
- * Link a Source node to a Input node.
5
- * @param dest the input node that should take a value from a source.
6
- * @param source the source node that will provide the value for a input.
7
- * @param callback an optional function that is called on the source source value.
8
- */
9
- export declare const link: (dest: InputNode, source: SourceNode, callback?: ((val: any) => any) | undefined) => void;
10
- /**
11
- * Links multiple Source nodes to a Input node via a callback.
12
- * @param dest the input node that should take a value from the callback.
13
- * @param sources an array of source nodes that will be passed into the callback.
14
- * @param callback a function to merge the sources into a single source for the dest.
15
- */
16
- export declare const linkMerge: (dest: InputNode, sources: SourceNode[] | {
17
- [key: string]: SourceNode;
18
- }, callback?: ((val: any) => any) | undefined) => void;
19
- /**
20
- * Modifier function that allows a SourceNode to return `undefined` values to an input node.
21
- * Note that doing so will make it such that this SourceNode will ALWAYS be used to retrieve
22
- * a value for any linked input node, unless there is another SourceNode with higher priority.
23
- */
24
- export declare const allowUndefined: (source: SourceNode) => SourceNode;
4
+ interface SourceInfo {
5
+ [nodeValueIdentifier]: NodeValue;
6
+ source: SourceNode;
7
+ callback: ((val: any) => any) | undefined;
8
+ }
9
+ /** Overload signatures for `linkMerge` function. */
10
+ interface Link {
11
+ /**
12
+ * Link a Source node to an Input node.
13
+ * @param source the source node that will provide the value for an input.
14
+ * @param callback an optional function that is called on the source source value.
15
+ */
16
+ (source: SourceNode, callback?: (val: any) => any): SourceInfo;
17
+ /**
18
+ * Link a Source node to an Input node.
19
+ * @param dest the input node that should take a value from a source.
20
+ * @param source the source node that will provide the value for an input.
21
+ * @param callback an optional function that is called on the source source value.
22
+ */
23
+ (dest: InputNode, source: SourceNode, callback?: (val: any) => any): void;
24
+ }
25
+ export declare const link: Link;
26
+ interface MergeSourcesInfo {
27
+ [nodeValueIdentifier]: NodeValue;
28
+ sources: SourceNode[];
29
+ callback: ((val: any) => any) | undefined;
30
+ }
31
+ /** Overload signatures for `linkMerge` function. */
32
+ interface LinkMerge {
33
+ /**
34
+ * Links multiple Source nodes to an Input node via a callback.
35
+ * @param sources an array of source nodes to merge values from.
36
+ * @param callback a function to merge the sources into a single source for the dest.
37
+ */
38
+ (sources: SourceNode[], callback?: (val: any) => any): MergeSourcesInfo;
39
+ /**
40
+ * Links multiple Source nodes to an Input node via a callback.
41
+ * @param sources an object with source nodes to merge values from.
42
+ * @param callback a function to merge the sources into a single source for the dest.
43
+ */
44
+ (sources: {
45
+ [key: string]: SourceNode;
46
+ }, callback?: (val: any) => any): void;
47
+ /**
48
+ * Links multiple Source nodes to an Input node via a callback.
49
+ * @param dest the input node that should take a value from the callback.
50
+ * @param sources an array of source nodes to merge values from.
51
+ * @param callback a function to merge the sources into a single source for the dest.
52
+ */
53
+ (dest: InputNode, sources: SourceNode[], callback?: (val: any) => any): void;
54
+ /**
55
+ * Links multiple Source nodes to an Input node via a callback.
56
+ * @param dest the input node that should take a value from the callback.
57
+ * @param sources an object with source nodes to merge values from.
58
+ * @param callback a function to merge the sources into a single source for the dest.
59
+ */
60
+ (dest: InputNode, sources: {
61
+ [key: string]: SourceNode;
62
+ }, callback?: (val: any) => any): void;
63
+ }
64
+ export declare const linkMerge: LinkMerge;
65
+ export {};
@@ -1,35 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.allowUndefined = exports.linkMerge = exports.link = void 0;
3
+ exports.linkMerge = exports.link = void 0;
4
+ const inputNode_1 = require("../inputNode");
4
5
  const symbols_1 = require("./symbols");
5
- /**
6
- * Link a Source node to a Input node.
7
- * @param dest the input node that should take a value from a source.
8
- * @param source the source node that will provide the value for a input.
9
- * @param callback an optional function that is called on the source source value.
10
- */
11
- const link = (dest, source, callback) => {
12
- dest[symbols_1.setSource](source, callback);
13
- };
14
- exports.link = link;
15
- /**
16
- * Links multiple Source nodes to a Input node via a callback.
17
- * @param dest the input node that should take a value from the callback.
18
- * @param sources an array of source nodes that will be passed into the callback.
19
- * @param callback a function to merge the sources into a single source for the dest.
20
- */
21
- const linkMerge = (dest, sources, callback) => {
22
- dest[symbols_1.setSources](sources, callback);
23
- };
24
- exports.linkMerge = linkMerge;
25
- /**
26
- * Modifier function that allows a SourceNode to return `undefined` values to an input node.
27
- * Note that doing so will make it such that this SourceNode will ALWAYS be used to retrieve
28
- * a value for any linked input node, unless there is another SourceNode with higher priority.
29
- */
30
- const allowUndefined = (source) => {
31
- source[symbols_1.undefinedAllowed] = true;
32
- return source;
33
- };
34
- exports.allowUndefined = allowUndefined;
6
+ exports.link = ((...args) => {
7
+ if (['function', 'undefined'].includes(typeof args[1])) {
8
+ const [source, callback] = args;
9
+ return {
10
+ [symbols_1.nodeValueIdentifier]: inputNode_1.NodeValue.SourceWithCallback,
11
+ source,
12
+ callback,
13
+ };
14
+ }
15
+ else {
16
+ const [dest, source, callback] = args;
17
+ dest[symbols_1.setSource](source, callback);
18
+ }
19
+ });
20
+ exports.linkMerge = ((...args) => {
21
+ if (['function', 'undefined'].includes(typeof args[1])) {
22
+ const [sources, callback] = args;
23
+ return {
24
+ [symbols_1.nodeValueIdentifier]: inputNode_1.NodeValue.MergeSourcesWithCallback,
25
+ sources,
26
+ callback,
27
+ };
28
+ }
29
+ else {
30
+ const [dest, source, callback] = args;
31
+ dest[symbols_1.setSources](source, callback);
32
+ }
33
+ });
35
34
  //# sourceMappingURL=link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/core/utils/link.ts"],"names":[],"mappings":";;;AACA,uCAAoE;AAGpE;;;;;GAKG;AACI,MAAM,IAAI,GAAG,CAAC,IAAe,EAAE,MAAkB,EAAE,QAA4B,EAAE,EAAE;IACxF,IAAI,CAAC,mBAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,IAAI,QAEf;AAEF;;;;;GAKG;AACI,MAAM,SAAS,GAAG,CACvB,IAAe,EACf,OAAqD,EACrD,QAA4B,EAC5B,EAAE;IACF,IAAI,CAAC,oBAAU,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEF;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,MAAkB,EAAE,EAAE;IACnD,MAAM,CAAC,0BAAgB,CAAC,GAAG,IAAI,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAHW,QAAA,cAAc,kBAGzB"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/core/utils/link.ts"],"names":[],"mappings":";;;AAAA,4CAAoD;AACpD,uCAAuE;AA0B1D,QAAA,IAAI,GAAS,CAAC,CAAC,GAAG,IAAsB,EAAE,EAAE;IACvD,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAA8D,CAAC;QAC1F,OAAO;YACL,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,kBAAkB;YACnD,MAAM;YACN,QAAQ;SACT,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAkD,CAAC;QACpF,IAAI,CAAC,mBAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;AACH,CAAC,CAAS,CAAC;AAsCE,QAAA,SAAS,GAAc,CAAC,CAAC,GAAG,IAA2B,EAAE,EAAE;IACtE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAG3B,CAAC;QACF,OAAO;YACL,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,wBAAwB;YACzD,OAAO;YACP,QAAQ;SACT,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,IAIhC,CAAC;QACF,IAAI,CAAC,oBAAU,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAc,CAAC"}
@@ -1,8 +1,7 @@
1
1
  export declare const setSource: unique symbol;
2
2
  export declare const setSources: unique symbol;
3
- export declare const setValuePool: unique symbol;
4
3
  export declare const getNodeValue: unique symbol;
5
4
  export declare const nodeHash: unique symbol;
6
5
  export declare const nodePath: unique symbol;
7
6
  export declare const nodeValueIdentifier: unique symbol;
8
- export declare const undefinedAllowed: unique symbol;
7
+ export declare const allowUndefined: unique symbol;
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.undefinedAllowed = exports.nodeValueIdentifier = exports.nodePath = exports.nodeHash = exports.getNodeValue = exports.setValuePool = exports.setSources = exports.setSource = void 0;
3
+ exports.allowUndefined = exports.nodeValueIdentifier = exports.nodePath = exports.nodeHash = exports.getNodeValue = exports.setSources = exports.setSource = void 0;
4
4
  exports.setSource = Symbol('setSource');
5
5
  exports.setSources = Symbol('setSources');
6
- exports.setValuePool = Symbol('setValuePool');
7
6
  exports.getNodeValue = Symbol('getNodeValue');
8
7
  exports.nodeHash = Symbol('nodeHash');
9
8
  exports.nodePath = Symbol('nodePath');
10
9
  exports.nodeValueIdentifier = Symbol('nodeValueIdentifier');
11
- exports.undefinedAllowed = Symbol('undefinedAllowed');
10
+ exports.allowUndefined = Symbol('allowUndefined');
12
11
  //# sourceMappingURL=symbols.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/core/utils/symbols.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAChC,QAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/core/utils/symbols.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAChC,QAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export * from './core/chainflow';
2
2
  export * from './core/utils/initializers';
3
- export * from './core/utils/source';
4
3
  export * from './core/inputNode';
5
4
  export * from './core/utils/link';
5
+ export * from './core/utils/config';
6
6
  export * from './http/endpoint';
7
7
  export * from './http/reqBuilder';
8
8
  export * from './http/originServer';
package/dist/index.js CHANGED
@@ -16,9 +16,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./core/chainflow"), exports);
18
18
  __exportStar(require("./core/utils/initializers"), exports);
19
- __exportStar(require("./core/utils/source"), exports);
20
19
  __exportStar(require("./core/inputNode"), exports);
21
20
  __exportStar(require("./core/utils/link"), exports);
21
+ __exportStar(require("./core/utils/config"), exports);
22
22
  __exportStar(require("./http/endpoint"), exports);
23
23
  __exportStar(require("./http/reqBuilder"), exports);
24
24
  __exportStar(require("./http/originServer"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,4DAA0C;AAC1C,sDAAoC;AACpC,mDAAiC;AACjC,oDAAkC;AAClC,kDAAgC;AAChC,oDAAkC;AAClC,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,4DAA0C;AAC1C,mDAAiC;AACjC,oDAAkC;AAClC,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAClC,sDAAoC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chainflow",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "build dynamic and flexible API workflows",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",