@voxgig/system 0.7.1 → 0.8.0
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/lib/utility.js +5 -4
- package/dist/lib/utility.js.map +1 -1
- package/dist/system.d.ts +2 -1
- package/dist/system.js +33 -4
- package/dist/system.js.map +1 -1
- package/lib/utility.ts +3 -6
- package/package.json +3 -2
- package/system.ts +42 -4
package/dist/lib/utility.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Copyright © 2022 Voxgig Ltd, MIT License. */
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
3
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
7
|
exports.Utility = void 0;
|
|
5
8
|
const jsonic_next_1 = require("@jsonic/jsonic-next");
|
|
6
|
-
|
|
7
|
-
const Patrun = require('patrun');
|
|
9
|
+
const patrun_1 = __importDefault(require("patrun"));
|
|
8
10
|
// TODO: perform this during model build?
|
|
9
11
|
function srvmsgs(srv, model) {
|
|
10
12
|
const allmsgs = listmsgs(model.main.msg);
|
|
11
|
-
|
|
12
|
-
const allpat = Patrun();
|
|
13
|
+
const allpat = (0, patrun_1.default)({});
|
|
13
14
|
allmsgs.forEach((msg) => allpat.add(msg.props, msg));
|
|
14
15
|
// TODO: need an option to listmsgs to just list patterns
|
|
15
16
|
const srvpats = listmsgs(srv.in).map(m => m.props);
|
package/dist/lib/utility.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../../lib/utility.ts"],"names":[],"mappings":";AAAA,+CAA+C
|
|
1
|
+
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../../lib/utility.ts"],"names":[],"mappings":"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"}
|
package/dist/system.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Msg } from './lib/types';
|
|
|
2
2
|
import { Utility } from './lib/utility';
|
|
3
3
|
import { MakeSrv } from './srv/make';
|
|
4
4
|
declare function messages(seneca: any, options: any, reload: any): void;
|
|
5
|
+
declare function gubuify(params: any, Gubu: any): any;
|
|
5
6
|
declare function prepare(seneca: any, require: any): void;
|
|
6
7
|
declare function Local(this: any, options: any): void;
|
|
7
8
|
type LiveOptions = {
|
|
@@ -17,4 +18,4 @@ declare const System: {
|
|
|
17
18
|
prepare: typeof prepare;
|
|
18
19
|
};
|
|
19
20
|
export type { Msg };
|
|
20
|
-
export { System, MakeSrv, Utility, Local, Live, };
|
|
21
|
+
export { gubuify, System, MakeSrv, Utility, Local, Live, };
|
package/dist/system.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.Live = exports.Local = exports.Utility = exports.MakeSrv = exports.System = void 0;
|
|
7
|
+
exports.Live = exports.Local = exports.Utility = exports.MakeSrv = exports.System = exports.gubuify = void 0;
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
10
|
const utility_1 = require("./lib/utility");
|
|
@@ -17,12 +17,41 @@ function messages(seneca, options, reload) {
|
|
|
17
17
|
let model = seneca.context.model;
|
|
18
18
|
let srvmodel = model.main.srv[srvname];
|
|
19
19
|
let msgs = srvmsgs(srvmodel, model);
|
|
20
|
-
// console.log('SYSTEM: MESSAGES FOUND', srvname,
|
|
21
|
-
// msgs.map(m=>m.pattern))
|
|
22
20
|
for (let msg of msgs) {
|
|
23
|
-
|
|
21
|
+
let action = reload(actpath(msg), { options });
|
|
22
|
+
let params = {};
|
|
23
|
+
if (msg.meta.params) {
|
|
24
|
+
let shape = gubuify(seneca.util.deep(msg.meta.params), seneca.util.Gubu);
|
|
25
|
+
params = shape.node().v;
|
|
26
|
+
}
|
|
27
|
+
seneca.message(msg.pattern, params, action);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Convert string values into Gubu builder expressions.
|
|
31
|
+
function gubuify(params, Gubu) {
|
|
32
|
+
if (null == params) {
|
|
33
|
+
return params;
|
|
34
|
+
}
|
|
35
|
+
for (let pn in params) {
|
|
36
|
+
let m = null;
|
|
37
|
+
let pv = params[pn];
|
|
38
|
+
if ('object' === typeof pv) {
|
|
39
|
+
params[pn] = gubuify(pv, Gubu);
|
|
40
|
+
}
|
|
41
|
+
else if ('string' === typeof pv &&
|
|
42
|
+
-1 === pn.indexOf(':') && ('function' === typeof Gubu[(m = ((pv.match(/\s*([A-Z]\w+)([(.\s]|$)/) || []))[1])] ||
|
|
43
|
+
({ String: 1, Number: 1, Boolean: 1 }[m]))) {
|
|
44
|
+
let png = pn + ':' + pv;
|
|
45
|
+
params[png] = pv;
|
|
46
|
+
delete params[pn];
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
params[pn] = Gubu(pv);
|
|
50
|
+
}
|
|
24
51
|
}
|
|
52
|
+
return Gubu(params);
|
|
25
53
|
}
|
|
54
|
+
exports.gubuify = gubuify;
|
|
26
55
|
function actpath(msg) {
|
|
27
56
|
if (msg.meta.file) {
|
|
28
57
|
return msg.meta.file;
|
package/dist/system.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../system.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;;;;AAG/C,gDAAuB;AACvB,4CAAmB;AAOnB,2CAAuC;
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../system.ts"],"names":[],"mappings":"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"}
|
package/lib/utility.ts
CHANGED
|
@@ -8,21 +8,18 @@ import type {
|
|
|
8
8
|
import { util } from '@jsonic/jsonic-next'
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
|
|
12
|
+
import Patrun from 'patrun'
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
// TODO: perform this during model build?
|
|
16
16
|
function srvmsgs(srv: Record<string, any>, model: Record<string, any>): Msg[] {
|
|
17
17
|
const allmsgs = listmsgs(model.main.msg)
|
|
18
|
-
|
|
19
|
-
// const allpat = Seneca.util.Patrun()
|
|
20
|
-
const allpat = Patrun()
|
|
18
|
+
const allpat = Patrun({})
|
|
21
19
|
allmsgs.forEach((msg: Msg) => allpat.add(msg.props, msg))
|
|
22
20
|
|
|
23
21
|
// TODO: need an option to listmsgs to just list patterns
|
|
24
22
|
const srvpats = listmsgs(srv.in).map(m => m.props)
|
|
25
|
-
|
|
26
23
|
const srvmsgs: Msg[] = []
|
|
27
24
|
srvpats.reduce((a, pat) =>
|
|
28
25
|
(a.push(...(allpat
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"main": "dist/system.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/system.d.ts",
|
|
@@ -37,9 +37,10 @@
|
|
|
37
37
|
],
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/jest": "^29.5.10",
|
|
40
|
+
"es-jest": "^2.1.0",
|
|
40
41
|
"esbuild": "^0.19.8",
|
|
42
|
+
"gubu": "^6.0.1",
|
|
41
43
|
"jest": "^29.7.0",
|
|
42
|
-
"es-jest": "^2.1.0",
|
|
43
44
|
"typescript": "^5.3.2"
|
|
44
45
|
},
|
|
45
46
|
"dependencies": {
|
package/system.ts
CHANGED
|
@@ -22,14 +22,51 @@ function messages(seneca: any, options: any, reload: any) {
|
|
|
22
22
|
|
|
23
23
|
let model = seneca.context.model
|
|
24
24
|
let srvmodel = model.main.srv[srvname]
|
|
25
|
-
|
|
26
25
|
let msgs = srvmsgs(srvmodel, model)
|
|
27
|
-
// console.log('SYSTEM: MESSAGES FOUND', srvname,
|
|
28
|
-
// msgs.map(m=>m.pattern))
|
|
29
26
|
|
|
30
27
|
for (let msg of msgs) {
|
|
31
|
-
|
|
28
|
+
let action: Function = reload(actpath(msg), { options })
|
|
29
|
+
|
|
30
|
+
let params = {}
|
|
31
|
+
|
|
32
|
+
if (msg.meta.params) {
|
|
33
|
+
let shape = gubuify(seneca.util.deep(msg.meta.params), seneca.util.Gubu)
|
|
34
|
+
params = shape.node().v
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
seneca.message(msg.pattern, params, action)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
// Convert string values into Gubu builder expressions.
|
|
43
|
+
function gubuify(params: any, Gubu: any) {
|
|
44
|
+
if (null == params) {
|
|
45
|
+
return params
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
for (let pn in params) {
|
|
49
|
+
let m = null
|
|
50
|
+
let pv = params[pn]
|
|
51
|
+
if ('object' === typeof pv) {
|
|
52
|
+
params[pn] = gubuify(pv, Gubu)
|
|
53
|
+
}
|
|
54
|
+
else if (
|
|
55
|
+
'string' === typeof pv &&
|
|
56
|
+
-1 === pn.indexOf(':') && (
|
|
57
|
+
'function' === typeof Gubu[(m = ((pv.match(/\s*([A-Z]\w+)([(.\s]|$)/) || []))[1])] ||
|
|
58
|
+
({ String: 1, Number: 1, Boolean: 1 }[m])
|
|
59
|
+
)
|
|
60
|
+
) {
|
|
61
|
+
let png = pn + ':' + pv
|
|
62
|
+
params[png] = pv
|
|
63
|
+
delete params[pn]
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
params[pn] = Gubu(pv)
|
|
67
|
+
}
|
|
32
68
|
}
|
|
69
|
+
return Gubu(params)
|
|
33
70
|
}
|
|
34
71
|
|
|
35
72
|
|
|
@@ -160,6 +197,7 @@ export type {
|
|
|
160
197
|
}
|
|
161
198
|
|
|
162
199
|
export {
|
|
200
|
+
gubuify,
|
|
163
201
|
System,
|
|
164
202
|
MakeSrv,
|
|
165
203
|
Utility,
|