org-core-js 0.0.1

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.
Files changed (63) hide show
  1. package/README.md +446 -0
  2. package/babel.config.json +13 -0
  3. package/cjs/core/driverCore.js +37 -0
  4. package/cjs/core/drivers/bull.js +56 -0
  5. package/cjs/core/drivers/fogu.js +14 -0
  6. package/cjs/core/drivers/mq.js +50 -0
  7. package/cjs/core/drivers/nats.js +161 -0
  8. package/cjs/core/drivers/osone.js +14 -0
  9. package/cjs/core/drivers/rabbitmq.js +68 -0
  10. package/cjs/core/drivers/redis.js +68 -0
  11. package/cjs/core/drivers/socket.js +36 -0
  12. package/cjs/core/entityCore.js +22 -0
  13. package/cjs/core/eventCore.js +26 -0
  14. package/cjs/core/index.js +477 -0
  15. package/cjs/core/libCore.js +22 -0
  16. package/cjs/core/repositoryCore.js +30 -0
  17. package/cjs/core/serverCore.js +142 -0
  18. package/cjs/core/serviceCore.js +26 -0
  19. package/cjs/core/utilCore.js +22 -0
  20. package/cjs/core/workerCore.js +27 -0
  21. package/cjs/fileCore.js +27 -0
  22. package/cjs/forawait.js +55 -0
  23. package/cjs/index.js +117 -0
  24. package/cjs/package.json +3 -0
  25. package/esm/core/driverCore.js +33 -0
  26. package/esm/core/drivers/bull.js +49 -0
  27. package/esm/core/drivers/fogu.js +12 -0
  28. package/esm/core/drivers/nats.js +160 -0
  29. package/esm/core/drivers/rabbitmq.js +64 -0
  30. package/esm/core/drivers/redis.js +71 -0
  31. package/esm/core/drivers/socket.js +28 -0
  32. package/esm/core/entityCore.js +12 -0
  33. package/esm/core/eventCore.js +17 -0
  34. package/esm/core/index.js +440 -0
  35. package/esm/core/libCore.js +13 -0
  36. package/esm/core/repositoryCore.js +25 -0
  37. package/esm/core/serverCore.js +155 -0
  38. package/esm/core/serviceCore.js +17 -0
  39. package/esm/core/utilCore.js +12 -0
  40. package/esm/core/workerCore.js +20 -0
  41. package/esm/fileCore.js +19 -0
  42. package/esm/forawait.js +48 -0
  43. package/esm/index.js +128 -0
  44. package/esm/package.json +3 -0
  45. package/lib/index.html +1021 -0
  46. package/package.json +73 -0
  47. package/src/app/events/test/app.js +13 -0
  48. package/src/app/events/test/ws.js +14 -0
  49. package/src/app/services/test/app.js +14 -0
  50. package/src/app/services/test/app1.js +11 -0
  51. package/src/core/entities/user.js +14 -0
  52. package/src/core/libs/hash.js +10 -0
  53. package/src/core/utils/auth.js +19 -0
  54. package/src/index.js +11 -0
  55. package/src/infra/db/index.js +7 -0
  56. package/src/infra/repositories/test/app.js +6 -0
  57. package/src/infra/web/http.js +15 -0
  58. package/src/infra/web/routers/auth.js +30 -0
  59. package/src/infra/web/routers/test.js +26 -0
  60. package/src/infra/web/ws/test.js +35 -0
  61. package/src/infra/workers/test/test.md +14 -0
  62. package/src/start.js +39 -0
  63. package/test/core.test.js +46 -0
@@ -0,0 +1,17 @@
1
+
2
+ export default ({ core }) => {
3
+ return async ({ path = '/src/app/events' }, obj = {}) => {
4
+ const paths = core.fileCore.paths(path)
5
+ await core.forawait.generate(paths, async (path_,) => {
6
+ const path_files = core.fileCore.paths(path + '/' + path_)
7
+ await core.forawait.generate(path_files, async (path_file = '') => {
8
+ if (!(path_file.includes('.js') || path_file.includes('.ts'))) return
9
+ await core.import.event(path + '/' + path_ + '/' + path_file, {
10
+ path: path_,
11
+ file: path_file
12
+ }, obj)
13
+
14
+ })
15
+ })
16
+ }
17
+ }
@@ -0,0 +1,440 @@
1
+
2
+ import createCoreService from './serviceCore.js'
3
+ import createCoreWorker from './workerCore.js'
4
+ import createCoreRepository from './repositoryCore.js'
5
+ import createCoreServer from './serverCore.js'
6
+ import createCoreDriver from './driverCore.js'
7
+ import createCoreEntity from './entityCore.js';
8
+ import createCoreUtil from './utilCore.js';
9
+ import createCoreLib from './libCore.js';
10
+ import createCoreEvent from './eventCore.js';
11
+ import forawait from '../forawait.js'
12
+ import fileCore from '../fileCore.js'
13
+ import { EventEmitter } from 'node:events';
14
+ import crypto from 'node:crypto'
15
+
16
+
17
+ const eventCore = new EventEmitter()
18
+ const libCore = {
19
+ forawait,
20
+ generate: {
21
+ string(length = 25) {
22
+ let result = '';
23
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
24
+ const charactersLength = characters.length;
25
+ let counter = 0;
26
+ while (counter < length) {
27
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
28
+ counter += 1;
29
+ }
30
+ return result;
31
+ },
32
+ number(length = 25) {
33
+ let result = '';
34
+ const characters = '0123456789';
35
+ const charactersLength = characters.length;
36
+ let counter = 0;
37
+ while (counter < length) {
38
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
39
+ counter += 1;
40
+ }
41
+ return result;
42
+ },
43
+ keys({ type, modulusLength = 4096 }) {
44
+
45
+ return new Promise((resolve, reject) => {
46
+ crypto.generateKeyPair('rsa', {
47
+ modulusLength,
48
+ publicKeyEncoding: {
49
+ type: 'pkcs1',
50
+ format: 'pem'
51
+ },
52
+ privateKeyEncoding: {
53
+ type: 'pkcs1',
54
+ format: 'pem'
55
+ }
56
+ }, (err, publicKey, privateKey) => {
57
+ if (err) return reject(err)
58
+ resolve({
59
+ public: publicKey,
60
+ private: privateKey
61
+ })
62
+
63
+ })
64
+ })
65
+ }
66
+ }
67
+
68
+ }
69
+ const ioCore = {
70
+ client: [],
71
+ server: []
72
+ }
73
+ const utilCore = {}
74
+ const services = {}
75
+ const repositoryCore = {}
76
+ const entityCore = {}
77
+
78
+ const methodCore = {
79
+ node: {
80
+ pub({ topic }, ...input) {
81
+ eventCore.emit(topic, ...input);
82
+ },
83
+ sub({ topic }, fn = console.log) {
84
+ eventCore.on(topic, fn);
85
+ }
86
+ }
87
+ }
88
+
89
+ export default ({ }) => {
90
+
91
+ const app = {
92
+ service: (params = '') => {
93
+ const [service_, method] = params.split('.')
94
+ return {
95
+ async execute(input, event) {
96
+ const output = await services[service_][method](input, event)
97
+ if (!event) return output
98
+ methodCore[event].pub({ topic: 'service::' + service_ + '.' + method }, output);
99
+ return output
100
+ }
101
+ }
102
+ },
103
+ driver: (params = '') => {
104
+ return methodCore[params]
105
+ },
106
+ lib: (params = '') => {
107
+ return libCore[params]
108
+ },
109
+
110
+ nats: (name = "nats") => {
111
+ return libCore[name]
112
+ },
113
+
114
+ util: (params = '') => {
115
+ return utilCore[params]
116
+ },
117
+ entity: (params = '') => {
118
+ const [entity_, method] = params.split('.')
119
+ if (method) {
120
+ return {
121
+
122
+ async execute(input, event) {
123
+ const output = await entityCore[entity_][method](input)
124
+ if (!event) return output
125
+ methodCore[event].pub({ topic: 'entity::' + entity_ + '.' + method }, output);
126
+ return output
127
+ }
128
+ }
129
+ }
130
+
131
+ return {
132
+ async entity(input, event) {
133
+ const output = await entityCore[entity_]["entity"](input)
134
+ if (!event) return output
135
+ methodCore[event].pub({ topic: 'entity::' + entity_ + '.' + method }, output);
136
+ return output
137
+ },
138
+ async dto(input) {
139
+ const output = await entityCore[entity_]["dto"](input)
140
+ return output
141
+ },
142
+ }
143
+
144
+ },
145
+ repository: (params = '') => {
146
+ const [repository_, method] = params.split('.')
147
+ return {
148
+ async execute(input, event) {
149
+ const output = await repositoryCore[repository_][method](input)
150
+ if (!event) return output
151
+ methodCore[event].pub({ topic: 'repository::' + repository_ + '.' + method }, output);
152
+ return output
153
+ }
154
+ }
155
+
156
+
157
+ },
158
+ event: (name) => methodCore[name],
159
+ job: (name) => {
160
+ return {
161
+ async cmd(code, data, config) {
162
+ return await libCore.bull.job(name).cmd(code, data, config)
163
+ }
164
+
165
+ }
166
+ },
167
+ seneca: (name) => {
168
+ return {
169
+ async cmd(name_, data) {
170
+ return await libCore['seneca']['clients'][name].cmd(name_, data)
171
+ }
172
+ }
173
+ },
174
+ grpc: (name) => {
175
+ return {
176
+ duplex(name_, fn) {
177
+ libCore['grpc']['clients'][name](name_).duplex(fn)
178
+ },
179
+ data(name_, input, fn, end) {
180
+ libCore['grpc']['clients'][name](name_).data(input, fn, end)
181
+ },
182
+ stream(name_, fn) {
183
+ return libCore['grpc']['clients'][name](name_).stream(fn)
184
+ },
185
+ async cmd(name_, data) {
186
+ return await libCore['grpc']['clients'][name](name_).cmd(data)
187
+ }
188
+ }
189
+ }
190
+ }
191
+ const core = {
192
+ fileCore,
193
+ async repositories(paths, path, obj) {
194
+ await forawait.generate(paths, async (path_,) => {
195
+ const path_files = fileCore.paths(path + '/' + path_)
196
+ repositoryCore[path_] = {}
197
+ await forawait.generate(path_files, async (path_file = '') => {
198
+ if (!(path_file.includes('.js') || path_file.includes('.ts'))) return
199
+ await core.import.repository(path + '/' + path_ + '/' + path_file, {
200
+ path: path_,
201
+ file: path_file
202
+ }, obj)
203
+
204
+ })
205
+ })
206
+ },
207
+ listServices(name) {
208
+ return Object.keys(services[name])
209
+ },
210
+ forawait,
211
+ addLib(lib_, name) {
212
+ libCore[name] = lib_
213
+ },
214
+ async addMethodCore(driver, file) {
215
+ methodCore[driver.name] = await (await core.fileCore.importFile(file)).default(driver.config)
216
+ libCore[driver.name] = methodCore[driver.name]
217
+ },
218
+ import: {
219
+ async service(path_, params, obj = {}, feature = false) {
220
+ const nameService = feature ? params.file.split('.')[0] : params.path
221
+ if (!services[nameService]) {
222
+ services[nameService] = {}
223
+ }
224
+
225
+ const { execute, driver } = (await fileCore.import(path_, {
226
+ seneca: app.seneca,
227
+ // command: app.command,
228
+ job: app.job,
229
+ service: app.service,
230
+ nats: app.nats,
231
+ event: app.event,
232
+ repository: app.repository,
233
+ entity: app.entity,
234
+ util: app.util,
235
+ lib: app.lib,
236
+ grpc: app.grpc,
237
+ ...obj
238
+ }))
239
+
240
+
241
+ const nameMethod = feature ? params.path : params.file.split('.')[0]
242
+ services[nameService][nameMethod] = execute
243
+
244
+ await forawait.generate(Object.entries(driver || {}),async ([name, dr]) => {
245
+
246
+ if (methodCore[name]) {
247
+ methodCore[name].sub({
248
+ topic: dr == true ? (nameService + "." + nameMethod) : dr
249
+ }, async (...input) => {
250
+ try {
251
+ await services[nameService][nameMethod](input[0])
252
+ } catch (error) {
253
+ console.log(error)
254
+ }
255
+
256
+ })
257
+ } else {
258
+
259
+ if (name == "bull" || name == "job") {
260
+ libCore.bull.addJob({ name: dr == true ? (nameService + "." + nameMethod) : dr }, Job.config)
261
+ libCore.bull.worker({
262
+ name: dr == true ? (nameService + "." + nameMethod) : dr,
263
+ fn: execute,
264
+ async completed(job_) {
265
+ await methodCore[job_.method || 'redis'].pub({
266
+ topic: 'worker::completed:' + name
267
+ }, { name: job_.name, id: job_.id, input: job_.data, output: job_.returnvalue })
268
+ },
269
+ async failed(job_, err) {
270
+ await methodCore[job_.method || 'redis'].pub({
271
+ topic: 'worker::failed:' + name
272
+ }, { name: job_.name, id: job_.id, input: job_.data, err: err.message })
273
+ }
274
+ })
275
+ }
276
+
277
+ }
278
+
279
+ })
280
+
281
+
282
+ },
283
+ async entity(path_ = '', params, obj, feature = false) {
284
+
285
+ entityCore[params.file.split('.')[0]] = (await fileCore.import(path_, {
286
+ ...obj,
287
+ seneca: app.seneca,
288
+ // command: app.command,
289
+ job: app.job,
290
+ service: app.service,
291
+ nats: app.nats,
292
+ event: app.event,
293
+ repository: app.repository,
294
+ util: app.util,
295
+ lib: app.lib,
296
+ grpc: app.grpc,
297
+ }))
298
+
299
+
300
+ },
301
+ async event(path_, params, obj) {
302
+
303
+
304
+ const { event, execute } = (await fileCore.import(path_, {
305
+ seneca: app.seneca,
306
+ // command: app.command,
307
+ job: app.job,
308
+ service: app.service,
309
+ nats: app.nats,
310
+ event: app.event,
311
+ repository: app.repository,
312
+ util: app.util,
313
+ lib: app.lib,
314
+ grpc: app.grpc,
315
+ driver: app.driver,
316
+ ...obj
317
+ }))
318
+
319
+ const nameService = params.path + "." + params.file.split('.')[0]
320
+ if (!event.topic) {
321
+ event.topic = nameService
322
+ }
323
+ if (!methodCore[event.method]) {
324
+ if (event.method == "ws") {
325
+ if (event.type == "client") {
326
+ methodCore["socket:" + event.name].sub(event, execute)
327
+ } else {
328
+ ioCore.server.push({ event, execute })
329
+ }
330
+ }
331
+ return
332
+ }
333
+ methodCore[event.method].sub(event, execute)
334
+ return
335
+ },
336
+ async repository(path_, params, obj, feature = false) {
337
+ if (!repositoryCore[feature ? params.file.split('.')[0] : params.path]) {
338
+ repositoryCore[feature ? params.file.split('.')[0] : params.path] = {}
339
+ }
340
+ repositoryCore[feature ? params.file.split('.')[0] : params.path][feature ? params.path : params.file.split('.')[0]] = (await fileCore.import(path_, {
341
+ driver: app.driver,
342
+ lib: app.lib,
343
+ ...obj
344
+ })).execute
345
+ },
346
+ async lib(path_, params, obj) {
347
+ libCore[params.file.split('.')[0]] = (await fileCore.import(path_, obj))
348
+ },
349
+ async util(path_, params, obj) {
350
+ utilCore[params.file.split('.')[0]] = (await fileCore.import(path_, {
351
+ ...obj,
352
+ service: app.service,
353
+ repository: app.repository,
354
+ entity: app.entity,
355
+ util: app.util,
356
+ lib: app.lib
357
+ }))
358
+ },
359
+
360
+ async job(path_, params, obj = {}) {
361
+ const { job: Job, execute } = (await fileCore.import(path_,
362
+ {
363
+ seneca: app.seneca,
364
+ // command: app.command,
365
+ job: app.job,
366
+ service: app.service,
367
+ nats: app.nats,
368
+ event: app.event,
369
+ repository: app.repository,
370
+ util: app.util,
371
+ lib: app.lib,
372
+ grpc: app.grpc,
373
+ ...obj
374
+ }
375
+
376
+ ))
377
+ const name = Job.name || params.path + '.' + params.file.split('.')[0]
378
+ libCore.bull.addJob({ name }, Job.config)
379
+ libCore.bull.worker({
380
+ name: Job.name,
381
+ fn: execute,
382
+ async completed(job_) {
383
+ await methodCore[job_.method || 'redis'].pub({
384
+ topic: 'worker::completed:' + name
385
+ }, { name: job_.name, id: job_.id, input: job_.data, output: job_.returnvalue })
386
+ },
387
+ async failed(job_, err) {
388
+ await methodCore[job_.method || 'redis'].pub({
389
+ topic: 'worker::failed:' + name
390
+ }, { name: job_.name, id: job_.id, input: job_.data, err: err.message })
391
+ }
392
+ })
393
+ },
394
+ async endPoint(path_, params, obj = {}) {
395
+ const route = (await fileCore.import(path_, {
396
+ seneca: app.seneca,
397
+ // command: app.command,
398
+ job: app.job,
399
+ service: app.service,
400
+ nats: app.nats,
401
+ event: app.event,
402
+ repository: app.repository,
403
+ util: app.util,
404
+ lib: app.lib,
405
+ grpc: app.grpc,
406
+ ...obj
407
+ }))
408
+
409
+ if (Array.isArray(route)) {
410
+ return route
411
+ }
412
+ return [route]
413
+ }
414
+
415
+
416
+ },
417
+ app
418
+ }
419
+
420
+ const createDriver = createCoreDriver({ core })
421
+ const createServer = createCoreServer({ core })
422
+ return {
423
+ core,
424
+ createWorker: createCoreWorker({ core }),
425
+ createRepository: createCoreRepository({ core }),
426
+ createService: createCoreService({ core }),
427
+ createUtil: createCoreUtil({ core }),
428
+ createEntity: createCoreEntity({ core }),
429
+ createLib: createCoreLib({ core }),
430
+ createEvent: createCoreEvent({ core }),
431
+ async createServer(server) {
432
+ if (!createServer[server.type]) return
433
+ await createServer[server.type]({ server, ws: ioCore })
434
+ },
435
+ async createDriver(driver) {
436
+ if (!createDriver[driver.type]) return
437
+ await createDriver[driver.type](driver)
438
+ }
439
+ }
440
+ }
@@ -0,0 +1,13 @@
1
+
2
+ export default ({ core }) => {
3
+ return async ({ path = '/src/core/libs' }, obj = {}) => {
4
+ const paths = core.fileCore.paths(path)
5
+ await core.forawait.generate(paths, async (path_file = '') => {
6
+ if (!(path_file.includes('.js') || path_file.includes('.ts'))) return
7
+ await core.import.lib(path + '/' + path_file, {
8
+ file: path_file
9
+ }, obj)
10
+ })
11
+ }
12
+ }
13
+
@@ -0,0 +1,25 @@
1
+
2
+ export default ({ core }) => {
3
+ return async ({ path = '/src/infra/repositories', db = '/src/infra/db/index.js' }, obj = {}) => {
4
+ const paths = core.fileCore.paths(path)
5
+
6
+ obj.dbTest = process.env.DB_TEST == "True"
7
+ if (obj.dbTest == true) {
8
+ if (typeof obj.getDb == 'function') {
9
+ obj.db = obj.getDb()
10
+ }
11
+ } else {
12
+ try {
13
+ if (!obj.dbTest && !obj.getDb) {
14
+ obj.db = (await core.fileCore.import(db, {}))
15
+ }
16
+
17
+ } catch (error) {
18
+
19
+ }
20
+ }
21
+
22
+ await core.repositories(paths, path, obj)
23
+ }
24
+ }
25
+
@@ -0,0 +1,155 @@
1
+ import path from "node:path"
2
+ export default ({ core }) => {
3
+
4
+ const servicesGet = (services_, server) => {
5
+ const services = []
6
+ services_.forEach((service_ = '') => {
7
+ const [s, m] = (service_.name || service_).split('.')
8
+ if (m == '*') {
9
+ core.listServices(s).forEach(_ => {
10
+ services.push({
11
+ name: (server?.name ? server?.name + ":" : '') + s + '.' + _,
12
+ auth: service_.auth || null,
13
+ exec: s + '.' + _
14
+ })
15
+ })
16
+ return
17
+ }
18
+ services.push({
19
+ name: (server?.name ? server?.name + ":" : '') + s + '.' + m,
20
+ auth: service_.auth || null,
21
+ exec: s + '.' + m
22
+ })
23
+ })
24
+
25
+ return services
26
+ }
27
+ return {
28
+ async "http"({ server, ws }) {
29
+ const endPoints = []
30
+ const rootFile = server.file || server.rootPath || '/src/infra/web/http.js'
31
+ const rootPath = path.dirname(rootFile)
32
+
33
+ const createCoreRouter = async ({ path = rootPath + '/routers' }, obj) => {
34
+ const paths = core.fileCore.paths(path)
35
+ await core.forawait.generate(paths, async (path_file = '') => {
36
+ if (!(path_file.includes('.js') || path_file.includes('.ts'))) return
37
+ const route = await core.import.endPoint(path + '/' + path_file, {}, obj)
38
+ endPoints.push(...route)
39
+ })
40
+ return endPoints
41
+ }
42
+
43
+ const createCoreSocket = async ({ path = rootPath + '/ws' }, obj) => {
44
+ const paths = core.fileCore.paths(path)
45
+ const sockets = {}
46
+ await core.forawait.generate(paths, async (path_file = '') => {
47
+
48
+ if (!(path_file.includes('.js') || path_file.includes('.ts'))) return
49
+
50
+ sockets[path_file.split('.')[0]] = (await core.fileCore.import(path + '/' + path_file, {
51
+ seneca: core.app.seneca,
52
+
53
+ events: (ws?.server || []).filter((io) => {
54
+ return io.event.route == path_file.split('.')[0]
55
+ }),
56
+ service: core.app.service,
57
+ nats: core.app.nats,
58
+ grpc: core.app.grpc,
59
+ job: core.app.job,
60
+ event: core.app.event,
61
+ util: core.app.util,
62
+ lib: core.app.lib,
63
+ ...obj
64
+ }))
65
+ })
66
+ return Object.values(sockets)
67
+ }
68
+
69
+ const routers = await createCoreRouter({}, {})
70
+ const wsServer = await createCoreSocket({}, {})
71
+ try {
72
+
73
+ const serve = (await core.fileCore.import(rootFile, {
74
+ util: app.util,
75
+ lib: app.lib,
76
+ routers,
77
+ ws: wsServer
78
+ }))
79
+
80
+
81
+
82
+ await serve.start()
83
+
84
+ core.addLib(() => serve.io, 'ws')
85
+ core.addLib({
86
+ stop: async () => await serve.stop(),
87
+ start: async () => await serve.start(),
88
+ }, 'http')
89
+
90
+ } catch (error) {
91
+ console.error(error.message)
92
+
93
+ }
94
+
95
+
96
+ },
97
+ async "nats"({ server }) {
98
+
99
+ const services = servicesGet(server.services, server)
100
+ await core.forawait.generate(services, async (service) => {
101
+ core.app.driver(server.driver).service((server?.prefix || "") + service.name, core.app.service(service.exec).execute, async (headers) => {
102
+ if (!service.auth) return true
103
+ try {
104
+ const [m, exec] = service.auth.split(":")
105
+ const [name, c] = exec.split(".")
106
+ return (await core.app[m](name)[c](headers)) || false
107
+ } catch (error) {
108
+ return false
109
+ }
110
+ })
111
+ })
112
+
113
+
114
+
115
+
116
+ },
117
+
118
+ async "fogu"({ server }) {
119
+ const fogu = core.app.driver(server.driver)
120
+ await core.forawait.generate(server.channels, async (channelObj) => {
121
+ const channel = fogu.channel(channelObj.name);
122
+ const services = servicesGet(channelObj.services||[], server)
123
+ await core.forawait.generate(services, async (service) => {
124
+ await channel.action((server?.prefix || "") + service.name, async (message, reply) => {
125
+ let input = message
126
+ try {
127
+ input = JSON.parse(input)
128
+ } catch (error) {
129
+
130
+ }
131
+ try {
132
+ let res = await core.app.service(service.exec).execute(input)
133
+ try {
134
+ res = JSON.stringify(input)
135
+ } catch (error) {
136
+ }
137
+ const response = Buffer.from(res);
138
+ reply(null, response)
139
+ } catch (error) {
140
+ reply(error.message || 'error', Buffer.from(""))
141
+ }
142
+
143
+ })
144
+ })
145
+
146
+ })
147
+
148
+
149
+
150
+ }
151
+
152
+ }
153
+
154
+
155
+ }
@@ -0,0 +1,17 @@
1
+
2
+ export default ({ core }) => {
3
+ return async ({ path = '/src/app/services' }, obj = {}) => {
4
+ const paths = core.fileCore.paths(path)
5
+ await core.forawait.generate(paths, async (path_,) => {
6
+ const path_files = core.fileCore.paths(path + '/' + path_)
7
+ await core.forawait.generate(path_files, async (path_file = '') => {
8
+ if (!(path_file.includes('.js') || path_file.includes('.ts'))) return
9
+ await core.import.service(path + '/' + path_ + '/' + path_file, {
10
+ path: path_,
11
+ file: path_file
12
+ }, obj)
13
+
14
+ })
15
+ })
16
+ }
17
+ }
@@ -0,0 +1,12 @@
1
+
2
+ export default ({ core }) => {
3
+ return async ({ path = '/src/core/utils' }, obj = {}) => {
4
+ const paths = core.fileCore.paths(path)
5
+ await core.forawait.generate(paths, async (path_file = '') => {
6
+ if (!(path_file.includes('.js') || path_file.includes('.ts'))) return
7
+ await core.import.util(path + '/' + path_file, {
8
+ file: path_file
9
+ }, obj)
10
+ })
11
+ }
12
+ }