@onroad/core 4.0.0-alpha.21 → 4.0.0-alpha.23
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.
|
@@ -8,6 +8,10 @@ export interface RouteConfig {
|
|
|
8
8
|
}
|
|
9
9
|
export interface ControllerConfig<TService> {
|
|
10
10
|
service: Constructor<TService>;
|
|
11
|
+
/** Optional route prefix for auto-CRUD routes (e.g. "turno").
|
|
12
|
+
* Use when the controller is registered at @Controller("/") but needs context-aware paths.
|
|
13
|
+
* Do NOT set when the controller already uses @Controller("/turno"). */
|
|
14
|
+
prefix?: string;
|
|
11
15
|
routes?: Record<string, RouteConfig>;
|
|
12
16
|
}
|
|
13
17
|
export declare abstract class AbstractController<TService = unknown> {
|
|
@@ -16,11 +20,6 @@ export declare abstract class AbstractController<TService = unknown> {
|
|
|
16
20
|
constructor(config: ControllerConfig<TService>);
|
|
17
21
|
setService(service: TService): void;
|
|
18
22
|
getRoutes(): Record<string, RouteConfig>;
|
|
19
|
-
/**
|
|
20
|
-
* Extracts a common context prefix (e.g. "/acao") from explicitly defined routes.
|
|
21
|
-
* Returns null when no prefix can be inferred, preserving default CRUD behaviour.
|
|
22
|
-
*/
|
|
23
|
-
private inferContextPrefix;
|
|
24
23
|
getServiceClass(): Constructor<TService>;
|
|
25
24
|
create(req: any, res: any): Promise<any>;
|
|
26
25
|
readAll(req: any, res: any): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractController.d.ts","sourceRoot":"","sources":["../../src/core/AbstractController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB,CAAC,QAAQ;IACxC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;CACrC;AAED,8BAAsB,kBAAkB,CAAC,QAAQ,GAAG,OAAO;IACzD,SAAS,CAAC,OAAO,EAAG,QAAQ,CAAA;IAC5B,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;gBAEhC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IAI9C,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAInC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractController.d.ts","sourceRoot":"","sources":["../../src/core/AbstractController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB,CAAC,QAAQ;IACxC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC9B;;4EAEwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;CACrC;AAED,8BAAsB,kBAAkB,CAAC,QAAQ,GAAG,OAAO;IACzD,SAAS,CAAC,OAAO,EAAG,QAAQ,CAAA;IAC5B,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;gBAEhC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IAI9C,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAInC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;IAuBxC,eAAe,IAAI,WAAW,CAAC,QAAQ,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAOzB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAO1B,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAOvB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAOzB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAMhC"}
|
|
@@ -9,10 +9,7 @@ export class AbstractController {
|
|
|
9
9
|
}
|
|
10
10
|
getRoutes() {
|
|
11
11
|
const explicitRoutes = this.config.routes ?? {};
|
|
12
|
-
|
|
13
|
-
// When controllers use @Controller("/") with explicit paths like "/acao/:id",
|
|
14
|
-
// auto-CRUD routes must share the same prefix to avoid catch-all "/:id".
|
|
15
|
-
const prefix = this.inferContextPrefix(explicitRoutes);
|
|
12
|
+
const prefix = this.config.prefix ? `/${this.config.prefix.replace(/^\//, "")}` : null;
|
|
16
13
|
const autoConfig = prefix
|
|
17
14
|
? {
|
|
18
15
|
create: { method: "post", path: prefix },
|
|
@@ -30,20 +27,6 @@ export class AbstractController {
|
|
|
30
27
|
};
|
|
31
28
|
return { ...autoConfig, ...explicitRoutes };
|
|
32
29
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Extracts a common context prefix (e.g. "/acao") from explicitly defined routes.
|
|
35
|
-
* Returns null when no prefix can be inferred, preserving default CRUD behaviour.
|
|
36
|
-
*/
|
|
37
|
-
inferContextPrefix(routes) {
|
|
38
|
-
for (const route of Object.values(routes)) {
|
|
39
|
-
if (route.path) {
|
|
40
|
-
const match = route.path.match(/^(\/[a-zA-Z][a-zA-Z0-9_-]*)/);
|
|
41
|
-
if (match)
|
|
42
|
-
return match[1];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
30
|
getServiceClass() {
|
|
48
31
|
return this.config.service;
|
|
49
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractController.js","sourceRoot":"","sources":["../../src/core/AbstractController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractController.js","sourceRoot":"","sources":["../../src/core/AbstractController.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED