@toa.io/pointer 1.0.0-alpha.326 → 1.0.0-alpha.327
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 +2 -2
- package/readme.md +7 -6
- package/transpiled/resolve.js +11 -4
- package/transpiled/resolve.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toa.io/pointer",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.327",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Toa Pointer",
|
|
6
6
|
"homepage": "https://toa.io",
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"scripts": {
|
|
40
40
|
"transpile": "tsc"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "cd6d6d77f19fbae5d7ff85d18005ca8deb9c77f3"
|
|
43
43
|
}
|
package/readme.md
CHANGED
|
@@ -35,18 +35,19 @@ something:
|
|
|
35
35
|
|
|
36
36
|
### `default` namespace
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
explicitly contain the `default` namespace.
|
|
38
|
+
A component that declares no namespace is in `default`. It is keyed by its name; `default`
|
|
39
|
+
keys all of them.
|
|
41
40
|
|
|
42
41
|
```yaml
|
|
43
42
|
amqp:
|
|
44
|
-
#
|
|
43
|
+
# every component without a namespace
|
|
45
44
|
default: amqp://default-ns.rmq.example.com
|
|
46
|
-
#
|
|
47
|
-
|
|
45
|
+
# the `teapots` component, which declares none
|
|
46
|
+
teapots: amqp://default-dummy.rmq.example.com
|
|
48
47
|
```
|
|
49
48
|
|
|
49
|
+
`default.teapots` names the same component, and is the key taken where both are written.
|
|
50
|
+
|
|
50
51
|
## Resolution
|
|
51
52
|
|
|
52
53
|
Although the most common use case of the Pointer is component-specific connection strings, where
|
package/transpiled/resolve.js
CHANGED
|
@@ -9,19 +9,26 @@ export function resolve(id, selector) {
|
|
|
9
9
|
return withCredentials(variable, urls);
|
|
10
10
|
}
|
|
11
11
|
export function resolveRecord(uris, selector) {
|
|
12
|
-
if (selector in uris)
|
|
13
|
-
return getRecord(uris, selector);
|
|
14
12
|
const segments = selector.split('.');
|
|
15
|
-
|
|
13
|
+
do {
|
|
16
14
|
const current = segments.join('.');
|
|
17
15
|
if (current in uris)
|
|
18
16
|
return getRecord(uris, current);
|
|
19
|
-
|
|
17
|
+
// a component that declares no namespace is keyed by its name as well
|
|
18
|
+
const bare = unqualified(current);
|
|
19
|
+
if (bare !== undefined && bare in uris)
|
|
20
|
+
return getRecord(uris, bare);
|
|
21
|
+
} while (segments.pop() !== undefined && segments.length > 0);
|
|
20
22
|
if ('.' in uris)
|
|
21
23
|
return getRecord(uris, '.');
|
|
22
24
|
else
|
|
23
25
|
throw new Error(`Selector '${selector}' cannot be resolved.`);
|
|
24
26
|
}
|
|
27
|
+
/** What follows the namespace of a selector in `default`, where anything does. */
|
|
28
|
+
function unqualified(selector) {
|
|
29
|
+
return selector.startsWith(DEFAULT) ? selector.slice(DEFAULT.length) : undefined;
|
|
30
|
+
}
|
|
31
|
+
const DEFAULT = 'default.';
|
|
25
32
|
function withCredentials(variable, urls) {
|
|
26
33
|
const username = environment.get(variable + '_USERNAME') ?? '';
|
|
27
34
|
const password = environment.get(variable + '_PASSWORD') ?? '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../source/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,MAAM,UAAU,OAAO,CAAC,EAAU,EAAE,QAAgB;IAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEvC,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,cAAc,CAAC,CAAA;IAEnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE7B,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAAgB;IAC1D,
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../source/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,MAAM,UAAU,OAAO,CAAC,EAAU,EAAE,QAAgB;IAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEvC,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,cAAc,CAAC,CAAA;IAEnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE7B,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAAgB;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEpC,GAAG,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAElC,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAEpD,sEAAsE;QACtE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QAEjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACtE,CAAC,QAAQ,QAAQ,CAAC,GAAG,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC;IAE7D,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;;QACvC,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,uBAAuB,CAAC,CAAA;AACpE,CAAC;AAED,kFAAkF;AAClF,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAClF,CAAC;AAED,MAAM,OAAO,GAAG,UAAU,CAAA;AAE1B,SAAS,eAAe,CAAC,QAAgB,EAAE,IAAc;IACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAA;IAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAA;IAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,QAAgB,EAAE,QAAgB;IACrE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAExB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACvB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEvB,OAAO,GAAG,CAAC,IAAI,CAAA;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,GAAW;IAC1C,OAAO;QACL,GAAG;QACH,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC;KACtB,CAAA;AACH,CAAC"}
|