@anu8151/adonisjs-blueprint 0.4.9 → 0.5.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.
|
@@ -190,9 +190,9 @@ statementsRegistry.register("service", async (value, { generators }) => {
|
|
|
190
190
|
var ControllerGenerator = class extends BaseGenerator {
|
|
191
191
|
async generate(name, definition, useInertia = false, isApi = false, models) {
|
|
192
192
|
const nameParts = name.split(/[\/.]/);
|
|
193
|
-
const baseName = nameParts.pop();
|
|
193
|
+
const baseName = nameParts.pop() || "";
|
|
194
194
|
const entity = this.app.generators.createEntity(baseName);
|
|
195
|
-
if (nameParts.length > 0) entity.path = nameParts.map((p) => string.snakeCase(p)).join("/");
|
|
195
|
+
if (nameParts.length > 0) entity.path = nameParts.map((p) => string.snakeCase(p || "")).join("/");
|
|
196
196
|
const eventGenerator = new EventGenerator(this.app, this.logger, this.manifest);
|
|
197
197
|
const mailGenerator = new MailGenerator(this.app, this.logger, this.manifest);
|
|
198
198
|
const jobGenerator = new JobGenerator(this.app, this.logger, this.manifest);
|
|
@@ -210,8 +210,8 @@ var ControllerGenerator = class extends BaseGenerator {
|
|
|
210
210
|
services: /* @__PURE__ */ new Map()
|
|
211
211
|
};
|
|
212
212
|
const middleware = definition.middleware || [];
|
|
213
|
-
const pluralName = string.plural(string.camelCase(entity.name));
|
|
214
|
-
const singularName = string.camelCase(entity.name);
|
|
213
|
+
const pluralName = string.plural(string.camelCase(entity.name || ""));
|
|
214
|
+
const singularName = string.camelCase(entity.name || "");
|
|
215
215
|
let normalizedDefinition = definition;
|
|
216
216
|
if (definition.resource) normalizedDefinition = isApi ? {
|
|
217
217
|
index: {
|
|
@@ -309,19 +309,21 @@ var ControllerGenerator = class extends BaseGenerator {
|
|
|
309
309
|
});
|
|
310
310
|
logicLines.push(...result.logicLines);
|
|
311
311
|
if (result.imports) {
|
|
312
|
-
if (result.imports.models) result.imports.models.forEach((i) => imports.models.add(i));
|
|
313
|
-
if (result.imports.validators) result.imports.validators.forEach((i) => imports.validators.add(i));
|
|
314
|
-
if (result.imports.events) result.imports.events.forEach((i) => imports.events.add(i));
|
|
315
|
-
if (result.imports.policies) result.imports.policies.forEach((i) => imports.policies.add(i));
|
|
316
|
-
if (result.imports.mails) result.imports.mails.forEach((i) => imports.mails.add(i));
|
|
317
|
-
if (result.imports.jobs) result.imports.jobs.forEach((i) => imports.jobs.add(i));
|
|
318
|
-
if (result.imports.notifications) result.imports.notifications.forEach((i) => imports.notifications.add(i));
|
|
312
|
+
if (result.imports.models) result.imports.models.forEach((i) => i && imports.models.add(i));
|
|
313
|
+
if (result.imports.validators) result.imports.validators.forEach((i) => i && imports.validators.add(i));
|
|
314
|
+
if (result.imports.events) result.imports.events.forEach((i) => i && imports.events.add(i));
|
|
315
|
+
if (result.imports.policies) result.imports.policies.forEach((i) => i && imports.policies.add(i));
|
|
316
|
+
if (result.imports.mails) result.imports.mails.forEach((i) => i && imports.mails.add(i));
|
|
317
|
+
if (result.imports.jobs) result.imports.jobs.forEach((i) => i && imports.jobs.add(i));
|
|
318
|
+
if (result.imports.notifications) result.imports.notifications.forEach((i) => i && imports.notifications.add(i));
|
|
319
319
|
if (result.imports.services) result.imports.services.forEach((serviceName) => {
|
|
320
|
-
|
|
321
|
-
|
|
320
|
+
if (serviceName) {
|
|
321
|
+
const servicePath = string.snakeCase(serviceName.replace("Service", "")) + "_service";
|
|
322
|
+
imports.services.set(serviceName, servicePath);
|
|
323
|
+
}
|
|
322
324
|
});
|
|
323
325
|
}
|
|
324
|
-
if (result.context) result.context.forEach((c) => contextItems.add(c));
|
|
326
|
+
if (result.context) result.context.forEach((c) => c && contextItems.add(c));
|
|
325
327
|
}
|
|
326
328
|
}
|
|
327
329
|
}
|
|
@@ -331,11 +333,31 @@ var ControllerGenerator = class extends BaseGenerator {
|
|
|
331
333
|
logic: logicLines.join("\n ") || "// Action logic here"
|
|
332
334
|
});
|
|
333
335
|
}
|
|
336
|
+
const importsLines = [];
|
|
337
|
+
imports.models.forEach((model) => {
|
|
338
|
+
if (model) importsLines.push(`import ${model} from '#models/${string.snakeCase(model)}'`);
|
|
339
|
+
});
|
|
340
|
+
imports.validators.forEach((v) => {
|
|
341
|
+
if (v) importsLines.push(`import { ${v} } from '#validators/${(entity.name || "").toLowerCase()}'`);
|
|
342
|
+
});
|
|
343
|
+
imports.events.forEach((e) => {
|
|
344
|
+
if (e) importsLines.push(`import ${e} from '#events/${e.toLowerCase()}'`);
|
|
345
|
+
});
|
|
346
|
+
imports.policies.forEach((p) => {
|
|
347
|
+
if (p) importsLines.push(`import ${p} from '#policies/${(entity.name || "").toLowerCase()}_policy'`);
|
|
348
|
+
});
|
|
349
|
+
imports.services.forEach((path, serviceName) => {
|
|
350
|
+
if (serviceName && path) importsLines.push(`import ${serviceName} from '#services/${path}'`);
|
|
351
|
+
});
|
|
352
|
+
const middlewareLines = middleware.length > 0 ? `static middleware = [\n ${middleware.map((m) => `middleware.${m}()`).join(",\n ")}\n ]` : "";
|
|
353
|
+
const actionLines = actions.map((action) => {
|
|
354
|
+
return `async ${action.name}({ ${action.context} }: HttpContext) {\n ${action.logic}\n }`;
|
|
355
|
+
}).join("\n\n ");
|
|
334
356
|
await this.generateStub("make/controller/main.stub", {
|
|
335
357
|
entity,
|
|
336
358
|
actions,
|
|
337
359
|
middleware,
|
|
338
|
-
|
|
360
|
+
importsData: {
|
|
339
361
|
models: Array.from(imports.models),
|
|
340
362
|
validators: Array.from(imports.validators),
|
|
341
363
|
events: Array.from(imports.events),
|
|
@@ -347,7 +369,10 @@ var ControllerGenerator = class extends BaseGenerator {
|
|
|
347
369
|
name: serviceName,
|
|
348
370
|
path
|
|
349
371
|
}))
|
|
350
|
-
}
|
|
372
|
+
},
|
|
373
|
+
importsLines: importsLines.join("\n"),
|
|
374
|
+
middlewareLines,
|
|
375
|
+
actionLines
|
|
351
376
|
}, definition.stub);
|
|
352
377
|
}
|
|
353
378
|
};
|
|
@@ -4,44 +4,10 @@
|
|
|
4
4
|
})
|
|
5
5
|
}}}
|
|
6
6
|
import type { HttpContext } from '@adonisjs/core/http'
|
|
7
|
-
|
|
8
|
-
@each(model in imports.models)
|
|
9
|
-
import {{ model }} from '#models/{{ model.toLowerCase() }}'
|
|
10
|
-
@end
|
|
11
|
-
@end
|
|
12
|
-
@if(imports.validators)
|
|
13
|
-
@each(validator in imports.validators)
|
|
14
|
-
import { {{ validator }} } from '#validators/{{ entity.name.toLowerCase() }}'
|
|
15
|
-
@end
|
|
16
|
-
@end
|
|
17
|
-
@if(imports.events)
|
|
18
|
-
@each(event in imports.events)
|
|
19
|
-
import {{ event }} from '#events/{{ event.toLowerCase() }}'
|
|
20
|
-
@end
|
|
21
|
-
@end
|
|
22
|
-
@if(imports.policies)
|
|
23
|
-
@each(policy in imports.policies)
|
|
24
|
-
import {{ policy }} from '#policies/{{ entity.name.toLowerCase() }}_policy'
|
|
25
|
-
@end
|
|
26
|
-
@end
|
|
27
|
-
@if(imports.services)
|
|
28
|
-
@each(service in imports.services)
|
|
29
|
-
import {{ service.name }} from '#services/{{ service.path }}'
|
|
30
|
-
@end
|
|
31
|
-
@end
|
|
7
|
+
{{{ importsLines }}}
|
|
32
8
|
|
|
33
9
|
export default class {{ entity.className }}Controller {
|
|
34
|
-
|
|
35
|
-
static middleware = [
|
|
36
|
-
@each(item in middleware)
|
|
37
|
-
middleware.{{ item }}(),
|
|
38
|
-
@end
|
|
39
|
-
]
|
|
40
|
-
@end
|
|
10
|
+
{{{ middlewareLines }}}
|
|
41
11
|
|
|
42
|
-
|
|
43
|
-
async {{ action.name }}({ {{ action.context }} }: HttpContext) {
|
|
44
|
-
{{ action.logic }}
|
|
45
|
-
}
|
|
46
|
-
@end
|
|
12
|
+
{{{ actionLines }}}
|
|
47
13
|
}
|
package/package.json
CHANGED
|
@@ -4,44 +4,10 @@
|
|
|
4
4
|
})
|
|
5
5
|
}}}
|
|
6
6
|
import type { HttpContext } from '@adonisjs/core/http'
|
|
7
|
-
|
|
8
|
-
@each(model in imports.models)
|
|
9
|
-
import {{ model }} from '#models/{{ model.toLowerCase() }}'
|
|
10
|
-
@end
|
|
11
|
-
@end
|
|
12
|
-
@if(imports.validators)
|
|
13
|
-
@each(validator in imports.validators)
|
|
14
|
-
import { {{ validator }} } from '#validators/{{ entity.name.toLowerCase() }}'
|
|
15
|
-
@end
|
|
16
|
-
@end
|
|
17
|
-
@if(imports.events)
|
|
18
|
-
@each(event in imports.events)
|
|
19
|
-
import {{ event }} from '#events/{{ event.toLowerCase() }}'
|
|
20
|
-
@end
|
|
21
|
-
@end
|
|
22
|
-
@if(imports.policies)
|
|
23
|
-
@each(policy in imports.policies)
|
|
24
|
-
import {{ policy }} from '#policies/{{ entity.name.toLowerCase() }}_policy'
|
|
25
|
-
@end
|
|
26
|
-
@end
|
|
27
|
-
@if(imports.services)
|
|
28
|
-
@each(service in imports.services)
|
|
29
|
-
import {{ service.name }} from '#services/{{ service.path }}'
|
|
30
|
-
@end
|
|
31
|
-
@end
|
|
7
|
+
{{{ importsLines }}}
|
|
32
8
|
|
|
33
9
|
export default class {{ entity.className }}Controller {
|
|
34
|
-
|
|
35
|
-
static middleware = [
|
|
36
|
-
@each(item in middleware)
|
|
37
|
-
middleware.{{ item }}(),
|
|
38
|
-
@end
|
|
39
|
-
]
|
|
40
|
-
@end
|
|
10
|
+
{{{ middlewareLines }}}
|
|
41
11
|
|
|
42
|
-
|
|
43
|
-
async {{ action.name }}({ {{ action.context }} }: HttpContext) {
|
|
44
|
-
{{ action.logic }}
|
|
45
|
-
}
|
|
46
|
-
@end
|
|
12
|
+
{{{ actionLines }}}
|
|
47
13
|
}
|