nodefony 7.0.0-beta.2 → 7.0.0-beta.21
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/CHANGELOG.md +534 -8028
- package/README.md +33 -30
- package/autoloader.es6 +46 -48
- package/builder.es6 +66 -76
- package/cli/builder/bundles/bundle.js +57 -63
- package/cli/builder/bundles/controller.js +34 -38
- package/cli/builder/bundles/users-bundle/Command/fixtureTask.js +11 -12
- package/cli/builder/bundles/users-bundle/Command/usersCommand.js +23 -24
- package/cli/builder/bundles/users-bundle/Entity/mongoose/userEntity.js +25 -30
- package/cli/builder/bundles/users-bundle/Entity/sequelize/userEntity.js +42 -31
- package/cli/builder/bundles/users-bundle/Fixtures/users.js +24 -26
- package/cli/builder/bundles/users-bundle/Fixtures/usersFixtures.js +28 -29
- package/cli/builder/bundles/users-bundle/Resources/config/config.js +4 -3
- package/cli/builder/bundles/users-bundle/Resources/config/routing.js +2 -2
- package/cli/builder/bundles/users-bundle/Resources/config/security.js +9 -8
- package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.dev.config.js +3 -3
- package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.prod.config.js +4 -3
- package/cli/builder/bundles/users-bundle/Resources/config/webpack.config.js +74 -75
- package/cli/builder/bundles/users-bundle/Resources/scss/awesome/font-awesome.config.js +9 -9
- package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/login.js +13 -13
- package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/users.js +14 -14
- package/cli/builder/bundles/users-bundle/controller/api/graphql/graphqlController.js +13 -15
- package/cli/builder/bundles/users-bundle/controller/api/graphql/userResolver.js +29 -29
- package/cli/builder/bundles/users-bundle/controller/api/graphql/usertype.js +2 -2
- package/cli/builder/bundles/users-bundle/controller/api/openapi/loginApiController.js +34 -36
- package/cli/builder/bundles/users-bundle/controller/api/openapi/restUserController.js +32 -36
- package/cli/builder/bundles/users-bundle/controller/loginController.js +30 -34
- package/cli/builder/bundles/users-bundle/controller/usersController.js +54 -60
- package/cli/builder/bundles/users-bundle/package.json +27 -25
- package/cli/builder/bundles/users-bundle/pnpm-lock.yaml +4262 -0
- package/cli/builder/bundles/users-bundle/readme.md +7 -7
- package/cli/builder/bundles/users-bundle/services/usersService.js +97 -102
- package/cli/builder/bundles/users-bundle/src/providers/mongoose/userProvider.js +6 -8
- package/cli/builder/bundles/users-bundle/src/providers/sequelize/userProvider.js +9 -10
- package/cli/builder/bundles/users-bundle/tests/loginTest.js +119 -70
- package/cli/builder/bundles/users-bundle/usersBundle.js +2 -3
- package/cli/builder/microService/microService.js +139 -141
- package/cli/builder/microService/skeletons/package.json +23 -22
- package/cli/builder/project/project.js +228 -181
- package/cli/builder/project/skeletons/README.md +33 -30
- package/cli/builder/project/skeletons/bin/dev-deploy.sh +5 -0
- package/cli/builder/project/skeletons/bin/prod-deploy.sh +3 -0
- package/cli/builder/project/skeletons/config/config.js.skeleton +1 -0
- package/cli/builder/project/skeletons/config/pm2.config.js.skeleton +41 -17
- package/cli/builder/project/skeletons/eslintignore.skeleton +15 -0
- package/cli/builder/project/skeletons/eslintrc.js.skeleton +97 -0
- package/cli/builder/project/skeletons/gitignore.skeleton +1 -0
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.37.entity-user.js +137 -0
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.38.entity-session.js +97 -0
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.39.entity-requests.js +115 -0
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.40.entity-jwts.js +97 -0
- package/cli/builder/project/skeletons/migrations/migrations.skeleton.js +0 -2
- package/cli/builder/project/skeletons/package.json.twig +70 -0
- package/cli/builder/react/reactBuilder.js +59 -65
- package/cli/builder/sandbox/sandBoxBuilder.js +132 -134
- package/cli/builder/skeletons/app/appKernel.js +120 -2
- package/cli/builder/skeletons/config/config.js +1 -1
- package/cli/builder/skeletons/config/nodefony/framework-bundle.js +2 -1
- package/cli/builder/skeletons/config/nodefony/http-bundle.js +1 -0
- package/cli/builder/skeletons/config/nodefony/mongoose-bundle.js +38 -12
- package/cli/builder/skeletons/config/nodefony/monitoring-bundle.js +21 -2
- package/cli/builder/skeletons/config/nodefony/sequelize-bundle.js +122 -13
- package/cli/builder/skeletons/package.json.twig +57 -0
- package/cli/builder/skeletons/unittest/testFile.js +44 -45
- package/cli/builder/vue/skeletons/vue.config.js +84 -10
- package/cli/builder/vue/vueBuilder.js +116 -114
- package/cli/generate/generate.es6 +38 -39
- package/cli/install/install.js +45 -58
- package/cli/sequelize/sequelize.js +50 -39
- package/cli/start.js +353 -347
- package/cli/tools/pm2.es6 +55 -57
- package/cli/tools/tools.es6 +36 -37
- package/cli.es6 +280 -228
- package/container.es6 +51 -59
- package/error.es6 +25 -27
- package/fileClass.es6 +53 -55
- package/finder/file.es6 +5 -4
- package/finder/fileResult.es6 +23 -22
- package/finder/finder2.es6 +46 -54
- package/finder.es6 +88 -97
- package/kernel/annotations/annotations.es6 +44 -46
- package/kernel/api/api.es6 +6 -8
- package/kernel/api/graphqlApi.es6 +21 -21
- package/kernel/api/jsonApi.es6 +40 -45
- package/kernel/api/openApi.es6 +9 -11
- package/kernel/api/schemas/openApiSchema.js +61 -32
- package/kernel/babylon.es6 +31 -38
- package/kernel/bundle.es6 +252 -220
- package/kernel/cliKernel.es6 +157 -170
- package/kernel/command.es6 +17 -20
- package/kernel/commands/nodefonyCommand.es6 +111 -58
- package/kernel/commands/tasks/bundlesTask.es6 +14 -19
- package/kernel/controllers/controller.es6 +167 -180
- package/kernel/fixture.es6 +4 -7
- package/kernel/injections/injections.es6 +97 -103
- package/kernel/kernel.es6 +476 -384
- package/kernel/kernelWatcher.es6 +64 -54
- package/kernel/orm/entity.es6 +10 -12
- package/kernel/orm/orm.es6 +68 -48
- package/kernel/reader.es6 +45 -47
- package/kernel/security/encoder.es6 +8 -6
- package/kernel/security/factories/factory.es6 +34 -37
- package/kernel/security/factories/passeportFactory.es6 +13 -14
- package/kernel/security/provider.es6 +11 -13
- package/kernel/security/providers/chainProvider.es6 +13 -28
- package/kernel/security/providers/memoryProvider.es6 +7 -11
- package/kernel/security/providers/providerManager.es6 +11 -14
- package/kernel/security/providers/userEntityProvider.es6 +7 -8
- package/kernel/security/role.es6 +3 -3
- package/kernel/security/secureArea.es6 +143 -149
- package/kernel/security/tokens/token.es6 +30 -32
- package/kernel/security/user.es6 +19 -19
- package/kernel/serviceRealTime.es6 +5 -7
- package/kernel/services/connectionsService.es6 +20 -22
- package/kernel/services/cron/cronService.es6 +14 -16
- package/kernel/task.es6 +20 -26
- package/kernel/templates.es6 +4 -5
- package/kernel/templating/twig.es6 +56 -47
- package/kernel/tests/cliTest.js +7 -11
- package/kernel/tests/containerTest.js +25 -37
- package/kernel/tests/kernelTest.js +9 -16
- package/nodefony.es6 +279 -256
- package/notificationsCenter.es6 +28 -20
- package/package.json +40 -40
- package/protocol.es6 +19 -21
- package/protocols/bayeux.es6 +35 -38
- package/protocols/jsonRpc/jsonrpc.es6 +12 -14
- package/result.es6 +11 -12
- package/service.es6 +62 -62
- package/syslog/pdu.es6 +99 -91
- package/syslog/syslog.es6 +101 -102
- package/watcher.es6 +21 -20
- package/cli/builder/project/skeletons/jshintignore.skeleton +0 -1
- package/cli/builder/project/skeletons/jshintrc.skeleton +0 -60
- package/cli/builder/project/skeletons/package.json.skeleton +0 -52
- package/cli/builder/skeletons/package.json +0 -61
package/builder.es6
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
class Builder extends nodefony.Service {
|
|
2
|
-
|
|
3
|
-
constructor(cli, cmd, args) {
|
|
2
|
+
constructor (cli, cmd, args) {
|
|
4
3
|
super("BUILDER", cli.container, cli.notificationsCenter);
|
|
5
4
|
this.cli = cli;
|
|
6
5
|
this.twig = twig;
|
|
@@ -11,7 +10,7 @@ class Builder extends nodefony.Service {
|
|
|
11
10
|
this.force = false;
|
|
12
11
|
this.twigOptions = {
|
|
13
12
|
views: process.cwd(),
|
|
14
|
-
|
|
13
|
+
"twig options": {
|
|
15
14
|
async: false,
|
|
16
15
|
cache: false
|
|
17
16
|
}
|
|
@@ -19,62 +18,55 @@ class Builder extends nodefony.Service {
|
|
|
19
18
|
this.response = nodefony.extend(true, {}, this.cli.response);
|
|
20
19
|
}
|
|
21
20
|
|
|
22
|
-
setLocation(location) {
|
|
21
|
+
setLocation (location) {
|
|
23
22
|
if (location instanceof nodefony.fileClass) {
|
|
24
23
|
return this.location = location.path;
|
|
25
24
|
}
|
|
26
25
|
return this.location = path.resolve(location);
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
setEnv(env) {
|
|
28
|
+
setEnv (env) {
|
|
30
29
|
process.env.NODE_ENV = env || "development";
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
async run(interactive) {
|
|
32
|
+
async run (interactive) {
|
|
34
33
|
if (interactive) {
|
|
35
34
|
this.interactive = interactive;
|
|
36
35
|
return this.interaction()
|
|
37
36
|
.then((response) => {
|
|
38
|
-
//this.log(this.response, "WARNING")
|
|
37
|
+
// this.log(this.response, "WARNING")
|
|
39
38
|
nodefony.extend(true, this.response, response);
|
|
40
|
-
//this.log(this.response)
|
|
39
|
+
// this.log(this.response)
|
|
41
40
|
nodefony.extend(true, this.cli.response, this.response);
|
|
42
|
-
//this.log(this.cli.response,"CRITIC")
|
|
41
|
+
// this.log(this.cli.response,"CRITIC")
|
|
43
42
|
return this.generate(response, this.force)
|
|
44
|
-
.then((response) => {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
})
|
|
50
|
-
.catch(e => {
|
|
43
|
+
.then((response) => ({
|
|
44
|
+
response,
|
|
45
|
+
builder: this
|
|
46
|
+
}))
|
|
47
|
+
.catch((e) => {
|
|
51
48
|
throw e;
|
|
52
49
|
});
|
|
53
50
|
})
|
|
54
|
-
.catch(e => {
|
|
55
|
-
throw e;
|
|
56
|
-
});
|
|
57
|
-
} else {
|
|
58
|
-
return this.generate(null, this.force)
|
|
59
|
-
.then((response) => {
|
|
60
|
-
return {
|
|
61
|
-
response: response,
|
|
62
|
-
builder: this
|
|
63
|
-
};
|
|
64
|
-
})
|
|
65
|
-
.catch(e => {
|
|
51
|
+
.catch((e) => {
|
|
66
52
|
throw e;
|
|
67
53
|
});
|
|
68
54
|
}
|
|
55
|
+
return this.generate(null, this.force)
|
|
56
|
+
.then((response) => ({
|
|
57
|
+
response,
|
|
58
|
+
builder: this
|
|
59
|
+
}))
|
|
60
|
+
.catch((e) => {
|
|
61
|
+
throw e;
|
|
62
|
+
});
|
|
69
63
|
}
|
|
70
64
|
|
|
71
|
-
interaction() {
|
|
72
|
-
return new Promise(resolve =>
|
|
73
|
-
return resolve(this.cli.response);
|
|
74
|
-
});
|
|
65
|
+
interaction () {
|
|
66
|
+
return new Promise((resolve) => resolve(this.cli.response));
|
|
75
67
|
}
|
|
76
68
|
|
|
77
|
-
generate(response, force = false) {
|
|
69
|
+
generate (response, force = false) {
|
|
78
70
|
return new Promise((resolve, reject) => {
|
|
79
71
|
try {
|
|
80
72
|
if (this.createBuilder) {
|
|
@@ -88,7 +80,7 @@ class Builder extends nodefony.Service {
|
|
|
88
80
|
});
|
|
89
81
|
}
|
|
90
82
|
|
|
91
|
-
buildFront(response, Path) {
|
|
83
|
+
buildFront (response, Path) {
|
|
92
84
|
this.Front = null;
|
|
93
85
|
switch (response.front) {
|
|
94
86
|
case "vue":
|
|
@@ -97,13 +89,13 @@ class Builder extends nodefony.Service {
|
|
|
97
89
|
case "react":
|
|
98
90
|
this.Front = new nodefony.builders.react(this.cli, this.cmd, this.args, response);
|
|
99
91
|
break;
|
|
100
|
-
case
|
|
92
|
+
case "electron":
|
|
101
93
|
this.Front = null;
|
|
102
94
|
break;
|
|
103
|
-
case
|
|
95
|
+
case "api":
|
|
104
96
|
this.Front = null;
|
|
105
97
|
break;
|
|
106
|
-
case
|
|
98
|
+
case "sandbox":
|
|
107
99
|
default:
|
|
108
100
|
this.Front = new nodefony.builders.sandbox(this.cli, this.cmd, this.args, response);
|
|
109
101
|
break;
|
|
@@ -112,12 +104,12 @@ class Builder extends nodefony.Service {
|
|
|
112
104
|
return this.Front;
|
|
113
105
|
}
|
|
114
106
|
|
|
115
|
-
async removeInteractivePath(file) {
|
|
107
|
+
async removeInteractivePath (file) {
|
|
116
108
|
return this.cli.prompt([{
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
109
|
+
type: "confirm",
|
|
110
|
+
name: "remove",
|
|
111
|
+
message: `Do You Want Remove : ${file}?`,
|
|
112
|
+
default: false
|
|
121
113
|
}])
|
|
122
114
|
.then((response) => {
|
|
123
115
|
if (response.remove) {
|
|
@@ -133,12 +125,13 @@ class Builder extends nodefony.Service {
|
|
|
133
125
|
} else {
|
|
134
126
|
return response;
|
|
135
127
|
}
|
|
136
|
-
})
|
|
128
|
+
})
|
|
129
|
+
.catch((e) => {
|
|
137
130
|
throw e;
|
|
138
131
|
});
|
|
139
132
|
}
|
|
140
133
|
|
|
141
|
-
buildSkeleton(skeleton, parse = true, obj = {}, callback = null) {
|
|
134
|
+
buildSkeleton (skeleton, parse = true, obj = {}, callback = null) {
|
|
142
135
|
let skelete = null;
|
|
143
136
|
if (!callback) {
|
|
144
137
|
return new Promise((resolve, reject) => {
|
|
@@ -159,7 +152,7 @@ class Builder extends nodefony.Service {
|
|
|
159
152
|
});
|
|
160
153
|
} else {
|
|
161
154
|
fs.readFile(skelete.path, {
|
|
162
|
-
encoding:
|
|
155
|
+
encoding: "utf8"
|
|
163
156
|
}, (error, result) => {
|
|
164
157
|
if (error) {
|
|
165
158
|
return reject(error);
|
|
@@ -168,7 +161,7 @@ class Builder extends nodefony.Service {
|
|
|
168
161
|
});
|
|
169
162
|
}
|
|
170
163
|
} else {
|
|
171
|
-
|
|
164
|
+
const error = new Error(` skeleton must be file !!! : ${skelete.path}`);
|
|
172
165
|
return reject(error);
|
|
173
166
|
}
|
|
174
167
|
} catch (e) {
|
|
@@ -188,11 +181,11 @@ class Builder extends nodefony.Service {
|
|
|
188
181
|
this.twig.renderFile(skelete.path, obj, callback);
|
|
189
182
|
} else {
|
|
190
183
|
callback(null, fs.readFileSync(skelete.path, {
|
|
191
|
-
encoding:
|
|
184
|
+
encoding: "utf8"
|
|
192
185
|
}));
|
|
193
186
|
}
|
|
194
187
|
} else {
|
|
195
|
-
throw new Error(
|
|
188
|
+
throw new Error(` skeleton must be file !!! : ${skelete.path}`);
|
|
196
189
|
}
|
|
197
190
|
} catch (e) {
|
|
198
191
|
this.log(e, "ERROR");
|
|
@@ -200,7 +193,7 @@ class Builder extends nodefony.Service {
|
|
|
200
193
|
return skelete;
|
|
201
194
|
}
|
|
202
195
|
|
|
203
|
-
build(obj, parent, force) {
|
|
196
|
+
build (obj, parent, force) {
|
|
204
197
|
let child = null;
|
|
205
198
|
try {
|
|
206
199
|
if (!(parent instanceof nodefony.fileClass)) {
|
|
@@ -220,8 +213,8 @@ class Builder extends nodefony.Service {
|
|
|
220
213
|
break;
|
|
221
214
|
case "object":
|
|
222
215
|
let name = null;
|
|
223
|
-
for (
|
|
224
|
-
|
|
216
|
+
for (const ele in obj) {
|
|
217
|
+
const value = obj[ele];
|
|
225
218
|
switch (ele) {
|
|
226
219
|
case "name":
|
|
227
220
|
name = value;
|
|
@@ -230,12 +223,12 @@ class Builder extends nodefony.Service {
|
|
|
230
223
|
switch (value) {
|
|
231
224
|
case "directory":
|
|
232
225
|
try {
|
|
233
|
-
|
|
226
|
+
const directory = path.resolve(parent.path, name);
|
|
234
227
|
child = this.cli.createDirectory(directory, 0o755, (ele) => {
|
|
235
228
|
if (force) {
|
|
236
|
-
this.log(
|
|
229
|
+
this.log(`Force Create Directory :${ele.name}`);
|
|
237
230
|
} else {
|
|
238
|
-
this.log(
|
|
231
|
+
this.log(`Create Directory :${ele.name}`);
|
|
239
232
|
}
|
|
240
233
|
if (obj.chmod) {
|
|
241
234
|
this.cli.chmod(obj.chmod, directory);
|
|
@@ -248,9 +241,9 @@ class Builder extends nodefony.Service {
|
|
|
248
241
|
break;
|
|
249
242
|
case "file":
|
|
250
243
|
try {
|
|
251
|
-
|
|
244
|
+
const file = path.resolve(parent.path, name);
|
|
252
245
|
this.createFile(file, obj.skeleton, obj.parse, obj.params, (ele) => {
|
|
253
|
-
this.log(
|
|
246
|
+
this.log(`Create File :${ele.name}`);
|
|
254
247
|
});
|
|
255
248
|
if (obj.chmod) {
|
|
256
249
|
this.cli.chmod(obj.chmod, file);
|
|
@@ -263,11 +256,11 @@ class Builder extends nodefony.Service {
|
|
|
263
256
|
case "symlink":
|
|
264
257
|
try {
|
|
265
258
|
if (force) {
|
|
266
|
-
this.cli.ln(
|
|
259
|
+
this.cli.ln("-sf", path.resolve(parent.path, obj.params.source), path.resolve(parent.path, obj.params.dest));
|
|
267
260
|
} else {
|
|
268
|
-
this.cli.ln(
|
|
261
|
+
this.cli.ln("-s", path.resolve(parent.path, obj.params.source), path.resolve(parent.path, obj.params.dest));
|
|
269
262
|
}
|
|
270
|
-
this.log(
|
|
263
|
+
this.log(`Create symbolic link :${obj.name}`);
|
|
271
264
|
} catch (e) {
|
|
272
265
|
this.log(e, "ERROR");
|
|
273
266
|
throw e;
|
|
@@ -275,13 +268,13 @@ class Builder extends nodefony.Service {
|
|
|
275
268
|
break;
|
|
276
269
|
case "copy":
|
|
277
270
|
try {
|
|
278
|
-
|
|
271
|
+
const file = path.resolve(parent.path, name);
|
|
279
272
|
if (obj.params && obj.params.recurse) {
|
|
280
273
|
this.cli.cp("-R", obj.path, file);
|
|
281
274
|
} else {
|
|
282
275
|
this.cli.cp("-f", obj.path, file);
|
|
283
276
|
}
|
|
284
|
-
this.log(
|
|
277
|
+
this.log(`Copy :${obj.name}`);
|
|
285
278
|
if (obj.chmod) {
|
|
286
279
|
this.cli.chmod(obj.chmod, file);
|
|
287
280
|
}
|
|
@@ -313,7 +306,7 @@ class Builder extends nodefony.Service {
|
|
|
313
306
|
return child;
|
|
314
307
|
}
|
|
315
308
|
|
|
316
|
-
createFile(myPath, skeleton, parse = true, params = {}, callback = null) {
|
|
309
|
+
createFile (myPath, skeleton, parse = true, params = {}, callback = null) {
|
|
317
310
|
if (!callback) {
|
|
318
311
|
return new Promise((resolve, reject) => {
|
|
319
312
|
if (skeleton) {
|
|
@@ -328,20 +321,17 @@ class Builder extends nodefony.Service {
|
|
|
328
321
|
return resolve(new nodefony.fileClass(myPath));
|
|
329
322
|
});
|
|
330
323
|
})
|
|
331
|
-
.catch((e) =>
|
|
332
|
-
return reject(e);
|
|
333
|
-
});
|
|
334
|
-
} else {
|
|
335
|
-
let data = " ";
|
|
336
|
-
fs.writeFile(myPath, data, {
|
|
337
|
-
mode: params.mode || "644"
|
|
338
|
-
}, (err) => {
|
|
339
|
-
if (err) {
|
|
340
|
-
return reject(err);
|
|
341
|
-
}
|
|
342
|
-
return resolve(new nodefony.fileClass(myPath));
|
|
343
|
-
});
|
|
324
|
+
.catch((e) => reject(e));
|
|
344
325
|
}
|
|
326
|
+
const data = " ";
|
|
327
|
+
fs.writeFile(myPath, data, {
|
|
328
|
+
mode: params.mode || "644"
|
|
329
|
+
}, (err) => {
|
|
330
|
+
if (err) {
|
|
331
|
+
return reject(err);
|
|
332
|
+
}
|
|
333
|
+
return resolve(new nodefony.fileClass(myPath));
|
|
334
|
+
});
|
|
345
335
|
});
|
|
346
336
|
}
|
|
347
337
|
if (skeleton) {
|
|
@@ -360,7 +350,7 @@ class Builder extends nodefony.Service {
|
|
|
360
350
|
}
|
|
361
351
|
});
|
|
362
352
|
} else {
|
|
363
|
-
|
|
353
|
+
const data = " ";
|
|
364
354
|
try {
|
|
365
355
|
fs.writeFileSync(myPath, data, {
|
|
366
356
|
mode: params.mode || "644"
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
const regBundleName = /^(\w+)-bundle[\.js]{0,3}$|^(\w+)[Bb]undle[\.js]{0,3}$/;
|
|
2
2
|
|
|
3
3
|
class generateBundle extends nodefony.Builder {
|
|
4
|
-
|
|
5
|
-
constructor(cli, cmd, args) {
|
|
4
|
+
constructor (cli, cmd, args) {
|
|
6
5
|
super(cli, cmd, args);
|
|
7
6
|
this.name = null;
|
|
8
7
|
this.location = null;
|
|
9
8
|
this.pathSkeleton = path.resolve(__dirname, "skeletons");
|
|
10
9
|
if (this.cmd === "generate:bundles" || this.cmd === "create:bundles") {
|
|
11
10
|
if (args && args[0]) {
|
|
12
|
-
//this.name = args[0];
|
|
13
|
-
//this.cli.response.name = args[0];
|
|
11
|
+
// this.name = args[0];
|
|
12
|
+
// this.cli.response.name = args[0];
|
|
14
13
|
if (args[1]) {
|
|
15
14
|
this.setLocation(args[1]);
|
|
16
15
|
this.checkPath(args[0], args[1]);
|
|
@@ -47,39 +46,33 @@ class generateBundle extends nodefony.Builder {
|
|
|
47
46
|
this.setEnv();
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
generate(response) {
|
|
49
|
+
generate (response) {
|
|
51
50
|
return super.generate(response)
|
|
52
|
-
.then(() =>
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
.then((
|
|
56
|
-
return this.install()
|
|
57
|
-
.then(() => {
|
|
58
|
-
return bundle.response;
|
|
59
|
-
})
|
|
60
|
-
.catch((e) => {
|
|
61
|
-
throw e;
|
|
62
|
-
});
|
|
63
|
-
})
|
|
51
|
+
.then(() => this.buildFront(this.response, this.path)
|
|
52
|
+
.run(this.cli.interactive)
|
|
53
|
+
.then((bundle) => this.install()
|
|
54
|
+
.then(() => bundle.response)
|
|
64
55
|
.catch((e) => {
|
|
65
56
|
throw e;
|
|
66
|
-
})
|
|
67
|
-
|
|
57
|
+
}))
|
|
58
|
+
.catch((e) => {
|
|
59
|
+
throw e;
|
|
60
|
+
}));
|
|
68
61
|
}
|
|
69
62
|
|
|
70
|
-
async interaction() {
|
|
63
|
+
async interaction () {
|
|
71
64
|
this.cli.reset();
|
|
72
65
|
await this.cli.showAsciify("Generate Bundle");
|
|
73
|
-
|
|
74
|
-
type:
|
|
75
|
-
name:
|
|
66
|
+
const prompt = [{
|
|
67
|
+
type: "input",
|
|
68
|
+
name: "name",
|
|
76
69
|
default: this.name || "",
|
|
77
|
-
message:
|
|
70
|
+
message: "Enter Bundle Name",
|
|
78
71
|
validate: (value) => {
|
|
79
72
|
if (value && value !== "nodefony") {
|
|
80
|
-
|
|
73
|
+
const res = this.checkExist(value);
|
|
81
74
|
if (res) {
|
|
82
|
-
return
|
|
75
|
+
return `Bundle already exist ${value}`;
|
|
83
76
|
}
|
|
84
77
|
this.name = value;
|
|
85
78
|
return true;
|
|
@@ -87,23 +80,23 @@ class generateBundle extends nodefony.Builder {
|
|
|
87
80
|
return `${value} Unauthorised Please enter a valid Bundle name`;
|
|
88
81
|
}
|
|
89
82
|
}, {
|
|
90
|
-
type:
|
|
91
|
-
name:
|
|
83
|
+
type: "input",
|
|
84
|
+
name: "location",
|
|
92
85
|
default: this.location,
|
|
93
|
-
message:
|
|
86
|
+
message: "Enter Bundle Path",
|
|
94
87
|
validate: (value) => {
|
|
95
88
|
if (value) {
|
|
96
89
|
this.checkPath(this.name, value);
|
|
97
90
|
return true;
|
|
98
91
|
}
|
|
99
|
-
return
|
|
92
|
+
return "Please enter a valid Bundle Path";
|
|
100
93
|
}
|
|
101
94
|
}, {
|
|
102
|
-
type:
|
|
103
|
-
name:
|
|
95
|
+
type: "list",
|
|
96
|
+
name: "front",
|
|
104
97
|
default: 0,
|
|
105
98
|
pageSize: 10,
|
|
106
|
-
//choices: ["Sandbox (without Front framwork)", "Vue.js", "React"],
|
|
99
|
+
// choices: ["Sandbox (without Front framwork)", "Vue.js", "React"],
|
|
107
100
|
choices: [{
|
|
108
101
|
name: "Sandbox (without Front framwork)"
|
|
109
102
|
}, {
|
|
@@ -114,7 +107,7 @@ class generateBundle extends nodefony.Builder {
|
|
|
114
107
|
name: "Api",
|
|
115
108
|
disabled: true
|
|
116
109
|
}],
|
|
117
|
-
message:
|
|
110
|
+
message: "Choose Bundle Type (Mapping Front Framework in Bundle) :",
|
|
118
111
|
filter: (value) => {
|
|
119
112
|
let front = null;
|
|
120
113
|
switch (value) {
|
|
@@ -125,10 +118,10 @@ class generateBundle extends nodefony.Builder {
|
|
|
125
118
|
front = "vue";
|
|
126
119
|
break;
|
|
127
120
|
case "React":
|
|
128
|
-
front =
|
|
121
|
+
front = "react";
|
|
129
122
|
break;
|
|
130
123
|
case "Api":
|
|
131
|
-
front =
|
|
124
|
+
front = "api";
|
|
132
125
|
break;
|
|
133
126
|
default:
|
|
134
127
|
front = value;
|
|
@@ -146,36 +139,38 @@ class generateBundle extends nodefony.Builder {
|
|
|
146
139
|
if (myresponse.remove) {
|
|
147
140
|
return response;
|
|
148
141
|
}
|
|
149
|
-
|
|
142
|
+
const error = new Error(`${this.path} Already exist`);
|
|
150
143
|
error.code = 0;
|
|
151
144
|
throw error;
|
|
152
|
-
})
|
|
145
|
+
})
|
|
146
|
+
.catch((e) => {
|
|
153
147
|
throw e;
|
|
154
148
|
});
|
|
155
149
|
}
|
|
156
150
|
return response;
|
|
157
|
-
})
|
|
151
|
+
})
|
|
152
|
+
.catch((e) => {
|
|
158
153
|
throw e;
|
|
159
154
|
});
|
|
160
155
|
}
|
|
161
156
|
|
|
162
|
-
getBundle(name) {
|
|
163
|
-
|
|
157
|
+
getBundle (name) {
|
|
158
|
+
const bundle = this.checkExist(name);
|
|
164
159
|
if (!bundle) {
|
|
165
|
-
throw new Error(
|
|
160
|
+
throw new Error(`bundle ${name} don't exist `);
|
|
166
161
|
}
|
|
167
162
|
this.setPath(null, bundle);
|
|
168
163
|
return bundle;
|
|
169
164
|
}
|
|
170
165
|
|
|
171
|
-
checkExist(name) {
|
|
166
|
+
checkExist (name) {
|
|
172
167
|
if (this.cli.kernel) {
|
|
173
|
-
|
|
168
|
+
const bundle = this.cli.kernel.getBundle(name);
|
|
174
169
|
if (bundle) {
|
|
175
170
|
return bundle;
|
|
176
171
|
}
|
|
177
172
|
try {
|
|
178
|
-
|
|
173
|
+
const bundleName = this.cli.kernel.getBundleName(name);
|
|
179
174
|
if (bundleName) {
|
|
180
175
|
return this.cli.kernel.getBundle(bundleName);
|
|
181
176
|
}
|
|
@@ -187,13 +182,13 @@ class generateBundle extends nodefony.Builder {
|
|
|
187
182
|
return null;
|
|
188
183
|
}
|
|
189
184
|
|
|
190
|
-
setPath(Path, bundle) {
|
|
185
|
+
setPath (Path, bundle) {
|
|
191
186
|
if (bundle) {
|
|
192
187
|
this.name = bundle.bundleName;
|
|
193
188
|
this.shortName = bundle.name;
|
|
194
189
|
this.location = bundle.location;
|
|
195
190
|
this.bundlePath = bundle.path;
|
|
196
|
-
this.bundleFile = path.resolve(this.bundlePath, this.shortName
|
|
191
|
+
this.bundleFile = path.resolve(this.bundlePath, `${this.shortName}Bundle.js`);
|
|
197
192
|
} else {
|
|
198
193
|
if (Path instanceof nodefony.fileClass) {
|
|
199
194
|
this.location = Path.path;
|
|
@@ -204,7 +199,7 @@ class generateBundle extends nodefony.Builder {
|
|
|
204
199
|
this.location = Path;
|
|
205
200
|
}
|
|
206
201
|
this.bundlePath = path.resolve(this.location, this.name);
|
|
207
|
-
this.bundleFile = path.resolve(this.bundlePath, this.shortName
|
|
202
|
+
this.bundleFile = path.resolve(this.bundlePath, `${this.shortName}Bundle.js`);
|
|
208
203
|
}
|
|
209
204
|
nodefony.extend(this.response, {
|
|
210
205
|
bundleName: this.name,
|
|
@@ -214,16 +209,16 @@ class generateBundle extends nodefony.Builder {
|
|
|
214
209
|
});
|
|
215
210
|
}
|
|
216
211
|
|
|
217
|
-
checkPath(name, Path) {
|
|
212
|
+
checkPath (name, Path) {
|
|
218
213
|
if (!name) {
|
|
219
214
|
if (!this.name) {
|
|
220
215
|
throw new Error("No bundle name");
|
|
221
216
|
}
|
|
222
217
|
name = this.name;
|
|
223
218
|
}
|
|
224
|
-
|
|
219
|
+
const bundle = this.checkExist(name);
|
|
225
220
|
if (bundle) {
|
|
226
|
-
throw new Error(
|
|
221
|
+
throw new Error(`Bundle already exist ${name}`);
|
|
227
222
|
}
|
|
228
223
|
this.shortName = name;
|
|
229
224
|
let res = regBundleName.exec(name);
|
|
@@ -231,12 +226,12 @@ class generateBundle extends nodefony.Builder {
|
|
|
231
226
|
this.shortName = res[1];
|
|
232
227
|
this.name = name;
|
|
233
228
|
} else {
|
|
234
|
-
this.name = name
|
|
229
|
+
this.name = `${name}-bundle`;
|
|
235
230
|
res = regBundleName.exec(this.name);
|
|
236
231
|
if (res) {
|
|
237
232
|
this.shortName = res[1];
|
|
238
233
|
} else {
|
|
239
|
-
throw new Error(
|
|
234
|
+
throw new Error(`Bad bundle name :${this.name}`);
|
|
240
235
|
}
|
|
241
236
|
}
|
|
242
237
|
try {
|
|
@@ -247,7 +242,7 @@ class generateBundle extends nodefony.Builder {
|
|
|
247
242
|
}
|
|
248
243
|
}
|
|
249
244
|
|
|
250
|
-
createBuilder() {
|
|
245
|
+
createBuilder () {
|
|
251
246
|
try {
|
|
252
247
|
return {
|
|
253
248
|
name: this.name,
|
|
@@ -259,7 +254,7 @@ class generateBundle extends nodefony.Builder {
|
|
|
259
254
|
}
|
|
260
255
|
}
|
|
261
256
|
|
|
262
|
-
install() {
|
|
257
|
+
install () {
|
|
263
258
|
try {
|
|
264
259
|
let json = null;
|
|
265
260
|
let configPath = null;
|
|
@@ -291,11 +286,11 @@ class generateBundle extends nodefony.Builder {
|
|
|
291
286
|
json.system.bundles[this.name] = `file:${this.bundlePath}`;
|
|
292
287
|
}
|
|
293
288
|
fs.writeFileSync(configPath, yaml.dump(json), {
|
|
294
|
-
encoding:
|
|
289
|
+
encoding: "utf8"
|
|
295
290
|
});
|
|
296
291
|
|
|
297
292
|
try {
|
|
298
|
-
|
|
293
|
+
const file = new nodefony.fileClass(this.bundleFile);
|
|
299
294
|
if (this.cli.kernel) {
|
|
300
295
|
this.cli.kernel.loadBundle(file);
|
|
301
296
|
}
|
|
@@ -311,23 +306,22 @@ class generateBundle extends nodefony.Builder {
|
|
|
311
306
|
}
|
|
312
307
|
}
|
|
313
308
|
|
|
314
|
-
static controller(cli) {
|
|
315
|
-
|
|
309
|
+
static controller (cli) {
|
|
310
|
+
const controller = require(path.resolve(__dirname, "controller.js"));
|
|
316
311
|
return new controller(cli);
|
|
317
312
|
}
|
|
318
313
|
|
|
319
|
-
static service() {
|
|
314
|
+
static service () {
|
|
320
315
|
|
|
321
316
|
}
|
|
322
317
|
|
|
323
|
-
static entity() {
|
|
318
|
+
static entity () {
|
|
324
319
|
|
|
325
320
|
}
|
|
326
321
|
|
|
327
|
-
static command() {
|
|
322
|
+
static command () {
|
|
328
323
|
|
|
329
324
|
}
|
|
330
|
-
|
|
331
325
|
}
|
|
332
326
|
|
|
333
327
|
nodefony.builders.bundle = generateBundle;
|