@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 +6 -6
- package/src/bindings/receive.js +1 -1
- package/src/component.js +2 -1
- package/src/receivers.js +17 -14
- package/src/storage.js +3 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toa.io/boot",
|
|
3
|
-
"version": "0.4.0-dev.
|
|
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.
|
|
24
|
-
"@toa.io/filesystem": "0.4.0-dev.
|
|
25
|
-
"@toa.io/generic": "0.4.0-dev.
|
|
26
|
-
"@toa.io/norm": "0.4.0-dev.
|
|
27
|
-
"@toa.io/schema": "0.4.0-dev.
|
|
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"
|
package/src/bindings/receive.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
const { factory } = require('./factory')
|
|
4
4
|
|
|
5
|
-
const receive = (binding,
|
|
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.
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
const
|
|
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
|
}
|