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
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const spdx = require(
|
|
1
|
+
const spdx = require("spdx");
|
|
2
2
|
|
|
3
3
|
class openApiSchema extends nodefony.Service {
|
|
4
|
-
constructor(api, config, entity) {
|
|
4
|
+
constructor (api, config, entity) {
|
|
5
5
|
const container = api ? api.container : kernel.container;
|
|
6
6
|
super("openApiSchema", container, false);
|
|
7
7
|
this.api = api;
|
|
@@ -15,7 +15,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
15
15
|
components: {
|
|
16
16
|
schemas: {
|
|
17
17
|
NodefonyError: this.getErrorSchema(),
|
|
18
|
-
Pdu: this.getPduSchema()
|
|
18
|
+
Pdu: this.getPduSchema()
|
|
19
19
|
},
|
|
20
20
|
responses: this.getResponseSchema()
|
|
21
21
|
},
|
|
@@ -27,16 +27,16 @@ class openApiSchema extends nodefony.Service {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
loadConfig(config, entity) {
|
|
30
|
+
loadConfig (config, entity) {
|
|
31
31
|
this.setConfig(entity);
|
|
32
32
|
return nodefony.extend(true, this.obj, config);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
getConfig() {
|
|
35
|
+
getConfig () {
|
|
36
36
|
return this.obj;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
setConfig(entity = this.entity) {
|
|
39
|
+
setConfig (entity = this.entity) {
|
|
40
40
|
this.obj.info = this.getInfo();
|
|
41
41
|
this.obj.servers = this.getServers();
|
|
42
42
|
if (entity) {
|
|
@@ -51,7 +51,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
51
51
|
return this.obj;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
getInfo() {
|
|
54
|
+
getInfo () {
|
|
55
55
|
return {
|
|
56
56
|
title: this.api.name,
|
|
57
57
|
version: this.api.version,
|
|
@@ -66,9 +66,9 @@ class openApiSchema extends nodefony.Service {
|
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
getServers() {
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
getServers () {
|
|
70
|
+
const tab = [];
|
|
71
|
+
const base = {
|
|
72
72
|
"description": this.kernel.description,
|
|
73
73
|
"variables": {
|
|
74
74
|
"port": {
|
|
@@ -82,11 +82,22 @@ class openApiSchema extends nodefony.Service {
|
|
|
82
82
|
"default": this.api.basePath || ""
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
}
|
|
85
|
+
};
|
|
86
|
+
if (this.kernel.domain === "0.0.0.0") {
|
|
87
|
+
tab.push({
|
|
88
|
+
"url": "https://localhost:{port}",
|
|
89
|
+
...base
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
tab.push({
|
|
93
|
+
"url": `https://${this.kernel.domain}:{port}`,
|
|
94
|
+
...base
|
|
95
|
+
});
|
|
96
|
+
return tab;
|
|
86
97
|
}
|
|
87
98
|
|
|
88
|
-
getLicence(licence = "", url = "") {
|
|
89
|
-
const bundle = this.api
|
|
99
|
+
getLicence (licence = "", url = "") {
|
|
100
|
+
const {bundle} = this.api;
|
|
90
101
|
if (bundle) {
|
|
91
102
|
if (bundle.package && bundle.package.license) {
|
|
92
103
|
try {
|
|
@@ -103,7 +114,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
103
114
|
this.log(e, "WARNING");
|
|
104
115
|
spdx.licenses.every((element) => {
|
|
105
116
|
this.log(element, "WARNING");
|
|
106
|
-
return typeof element ===
|
|
117
|
+
return typeof element === "string";
|
|
107
118
|
});
|
|
108
119
|
this.log("licence not valid ", "WARNING");
|
|
109
120
|
this.log("Show licence param in package.json and use spdx to valid : https://github.com/kemitchell/spdx.js ");
|
|
@@ -114,7 +125,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
114
125
|
if (licence) {
|
|
115
126
|
return {
|
|
116
127
|
name: licence,
|
|
117
|
-
url
|
|
128
|
+
url
|
|
118
129
|
};
|
|
119
130
|
}
|
|
120
131
|
return {
|
|
@@ -122,13 +133,31 @@ class openApiSchema extends nodefony.Service {
|
|
|
122
133
|
};
|
|
123
134
|
}
|
|
124
135
|
|
|
125
|
-
setSchema(name, entity = this.entity) {
|
|
136
|
+
setSchema (name, entity = this.entity) {
|
|
126
137
|
try {
|
|
127
138
|
if (name) {
|
|
128
139
|
this.obj.components.schemas[name] = {};
|
|
129
140
|
}
|
|
130
141
|
if (entity) {
|
|
131
142
|
this.obj.components.schemas[name] = this.orm.getOpenApiSchema(entity);
|
|
143
|
+
for (let ele in this.obj.components.schemas[name].properties) {
|
|
144
|
+
if (this.obj.components.schemas[ele]) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
const attr = this.obj.components.schemas[name].properties[ele];
|
|
148
|
+
if (attr.items && attr.items.$ref) {
|
|
149
|
+
let entityRef = this.orm.getEntity(ele);
|
|
150
|
+
if (entityRef) {
|
|
151
|
+
this.obj.components.schemas[ele] = this.orm.getOpenApiSchema(entityRef);
|
|
152
|
+
} else if (ele.endsWith("s")) {
|
|
153
|
+
ele = ele.slice(0, -1);
|
|
154
|
+
entityRef = this.orm.getEntity(ele);
|
|
155
|
+
if (entityRef) {
|
|
156
|
+
this.obj.components.schemas[ele] = this.orm.getOpenApiSchema(entityRef);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
132
161
|
}
|
|
133
162
|
} catch (e) {
|
|
134
163
|
this.log(e, "WARNING");
|
|
@@ -137,9 +166,9 @@ class openApiSchema extends nodefony.Service {
|
|
|
137
166
|
}
|
|
138
167
|
|
|
139
168
|
|
|
140
|
-
getResponseSchema() {
|
|
169
|
+
getResponseSchema () {
|
|
141
170
|
return {
|
|
142
|
-
|
|
171
|
+
"400": {
|
|
143
172
|
description: "Bad Request",
|
|
144
173
|
content: {
|
|
145
174
|
"application/json": {
|
|
@@ -149,7 +178,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
149
178
|
}
|
|
150
179
|
}
|
|
151
180
|
},
|
|
152
|
-
|
|
181
|
+
"401": {
|
|
153
182
|
description: "Unauthorized",
|
|
154
183
|
content: {
|
|
155
184
|
"application/json": {
|
|
@@ -159,7 +188,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
159
188
|
}
|
|
160
189
|
}
|
|
161
190
|
},
|
|
162
|
-
|
|
191
|
+
"403": {
|
|
163
192
|
description: "Forbidden",
|
|
164
193
|
content: {
|
|
165
194
|
"application/json": {
|
|
@@ -169,7 +198,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
169
198
|
}
|
|
170
199
|
}
|
|
171
200
|
},
|
|
172
|
-
|
|
201
|
+
"404": {
|
|
173
202
|
description: "Not Found",
|
|
174
203
|
content: {
|
|
175
204
|
"application/json": {
|
|
@@ -179,7 +208,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
179
208
|
}
|
|
180
209
|
}
|
|
181
210
|
},
|
|
182
|
-
|
|
211
|
+
"405": {
|
|
183
212
|
description: "Method Not Allowed",
|
|
184
213
|
content: {
|
|
185
214
|
"application/json": {
|
|
@@ -189,7 +218,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
189
218
|
}
|
|
190
219
|
}
|
|
191
220
|
},
|
|
192
|
-
|
|
221
|
+
"406": {
|
|
193
222
|
description: "Not Acceptable",
|
|
194
223
|
content: {
|
|
195
224
|
"application/json": {
|
|
@@ -199,7 +228,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
199
228
|
}
|
|
200
229
|
}
|
|
201
230
|
},
|
|
202
|
-
|
|
231
|
+
"412": {
|
|
203
232
|
description: "Precondition Failed",
|
|
204
233
|
content: {
|
|
205
234
|
"application/json": {
|
|
@@ -209,7 +238,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
209
238
|
}
|
|
210
239
|
}
|
|
211
240
|
},
|
|
212
|
-
|
|
241
|
+
"415": {
|
|
213
242
|
description: "Unsupported Media Type",
|
|
214
243
|
content: {
|
|
215
244
|
"application/json": {
|
|
@@ -219,7 +248,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
219
248
|
}
|
|
220
249
|
}
|
|
221
250
|
},
|
|
222
|
-
|
|
251
|
+
"500": {
|
|
223
252
|
description: "Internal Server Error",
|
|
224
253
|
content: {
|
|
225
254
|
"application/json": {
|
|
@@ -229,7 +258,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
229
258
|
}
|
|
230
259
|
}
|
|
231
260
|
},
|
|
232
|
-
|
|
261
|
+
"501": {
|
|
233
262
|
description: "Not Implemented",
|
|
234
263
|
content: {
|
|
235
264
|
"application/json": {
|
|
@@ -252,7 +281,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
252
281
|
};
|
|
253
282
|
}
|
|
254
283
|
|
|
255
|
-
getErrorSchema() {
|
|
284
|
+
getErrorSchema () {
|
|
256
285
|
return {
|
|
257
286
|
type: "object",
|
|
258
287
|
properties: {
|
|
@@ -261,7 +290,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
261
290
|
},
|
|
262
291
|
code: {
|
|
263
292
|
type: "integer",
|
|
264
|
-
format: "int32"
|
|
293
|
+
format: "int32"
|
|
265
294
|
},
|
|
266
295
|
url: {
|
|
267
296
|
type: "string"
|
|
@@ -271,7 +300,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
271
300
|
},
|
|
272
301
|
pdu: {
|
|
273
302
|
"$ref": "#/components/schemas/Pdu"
|
|
274
|
-
}
|
|
303
|
+
}
|
|
275
304
|
},
|
|
276
305
|
example: `
|
|
277
306
|
{
|
|
@@ -303,7 +332,7 @@ class openApiSchema extends nodefony.Service {
|
|
|
303
332
|
};
|
|
304
333
|
}
|
|
305
334
|
|
|
306
|
-
getPduSchema() {
|
|
335
|
+
getPduSchema () {
|
|
307
336
|
return {
|
|
308
337
|
type: "object",
|
|
309
338
|
properties: {
|
|
@@ -362,4 +391,4 @@ class openApiSchema extends nodefony.Service {
|
|
|
362
391
|
}
|
|
363
392
|
|
|
364
393
|
nodefony.openApiSchema = openApiSchema;
|
|
365
|
-
module.exports = openApiSchema;
|
|
394
|
+
module.exports = openApiSchema;
|
package/kernel/babylon.es6
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const babylon = require(
|
|
1
|
+
const babylon = require("@babel/parser");
|
|
2
2
|
const defaultSettings = {
|
|
3
3
|
sourceType: "module",
|
|
4
|
-
//strictMode: false,
|
|
5
|
-
//tokens: true,
|
|
4
|
+
// strictMode: false,
|
|
5
|
+
// tokens: true,
|
|
6
6
|
plugins: [
|
|
7
7
|
"espree"
|
|
8
8
|
]
|
|
@@ -12,36 +12,30 @@ const regAction = new RegExp("^(.*)Action$");
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class Babylon {
|
|
15
|
-
constructor() {
|
|
15
|
+
constructor () {
|
|
16
16
|
this.engine = babylon;
|
|
17
17
|
this.settings = nodefony.extend({}, defaultSettings);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
parse(file, options) {
|
|
20
|
+
parse (file, options) {
|
|
21
21
|
return new Promise((resolve, reject) => {
|
|
22
22
|
try {
|
|
23
23
|
if (file) {
|
|
24
|
-
|
|
24
|
+
const opt = nodefony.extend({}, this.settings, options);
|
|
25
25
|
switch (true) {
|
|
26
|
-
case
|
|
26
|
+
case file instanceof nodefony.fileClass:
|
|
27
27
|
opt.sourceFilename = file.path;
|
|
28
28
|
file.readAsync()
|
|
29
|
-
.then((str) =>
|
|
30
|
-
|
|
31
|
-
}).catch(e => {
|
|
32
|
-
return reject(e);
|
|
33
|
-
});
|
|
29
|
+
.then((str) => resolve(this.engine.parse(str, opt)))
|
|
30
|
+
.catch((e) => reject(e));
|
|
34
31
|
break;
|
|
35
|
-
case
|
|
32
|
+
case typeof file === "string":
|
|
36
33
|
try {
|
|
37
|
-
|
|
34
|
+
const myfile = new nodefony.fileClass(file);
|
|
38
35
|
opt.sourceFilename = myfile.path;
|
|
39
36
|
myfile.readAsync()
|
|
40
|
-
.then((str) =>
|
|
41
|
-
|
|
42
|
-
}).catch(e => {
|
|
43
|
-
return reject(e);
|
|
44
|
-
});
|
|
37
|
+
.then((str) => resolve(this.engine.parse(str, opt)))
|
|
38
|
+
.catch((e) => reject(e));
|
|
45
39
|
} catch (e) {
|
|
46
40
|
return resolve(this.engine.parse(file, opt));
|
|
47
41
|
}
|
|
@@ -55,11 +49,10 @@ class Babylon {
|
|
|
55
49
|
} catch (e) {
|
|
56
50
|
return reject(e);
|
|
57
51
|
}
|
|
58
|
-
|
|
59
52
|
});
|
|
60
53
|
}
|
|
61
54
|
|
|
62
|
-
logger(res, deep) {
|
|
55
|
+
logger (res, deep) {
|
|
63
56
|
if (deep) {
|
|
64
57
|
console.log(util.inspect(res, {
|
|
65
58
|
depth: 10
|
|
@@ -69,7 +62,7 @@ class Babylon {
|
|
|
69
62
|
console.log(res);
|
|
70
63
|
}
|
|
71
64
|
|
|
72
|
-
parseClassNode(node, obj) {
|
|
65
|
+
parseClassNode (node, obj) {
|
|
73
66
|
if (nodefony.typeOf(node) === "array") {
|
|
74
67
|
for (let i = 0; i < node.length; i++) {
|
|
75
68
|
this.parseClassNode(node[i], obj);
|
|
@@ -104,30 +97,30 @@ class Babylon {
|
|
|
104
97
|
case "ClassDeclaration":
|
|
105
98
|
case "ClassExpression":
|
|
106
99
|
let name = this.parseClassNode(node.id);
|
|
107
|
-
|
|
100
|
+
const res = regClass.exec(name);
|
|
108
101
|
if (res) {
|
|
109
102
|
name = res[1];
|
|
110
103
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
name
|
|
104
|
+
const superClass = this.parseClassNode(node.superClass);
|
|
105
|
+
const myclass = {
|
|
106
|
+
name,
|
|
114
107
|
extends: superClass,
|
|
115
108
|
actions: [],
|
|
116
109
|
comments: node.leadingComments || []
|
|
117
110
|
};
|
|
118
111
|
obj.class.push(myclass);
|
|
119
112
|
return this.parseClassNode(node.body, myclass);
|
|
120
|
-
case
|
|
121
|
-
|
|
122
|
-
|
|
113
|
+
case "MemberExpression":
|
|
114
|
+
const object = this.parseClassNode(node.object);
|
|
115
|
+
const property = this.parseClassNode(node.property);
|
|
123
116
|
return `${object}.${property}`;
|
|
124
117
|
case "ClassBody":
|
|
125
118
|
return this.parseClassNode(node.body, obj);
|
|
126
|
-
case
|
|
127
|
-
|
|
128
|
-
|
|
119
|
+
case "ClassMethod":
|
|
120
|
+
const methodName = this.parseClassNode(node.key);
|
|
121
|
+
const ret = regAction.exec(methodName);
|
|
129
122
|
if (ret) {
|
|
130
|
-
|
|
123
|
+
const action = {
|
|
131
124
|
name: ret[1],
|
|
132
125
|
comments: []
|
|
133
126
|
};
|
|
@@ -135,13 +128,13 @@ class Babylon {
|
|
|
135
128
|
this.parseClassNode(node.leadingComments, action);
|
|
136
129
|
}
|
|
137
130
|
obj.actions.push(action);
|
|
138
|
-
//return this.parseClassNode(node.body, action);
|
|
131
|
+
// return this.parseClassNode(node.body, action);
|
|
139
132
|
}
|
|
140
133
|
break;
|
|
141
134
|
case "CommentBlock":
|
|
142
135
|
obj.comments.push(node.value);
|
|
143
136
|
return node.value;
|
|
144
|
-
case
|
|
137
|
+
case "Identifier":
|
|
145
138
|
return node.name;
|
|
146
139
|
case "Program":
|
|
147
140
|
obj.program = {
|
|
@@ -153,10 +146,10 @@ class Babylon {
|
|
|
153
146
|
return obj;
|
|
154
147
|
}
|
|
155
148
|
|
|
156
|
-
parseController(file) {
|
|
149
|
+
parseController (file) {
|
|
157
150
|
return this.parse(file)
|
|
158
151
|
.then((ast) => {
|
|
159
|
-
|
|
152
|
+
const obj = {
|
|
160
153
|
raw: ast
|
|
161
154
|
};
|
|
162
155
|
this.parseClassNode(ast, obj);
|
|
@@ -166,4 +159,4 @@ class Babylon {
|
|
|
166
159
|
}
|
|
167
160
|
|
|
168
161
|
nodefony.babylon = new Babylon();
|
|
169
|
-
module.exports = nodefony.babylon;
|
|
162
|
+
module.exports = nodefony.babylon;
|