@voxgig/build 0.3.1 → 0.6.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/build.ts +75 -2
- package/dist/build.d.ts +4 -0
- package/dist/build.js +58 -2
- package/dist/build.js.map +1 -1
- package/package.json +3 -3
package/build.ts
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
import Fs from 'fs'
|
|
4
4
|
import Path from 'path'
|
|
5
5
|
|
|
6
|
+
import { dive } from '@voxgig/model'
|
|
7
|
+
|
|
6
8
|
const EnvLambda = {
|
|
7
9
|
|
|
8
10
|
srv_yml: (model: any, spec: {
|
|
@@ -20,6 +22,12 @@ const EnvLambda = {
|
|
|
20
22
|
const lambda = srv.env.lambda
|
|
21
23
|
const handler = lambda.handler
|
|
22
24
|
|
|
25
|
+
// NOTE: gen.custom covention: allows for complete overwrite
|
|
26
|
+
// as a get-out-of-jail
|
|
27
|
+
if (srv.gen?.custom?.lambda?.srv_yml) {
|
|
28
|
+
return srv.gen.custom.lambda.srv_yml
|
|
29
|
+
}
|
|
30
|
+
|
|
23
31
|
let srvyml = `${name}:
|
|
24
32
|
handler: ${handler.path.prefix}${name}${handler.path.suffix}
|
|
25
33
|
events:
|
|
@@ -30,11 +38,27 @@ const EnvLambda = {
|
|
|
30
38
|
let prefix = web.path.prefix
|
|
31
39
|
let area = web.path.area
|
|
32
40
|
let method = web.method
|
|
33
|
-
let
|
|
41
|
+
let corsflag = 'false'
|
|
42
|
+
let corsprops = ''
|
|
43
|
+
|
|
44
|
+
if (web.cors.active) {
|
|
45
|
+
corsflag = 'true'
|
|
46
|
+
if (web.cors.props && !empty(web.cors.props)) {
|
|
47
|
+
corsflag = ''
|
|
48
|
+
corsprops = Object
|
|
49
|
+
.entries(web.cors.props)
|
|
50
|
+
.reduce(((a: any, nv: any) => (
|
|
51
|
+
a += ` ${nv[0]}: ${nv[1]}\n`
|
|
52
|
+
, a)), '')
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
34
57
|
srvyml += ` - http:
|
|
35
58
|
path: "${prefix}${area}${name}"
|
|
36
59
|
method: ${method}
|
|
37
|
-
cors: ${
|
|
60
|
+
cors: ${corsflag}
|
|
61
|
+
${corsprops}
|
|
38
62
|
`
|
|
39
63
|
}
|
|
40
64
|
|
|
@@ -74,8 +98,57 @@ exports.handler = async (event, context) => {
|
|
|
74
98
|
})
|
|
75
99
|
},
|
|
76
100
|
|
|
101
|
+
|
|
102
|
+
resources_yml: (model: any, spec: {
|
|
103
|
+
folder: string
|
|
104
|
+
custom: string
|
|
105
|
+
}) => {
|
|
106
|
+
let resources_yml_path = Path.join(spec.folder, 'resources.yml')
|
|
107
|
+
|
|
108
|
+
let content = dive(model.main.ent).map(entry => {
|
|
109
|
+
// console.log('DYNAMO', entry)
|
|
110
|
+
let path = entry[0]
|
|
111
|
+
let ent = entry[1]
|
|
112
|
+
|
|
113
|
+
if (ent && ent.dynamo?.active) {
|
|
114
|
+
let name = path.join('')
|
|
115
|
+
let fullname = ent.dynamo.prefix +
|
|
116
|
+
name +
|
|
117
|
+
ent.dynamo.suffix
|
|
118
|
+
|
|
119
|
+
return `${name}:
|
|
120
|
+
Type: AWS::DynamoDB::Table
|
|
121
|
+
Properties:
|
|
122
|
+
TableName: ${fullname}
|
|
123
|
+
BillingMode: "PAY_PER_REQUEST"
|
|
124
|
+
PointInTimeRecoverySpecification:
|
|
125
|
+
PointInTimeRecoveryEnabled: "true"
|
|
126
|
+
AttributeDefinitions:
|
|
127
|
+
- AttributeName: "${ent.id.field}"
|
|
128
|
+
AttributeType: "S"
|
|
129
|
+
KeySchema:
|
|
130
|
+
- AttributeName: "${ent.id.field}"
|
|
131
|
+
KeyType: HASH
|
|
132
|
+
`
|
|
133
|
+
}
|
|
134
|
+
return ''
|
|
135
|
+
}).join('\n\n\n')
|
|
136
|
+
|
|
137
|
+
if (spec.custom) {
|
|
138
|
+
content = Fs.readFileSync(spec.custom).toString() + '\n\n\n' + content
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
Fs.writeFileSync(resources_yml_path, content)
|
|
142
|
+
}
|
|
143
|
+
|
|
77
144
|
}
|
|
78
145
|
|
|
146
|
+
|
|
147
|
+
function empty(o: any) {
|
|
148
|
+
return null == o ? true : 0 === Object.keys(o).length
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
|
|
79
152
|
export {
|
|
80
153
|
EnvLambda
|
|
81
154
|
}
|
package/dist/build.d.ts
CHANGED
package/dist/build.js
CHANGED
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.EnvLambda = void 0;
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const model_1 = require("@voxgig/model");
|
|
10
11
|
const EnvLambda = {
|
|
11
12
|
srv_yml: (model, spec) => {
|
|
12
13
|
let srv_yml_path = path_1.default.join(spec.folder, 'srv.yml');
|
|
@@ -14,10 +15,16 @@ const EnvLambda = {
|
|
|
14
15
|
.entries(model.main.srv)
|
|
15
16
|
.filter((entry) => { var _a, _b; return (_b = (_a = entry[1].env) === null || _a === void 0 ? void 0 : _a.lambda) === null || _b === void 0 ? void 0 : _b.active; })
|
|
16
17
|
.map((entry) => {
|
|
18
|
+
var _a, _b, _c;
|
|
17
19
|
const name = entry[0];
|
|
18
20
|
const srv = entry[1];
|
|
19
21
|
const lambda = srv.env.lambda;
|
|
20
22
|
const handler = lambda.handler;
|
|
23
|
+
// NOTE: gen.custom covention: allows for complete overwrite
|
|
24
|
+
// as a get-out-of-jail
|
|
25
|
+
if ((_c = (_b = (_a = srv.gen) === null || _a === void 0 ? void 0 : _a.custom) === null || _b === void 0 ? void 0 : _b.lambda) === null || _c === void 0 ? void 0 : _c.srv_yml) {
|
|
26
|
+
return srv.gen.custom.lambda.srv_yml;
|
|
27
|
+
}
|
|
21
28
|
let srvyml = `${name}:
|
|
22
29
|
handler: ${handler.path.prefix}${name}${handler.path.suffix}
|
|
23
30
|
events:
|
|
@@ -27,11 +34,23 @@ const EnvLambda = {
|
|
|
27
34
|
let prefix = web.path.prefix;
|
|
28
35
|
let area = web.path.area;
|
|
29
36
|
let method = web.method;
|
|
30
|
-
let
|
|
37
|
+
let corsflag = 'false';
|
|
38
|
+
let corsprops = '';
|
|
39
|
+
if (web.cors.active) {
|
|
40
|
+
corsflag = 'true';
|
|
41
|
+
if (web.cors.props && !empty(web.cors.props)) {
|
|
42
|
+
corsflag = '';
|
|
43
|
+
corsprops = Object
|
|
44
|
+
.entries(web.cors.props)
|
|
45
|
+
.reduce(((a, nv) => (a += ` ${nv[0]}: ${nv[1]}\n`
|
|
46
|
+
, a)), '');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
31
49
|
srvyml += ` - http:
|
|
32
50
|
path: "${prefix}${area}${name}"
|
|
33
51
|
method: ${method}
|
|
34
|
-
cors: ${
|
|
52
|
+
cors: ${corsflag}
|
|
53
|
+
${corsprops}
|
|
35
54
|
`;
|
|
36
55
|
}
|
|
37
56
|
return srvyml;
|
|
@@ -62,6 +81,43 @@ exports.handler = async (event, context) => {
|
|
|
62
81
|
}
|
|
63
82
|
});
|
|
64
83
|
},
|
|
84
|
+
resources_yml: (model, spec) => {
|
|
85
|
+
let resources_yml_path = path_1.default.join(spec.folder, 'resources.yml');
|
|
86
|
+
let content = (0, model_1.dive)(model.main.ent).map(entry => {
|
|
87
|
+
var _a;
|
|
88
|
+
// console.log('DYNAMO', entry)
|
|
89
|
+
let path = entry[0];
|
|
90
|
+
let ent = entry[1];
|
|
91
|
+
if (ent && ((_a = ent.dynamo) === null || _a === void 0 ? void 0 : _a.active)) {
|
|
92
|
+
let name = path.join('');
|
|
93
|
+
let fullname = ent.dynamo.prefix +
|
|
94
|
+
name +
|
|
95
|
+
ent.dynamo.suffix;
|
|
96
|
+
return `${name}:
|
|
97
|
+
Type: AWS::DynamoDB::Table
|
|
98
|
+
Properties:
|
|
99
|
+
TableName: ${fullname}
|
|
100
|
+
BillingMode: "PAY_PER_REQUEST"
|
|
101
|
+
PointInTimeRecoverySpecification:
|
|
102
|
+
PointInTimeRecoveryEnabled: "true"
|
|
103
|
+
AttributeDefinitions:
|
|
104
|
+
- AttributeName: "${ent.id.field}"
|
|
105
|
+
AttributeType: "S"
|
|
106
|
+
KeySchema:
|
|
107
|
+
- AttributeName: "${ent.id.field}"
|
|
108
|
+
KeyType: HASH
|
|
109
|
+
`;
|
|
110
|
+
}
|
|
111
|
+
return '';
|
|
112
|
+
}).join('\n\n\n');
|
|
113
|
+
if (spec.custom) {
|
|
114
|
+
content = fs_1.default.readFileSync(spec.custom).toString() + '\n\n\n' + content;
|
|
115
|
+
}
|
|
116
|
+
fs_1.default.writeFileSync(resources_yml_path, content);
|
|
117
|
+
}
|
|
65
118
|
};
|
|
66
119
|
exports.EnvLambda = EnvLambda;
|
|
120
|
+
function empty(o) {
|
|
121
|
+
return null == o ? true : 0 === Object.keys(o).length;
|
|
122
|
+
}
|
|
67
123
|
//# sourceMappingURL=build.js.map
|
package/dist/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../build.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;;;;AAE/C,4CAAmB;AACnB,gDAAuB;AAEvB,MAAM,SAAS,GAAG;IAEhB,OAAO,EAAE,CAAC,KAAU,EAAE,IAErB,EAAE,EAAE;QACH,IAAI,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAEpD,IAAI,OAAO,GAAG,MAAM;aACjB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;aACvB,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,0CAAE,MAAM,0CAAE,MAAM,CAAA,EAAA,CAAC;aACpD,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../build.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/build",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"main": "dist/build.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/build.d.ts",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"dependencies": {},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/jest": "^28.1.6",
|
|
44
|
-
"@voxgig/model": "^0.
|
|
44
|
+
"@voxgig/model": "^0.8.0",
|
|
45
45
|
"@voxgig/system": "^0.4.1",
|
|
46
|
-
"esbuild": "^0.
|
|
46
|
+
"esbuild": "^0.15.2",
|
|
47
47
|
"esbuild-jest": "^0.5.0",
|
|
48
48
|
"jest": "^28.1.3",
|
|
49
49
|
"tinyify": "^3.1.0",
|