@toa.io/boot 0.4.0-dev.1 → 0.4.0-dev.6

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toa.io/boot",
3
- "version": "0.4.0-dev.1",
3
+ "version": "0.4.0-dev.6",
4
4
  "description": "Toa Boot",
5
5
  "author": "temich <tema.gurtovoy@gmail.com>",
6
6
  "homepage": "https://github.com/toa-io/toa#readme",
@@ -20,11 +20,11 @@
20
20
  "test": "echo \"Error: run tests from root\" && exit 1"
21
21
  },
22
22
  "dependencies": {
23
- "@toa.io/core": "0.4.0-dev.1",
24
- "@toa.io/filesystem": "0.4.0-dev.1",
25
- "@toa.io/generic": "0.4.0-dev.0",
26
- "@toa.io/norm": "0.4.0-dev.1",
27
- "@toa.io/schema": "0.4.0-dev.1",
23
+ "@toa.io/core": "0.4.0-dev.6",
24
+ "@toa.io/filesystem": "0.4.0-dev.6",
25
+ "@toa.io/generic": "0.4.0-dev.6",
26
+ "@toa.io/norm": "0.4.0-dev.6",
27
+ "@toa.io/schema": "0.4.0-dev.6",
28
28
  "clone-deep": "4.0.1"
29
29
  },
30
30
  "gitHead": "2be07592325b2e4dc823e81d882a4e50bf50de24"
@@ -2,6 +2,6 @@
2
2
 
3
3
  const { factory } = require('./factory')
4
4
 
5
- const receive = (binding, locator, endpoint, id, receiver) => factory(binding).receiver(locator, endpoint, id, receiver)
5
+ const receive = (binding, source, label, group, receiver) => factory(binding).receiver(source, label, group, receiver)
6
6
 
7
7
  exports.receive = receive
package/src/component.js CHANGED
@@ -11,8 +11,9 @@ const boot = require('./index')
11
11
  * @returns {Promise<toa.core.Component>}
12
12
  */
13
13
  const component = async (manifest) => {
14
+ const name = manifest.entity.storage
14
15
  const locator = new Locator(manifest.name, manifest.namespace)
15
- const storage = boot.storage(locator, manifest.entity.storage)
16
+ const storage = boot.storage(locator, name, manifest.properties?.[name])
16
17
  const context = await boot.context(manifest)
17
18
  const emission = boot.emission(manifest.events, locator)
18
19
  const schema = new Schema(manifest.entity.schema)
package/src/receivers.js CHANGED
@@ -16,20 +16,10 @@ const receivers = async (manifest, runtime) => {
16
16
  const receiver = new Receiver(definition, local, bridge)
17
17
  const decorator = extensions.receiver(receiver, manifest.locator)
18
18
 
19
- let transport = definition.binding
20
-
21
- const [namespace, name, endpoint] = label.split('.')
22
- const remote = new Locator(name, namespace)
23
-
24
- if (transport === undefined) {
25
- const discovery = await boot.discovery.discovery()
26
- const { events } = await discovery.lookup(remote)
27
-
28
- transport = events[endpoint].binding
29
- }
30
-
31
- const { id } = new Locator(manifest.name, manifest.namespace)
32
- const binding = boot.bindings.receive(transport, remote, endpoint, id, decorator)
19
+ const locator = Locator.parse(label)
20
+ const transport = definition.binding ?? await resolveBinding(locator, label)
21
+ const source = definition.source ? Locator.parse(definition.source) : locator
22
+ const binding = boot.bindings.receive(transport, source, label, manifest.locator.id, decorator)
33
23
 
34
24
  binding.depends(runtime)
35
25
  receivers.push(binding)
@@ -38,4 +28,17 @@ const receivers = async (manifest, runtime) => {
38
28
  return receivers
39
29
  }
40
30
 
31
+ /**
32
+ * @param {toa.core.Locator} locator
33
+ * @param {string} label
34
+ * @return {Promise<string>}
35
+ */
36
+ async function resolveBinding (locator, label) {
37
+ const event = label.split('.').pop()
38
+ const discovery = await boot.discovery.discovery()
39
+ const { events } = await discovery.lookup(locator)
40
+
41
+ return events[event].binding
42
+ }
43
+
41
44
  exports.receivers = receivers
package/src/storage.js CHANGED
@@ -5,14 +5,15 @@ const extensions = require('./extensions')
5
5
  /**
6
6
  * @param {toa.core.Locator} locator
7
7
  * @param {string} provider
8
+ * @param {any} properties
8
9
  * @returns {toa.core.Storage}
9
10
  */
10
- const storage = (locator, provider) => {
11
+ const storage = (locator, provider, properties) => {
11
12
  const { Factory } = require(provider)
12
13
 
13
14
  /** @type {toa.core.storages.Factory} */
14
15
  const factory = new Factory()
15
- const storage = factory.storage(locator)
16
+ const storage = factory.storage(locator, properties)
16
17
 
17
18
  return extensions.storage(storage)
18
19
  }