@weconjs/core 1.2.3 → 1.2.10
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/README.md +460 -259
- package/dist/config.d.ts +7 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +21 -43
- package/dist/config.js.map +1 -1
- package/dist/devtools/controllers/i18n.controller.d.ts +1 -1
- package/dist/devtools/controllers/i18n.controller.d.ts.map +1 -1
- package/dist/devtools/controllers/i18n.controller.js +19 -10
- package/dist/devtools/controllers/i18n.controller.js.map +1 -1
- package/dist/devtools/index.d.ts.map +1 -1
- package/dist/devtools/index.js +2 -0
- package/dist/devtools/index.js.map +1 -1
- package/dist/i18n/index.d.ts +13 -30
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +15 -91
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/loader.d.ts +58 -0
- package/dist/i18n/loader.d.ts.map +1 -0
- package/dist/i18n/loader.js +97 -0
- package/dist/i18n/loader.js.map +1 -0
- package/dist/i18n/middleware.d.ts +39 -0
- package/dist/i18n/middleware.d.ts.map +1 -0
- package/dist/i18n/middleware.js +75 -0
- package/dist/i18n/middleware.js.map +1 -0
- package/dist/i18n/utils.d.ts +31 -0
- package/dist/i18n/utils.d.ts.map +1 -0
- package/dist/i18n/utils.js +46 -0
- package/dist/i18n/utils.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/module.d.ts +10 -0
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +25 -0
- package/dist/module.js.map +1 -1
- package/dist/server/banner.d.ts +1 -0
- package/dist/server/banner.d.ts.map +1 -1
- package/dist/server/banner.js +13 -2
- package/dist/server/banner.js.map +1 -1
- package/dist/server/index.d.ts +7 -3
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +20 -12
- package/dist/server/index.js.map +1 -1
- package/dist/types.d.ts +15 -13
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -4
- package/dist/devtools/client/assets/CopyButton-DIdtJD4_.js +0 -6
- package/dist/devtools/client/assets/ModuleDetail-Dx6eU87l.js +0 -1
- package/dist/devtools/client/assets/TranslationEditor-Bj654a_E.js +0 -11
- package/dist/devtools/client/assets/chevron-right-E9DzkOHY.js +0 -6
- package/dist/devtools/client/assets/copy-BvbhBv2y.js +0 -6
- package/dist/devtools/client/assets/index-B42p6IVr.js +0 -6
- package/dist/devtools/client/assets/index-CSkGspzD.js +0 -1
- package/dist/devtools/client/assets/index-CnAObNgT.js +0 -16
- package/dist/devtools/client/assets/index-CwJHaaYT.css +0 -1
- package/dist/devtools/client/assets/index-Dfe66IW7.js +0 -1
- package/dist/devtools/client/assets/index-DoHRi03N.js +0 -201
- package/dist/devtools/client/assets/index-DvvGoEUv.js +0 -1
- package/dist/devtools/client/assets/loader-circle-DoOjJ8vr.js +0 -6
- package/dist/devtools/client/assets/plus-Ca-xq8y8.js +0 -6
- package/dist/devtools/client/assets/save-CV1xmSXO.js +0 -11
- package/dist/devtools/client/assets/search-CpTZ4fXm.js +0 -6
- package/dist/devtools/client/index.html +0 -15
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @weconjs/core - i18n Middleware
|
|
3
|
+
*
|
|
4
|
+
* Initializes i18next with module-based translations and provides
|
|
5
|
+
* namespace-scoped translation middleware for Express routes.
|
|
6
|
+
*/
|
|
7
|
+
import i18next from "i18next";
|
|
8
|
+
import type { Request, Response, NextFunction, Handler } from "express";
|
|
9
|
+
/**
|
|
10
|
+
* Initialize i18next with translations discovered from module directories
|
|
11
|
+
*
|
|
12
|
+
* @param modulesDir - Path to the modules directory
|
|
13
|
+
* @param fallbackLng - Default/fallback language code
|
|
14
|
+
* @returns Express middleware that attaches `req.i18n` and `req.t`
|
|
15
|
+
*/
|
|
16
|
+
export declare function initializeI18n(modulesDir: string, fallbackLng?: string): Promise<Handler>;
|
|
17
|
+
/**
|
|
18
|
+
* Namespace middleware for i18n
|
|
19
|
+
*
|
|
20
|
+
* Sets `req.t` to a fixed translation function scoped to the route's
|
|
21
|
+
* module namespace (with "core" as fallback).
|
|
22
|
+
*
|
|
23
|
+
* Reads namespace from `req.route_instance?.meta?.namespace`, which is
|
|
24
|
+
* set automatically by `defineModule()`.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // In a controller within the "auth" module:
|
|
29
|
+
* req.t("login.success") // Uses "auth" namespace
|
|
30
|
+
* req.t("core:errors.NOT_FOUND") // Explicit "core" namespace
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function i18nNamespaceMiddleware(req: Request, res: Response, next: NextFunction): void;
|
|
34
|
+
/**
|
|
35
|
+
* Get the i18next instance
|
|
36
|
+
*/
|
|
37
|
+
export declare function getI18n(): import("i18next").i18n;
|
|
38
|
+
export { i18next };
|
|
39
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/i18n/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGxE;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,MAAa,GACzB,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,IAAI,CAaN;AAED;;GAEG;AACH,wBAAgB,OAAO,2BAEtB;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @weconjs/core - i18n Middleware
|
|
3
|
+
*
|
|
4
|
+
* Initializes i18next with module-based translations and provides
|
|
5
|
+
* namespace-scoped translation middleware for Express routes.
|
|
6
|
+
*/
|
|
7
|
+
import i18next from "i18next";
|
|
8
|
+
import * as i18nextMiddleware from "i18next-http-middleware";
|
|
9
|
+
import { I18nLoader } from "./loader.js";
|
|
10
|
+
/**
|
|
11
|
+
* Initialize i18next with translations discovered from module directories
|
|
12
|
+
*
|
|
13
|
+
* @param modulesDir - Path to the modules directory
|
|
14
|
+
* @param fallbackLng - Default/fallback language code
|
|
15
|
+
* @returns Express middleware that attaches `req.i18n` and `req.t`
|
|
16
|
+
*/
|
|
17
|
+
export async function initializeI18n(modulesDir, fallbackLng = "en") {
|
|
18
|
+
const loader = new I18nLoader(modulesDir);
|
|
19
|
+
const resources = loader.loadAll();
|
|
20
|
+
const namespaces = loader.getNamespaces();
|
|
21
|
+
const languages = loader.getSupportedLanguages();
|
|
22
|
+
await i18next.use(i18nextMiddleware.LanguageDetector).init({
|
|
23
|
+
resources,
|
|
24
|
+
fallbackLng,
|
|
25
|
+
preload: languages.length > 0 ? languages : [fallbackLng],
|
|
26
|
+
ns: namespaces,
|
|
27
|
+
defaultNS: "core",
|
|
28
|
+
detection: {
|
|
29
|
+
order: ["header", "querystring", "cookie"],
|
|
30
|
+
lookupHeader: "accept-language",
|
|
31
|
+
lookupQuerystring: "lang",
|
|
32
|
+
lookupCookie: "i18next",
|
|
33
|
+
},
|
|
34
|
+
interpolation: {
|
|
35
|
+
escapeValue: false,
|
|
36
|
+
},
|
|
37
|
+
returnEmptyString: false,
|
|
38
|
+
returnNull: false,
|
|
39
|
+
});
|
|
40
|
+
return i18nextMiddleware.handle(i18next);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Namespace middleware for i18n
|
|
44
|
+
*
|
|
45
|
+
* Sets `req.t` to a fixed translation function scoped to the route's
|
|
46
|
+
* module namespace (with "core" as fallback).
|
|
47
|
+
*
|
|
48
|
+
* Reads namespace from `req.route_instance?.meta?.namespace`, which is
|
|
49
|
+
* set automatically by `defineModule()`.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* // In a controller within the "auth" module:
|
|
54
|
+
* req.t("login.success") // Uses "auth" namespace
|
|
55
|
+
* req.t("core:errors.NOT_FOUND") // Explicit "core" namespace
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export function i18nNamespaceMiddleware(req, res, next) {
|
|
59
|
+
if (!req.i18n) {
|
|
60
|
+
return next();
|
|
61
|
+
}
|
|
62
|
+
const language = req.i18n.language || "en";
|
|
63
|
+
const namespace = req.route_instance?.meta?.namespace || "core";
|
|
64
|
+
// Fixed translation function with module namespace as primary, core as fallback
|
|
65
|
+
req.t = req.i18n.getFixedT(language, [namespace, "core"]);
|
|
66
|
+
next();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the i18next instance
|
|
70
|
+
*/
|
|
71
|
+
export function getI18n() {
|
|
72
|
+
return i18next;
|
|
73
|
+
}
|
|
74
|
+
export { i18next };
|
|
75
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/i18n/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB,EAClB,cAAsB,IAAI;IAE1B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAEnC,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAEjD,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;QACzD,SAAS;QACT,WAAW;QACX,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACzD,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE;YACT,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC;YAC1C,YAAY,EAAE,iBAAiB;YAC/B,iBAAiB,EAAE,MAAM;YACzB,YAAY,EAAE,SAAS;SACxB;QACD,aAAa,EAAE;YACb,WAAW,EAAE,KAAK;SACnB;QACD,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAY,EACZ,GAAa,EACb,IAAkB;IAElB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC3C,MAAM,SAAS,GACZ,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,SAAoB,IAAI,MAAM,CAAC;IAE5D,gFAAgF;IAChF,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1D,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @weconjs/core - i18n Utilities
|
|
3
|
+
*
|
|
4
|
+
* Helper functions for working with translations in controllers and services.
|
|
5
|
+
*/
|
|
6
|
+
import type { Request } from "express";
|
|
7
|
+
/**
|
|
8
|
+
* Create a translation function from a request object
|
|
9
|
+
*
|
|
10
|
+
* Returns `req.t` if i18n is initialized, otherwise returns
|
|
11
|
+
* a fallback that echoes the key.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const t = translate(req);
|
|
16
|
+
* const message = t("auth:login.success");
|
|
17
|
+
* const error = t("core:errors.UNAUTHORIZED");
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function translate(req: Request): (key: string, options?: Record<string, unknown>) => string;
|
|
21
|
+
/**
|
|
22
|
+
* Get the current language from the request
|
|
23
|
+
*
|
|
24
|
+
* @returns The detected language code, or "en" as fallback
|
|
25
|
+
*/
|
|
26
|
+
export declare function getCurrentLanguage(req: Request): string;
|
|
27
|
+
/**
|
|
28
|
+
* Change the language for the current request
|
|
29
|
+
*/
|
|
30
|
+
export declare function changeLanguage(req: Request, language: string): void;
|
|
31
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/i18n/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,IAC5B,KAAK,MAAM,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAMvD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAKvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAInE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @weconjs/core - i18n Utilities
|
|
3
|
+
*
|
|
4
|
+
* Helper functions for working with translations in controllers and services.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Create a translation function from a request object
|
|
8
|
+
*
|
|
9
|
+
* Returns `req.t` if i18n is initialized, otherwise returns
|
|
10
|
+
* a fallback that echoes the key.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const t = translate(req);
|
|
15
|
+
* const message = t("auth:login.success");
|
|
16
|
+
* const error = t("core:errors.UNAUTHORIZED");
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export function translate(req) {
|
|
20
|
+
return (key, options) => {
|
|
21
|
+
if (req.t) {
|
|
22
|
+
return req.t(key, options);
|
|
23
|
+
}
|
|
24
|
+
return key;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get the current language from the request
|
|
29
|
+
*
|
|
30
|
+
* @returns The detected language code, or "en" as fallback
|
|
31
|
+
*/
|
|
32
|
+
export function getCurrentLanguage(req) {
|
|
33
|
+
if (req.i18n) {
|
|
34
|
+
return req.i18n.language;
|
|
35
|
+
}
|
|
36
|
+
return "en";
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Change the language for the current request
|
|
40
|
+
*/
|
|
41
|
+
export function changeLanguage(req, language) {
|
|
42
|
+
if (req.i18n) {
|
|
43
|
+
req.i18n.changeLanguage(language);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/i18n/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,OAAO,CAAC,GAAW,EAAE,OAAiC,EAAE,EAAE;QACxD,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY,EAAE,QAAgB;IAC3D,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Provides configuration, module system, routing, and runtime utilities.
|
|
6
6
|
*/
|
|
7
7
|
export { defineConfig, resolveConfig, loadConfig } from "./config.js";
|
|
8
|
-
export { defineModule, loadModule, discoverSocketHandlers, discoverSocketMiddleware, resolveModuleDependencies, } from "./module.js";
|
|
8
|
+
export { defineModule, loadModule, discoverSocketHandlers, discoverSocketMiddleware, resolveModuleDependencies, resolveModuleConfigs, } from "./module.js";
|
|
9
9
|
export { readModulePackageJson, checkModuleDeps, detectPackageManager, installModuleDeps, resolveAllModuleDeps, } from "./module/index.js";
|
|
10
10
|
export type { ModulePackageJson, DepsCheckResult } from "./module/index.js";
|
|
11
11
|
export { createContext, createLogger } from "./context.js";
|
|
@@ -16,7 +16,7 @@ export type { CreateWeconOptions, WeconApp, ApiError, ApiResponse, RespondOption
|
|
|
16
16
|
export { Wecon, Route, Routes, RoutesParam, RaiMatcher, ErrorCatcher, } from "./routing/index.js";
|
|
17
17
|
export type { WeconDevConfig, RaiRoutesList } from "./routing/index.js";
|
|
18
18
|
export { ConfigError, RequestError } from "./errors/index.js";
|
|
19
|
-
export {
|
|
19
|
+
export { initializeI18n, initI18n, i18nNamespaceMiddleware, getI18n, i18next, I18nLoader, translate, getCurrentLanguage, changeLanguage, } from "./i18n/index.js";
|
|
20
20
|
export type { I18nResources } from "./i18n/index.js";
|
|
21
21
|
export { createDatabaseConnection, buildMongoUri, buildUriFromConfig, } from "./database/index.js";
|
|
22
22
|
export type { DatabaseOptions, DatabaseConnection, MongoUriParts, } from "./database/index.js";
|
|
@@ -24,5 +24,5 @@ export { createSocketServer, discoverSocketHandlers as discoverSocketHandlersFro
|
|
|
24
24
|
export type { SocketServer, SocketInstance, SocketHandler as SocketHandlerFn, SocketMiddleware as SocketMiddlewareFn, DiscoveredSocketHandler, SocketOptions, } from "./socket/index.js";
|
|
25
25
|
export { createDevToolsRouter } from "./devtools/index.js";
|
|
26
26
|
export type { DevToolsOptions } from "./devtools/index.js";
|
|
27
|
-
export type { RouteConfig, RoutesConfig, RAI, DefaultRole, ErrorInfoType, ErrorTraceType, PossibleErrosType, WeconConfig, ResolvedConfig, AppConfig, DatabaseConfig, LoggingConfig, HttpsConfig, SocketConfig, FeaturesConfig,
|
|
27
|
+
export type { RouteConfig, RoutesConfig, RAI, DefaultRole, ErrorInfoType, ErrorTraceType, PossibleErrosType, WeconConfig, ResolvedConfig, AppConfig, DatabaseConfig, LoggingConfig, HttpsConfig, SocketConfig, FeaturesConfig, WeconHooks, ModuleDefinition, ModuleConfigDefinition, WeconModule, SocketHandler, SocketMiddleware, WeconContext, WeconLogger, WeconServices, Authenticable, AuthConfig, WeconRequest, WeconResponse, RouteHandler, WeconMiddleware, } from "./types.js";
|
|
28
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACV,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EACL,cAAc,EACd,QAAQ,EACR,uBAAuB,EACvB,OAAO,EACP,OAAO,EACP,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,IAAI,iCAAiC,EAC3D,wBAAwB,IAAI,mCAAmC,EAC/D,gBAAgB,EAChB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,IAAI,eAAe,EAChC,gBAAgB,IAAI,kBAAkB,EACtC,uBAAuB,EACvB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,YAAY,EAEV,WAAW,EACX,YAAY,EACZ,GAAG,EACH,WAAW,EACX,aAAa,EACb,cAAc,EACd,iBAAiB,EAGjB,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,EAGV,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EAGX,aAAa,EACb,gBAAgB,EAGhB,YAAY,EACZ,WAAW,EACX,aAAa,EAGb,aAAa,EACb,UAAU,EAGV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// Configuration
|
|
8
8
|
export { defineConfig, resolveConfig, loadConfig } from "./config.js";
|
|
9
9
|
// Module System
|
|
10
|
-
export { defineModule, loadModule, discoverSocketHandlers, discoverSocketMiddleware, resolveModuleDependencies, } from "./module.js";
|
|
10
|
+
export { defineModule, loadModule, discoverSocketHandlers, discoverSocketMiddleware, resolveModuleDependencies, resolveModuleConfigs, } from "./module.js";
|
|
11
11
|
// Module Loader (per-module package.json support)
|
|
12
12
|
export { readModulePackageJson, checkModuleDeps, detectPackageManager, installModuleDeps, resolveAllModuleDeps, } from "./module/index.js";
|
|
13
13
|
// Context
|
|
@@ -21,7 +21,7 @@ export { Wecon, Route, Routes, RoutesParam, RaiMatcher, ErrorCatcher, } from "./
|
|
|
21
21
|
// Errors
|
|
22
22
|
export { ConfigError, RequestError } from "./errors/index.js";
|
|
23
23
|
// i18n
|
|
24
|
-
export {
|
|
24
|
+
export { initializeI18n, initI18n, i18nNamespaceMiddleware, getI18n, i18next, I18nLoader, translate, getCurrentLanguage, changeLanguage, } from "./i18n/index.js";
|
|
25
25
|
// Database
|
|
26
26
|
export { createDatabaseConnection, buildMongoUri, buildUriFromConfig, } from "./database/index.js";
|
|
27
27
|
// Socket.IO
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,kDAAkD;AAClD,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE3D,SAAS;AACT,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,UAAU;AACV,OAAO,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO;AACP,OAAO,EACL,cAAc,EACd,QAAQ,EACR,uBAAuB,EACvB,OAAO,EACP,OAAO,EACP,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,WAAW;AACX,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAO7B,YAAY;AACZ,OAAO,EACL,kBAAkB,EAClB,sBAAsB,IAAI,iCAAiC,EAC3D,wBAAwB,IAAI,mCAAmC,EAC/D,gBAAgB,EAChB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAU3B,WAAW;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/module.d.ts
CHANGED
|
@@ -65,4 +65,14 @@ export declare function loadModule(modulePath: string, baseDir: string): Promise
|
|
|
65
65
|
* @returns Ordered array of modules (dependencies first)
|
|
66
66
|
*/
|
|
67
67
|
export declare function resolveModuleDependencies(modules: Map<string, WeconModule>): WeconModule[];
|
|
68
|
+
/**
|
|
69
|
+
* Resolve module configs by calling each module's load() function
|
|
70
|
+
*
|
|
71
|
+
* Iterates over all modules, calls their config.load() if present,
|
|
72
|
+
* merges with defaults, and validates against the module's Zod schema.
|
|
73
|
+
*
|
|
74
|
+
* @param modules - Array or record of modules
|
|
75
|
+
* @returns Record of validated module configs keyed by module name
|
|
76
|
+
*/
|
|
77
|
+
export declare function resolveModuleConfigs(modules: WeconModule[] | Record<string, WeconModule>): Promise<Record<string, unknown>>;
|
|
68
78
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA6BpB;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG,WAAW,CAiCtE;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,EAAE,CAAC,CAmCrD;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA8B7B;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,CA+CtB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAChC,WAAW,EAAE,CAiCf"}
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA6BpB;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG,WAAW,CAiCtE;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,EAAE,CAAC,CAmCrD;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA8B7B;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,CA+CtB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAChC,WAAW,EAAE,CAiCf;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACnD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAqBlC"}
|
package/dist/module.js
CHANGED
|
@@ -234,4 +234,29 @@ export function resolveModuleDependencies(modules) {
|
|
|
234
234
|
}
|
|
235
235
|
return resolved;
|
|
236
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Resolve module configs by calling each module's load() function
|
|
239
|
+
*
|
|
240
|
+
* Iterates over all modules, calls their config.load() if present,
|
|
241
|
+
* merges with defaults, and validates against the module's Zod schema.
|
|
242
|
+
*
|
|
243
|
+
* @param modules - Array or record of modules
|
|
244
|
+
* @returns Record of validated module configs keyed by module name
|
|
245
|
+
*/
|
|
246
|
+
export async function resolveModuleConfigs(modules) {
|
|
247
|
+
const moduleList = Array.isArray(modules) ? modules : Object.values(modules);
|
|
248
|
+
const configs = {};
|
|
249
|
+
for (const mod of moduleList) {
|
|
250
|
+
if (!mod.config?.schema)
|
|
251
|
+
continue;
|
|
252
|
+
const rawConfig = mod.config.load ? await mod.config.load() : {};
|
|
253
|
+
const merged = { ...(mod.config.defaults ?? {}), ...rawConfig };
|
|
254
|
+
const result = mod.config.schema.safeParse(merged);
|
|
255
|
+
if (!result.success) {
|
|
256
|
+
throw new Error(`[Wecon] Invalid config for module "${mod.name}": ${result.error.message}`);
|
|
257
|
+
}
|
|
258
|
+
configs[mod.name] = result.data;
|
|
259
|
+
}
|
|
260
|
+
return configs;
|
|
261
|
+
}
|
|
237
262
|
//# sourceMappingURL=module.js.map
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
package/dist/server/banner.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/server/banner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/D,UAAU,aAAa;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/server/banner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/D,UAAU,aAAa;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmHvE"}
|
package/dist/server/banner.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Pretty, developer-friendly startup output with colors.
|
|
5
5
|
*/
|
|
6
6
|
export async function printBanner(options) {
|
|
7
|
-
const { config, modules, port, protocol, dbConnected, i18nEnabled, devtoolsEnabled, devtoolsPrefix, routeCount, } = options;
|
|
7
|
+
const { config, modules, port, protocol, dbConnected, i18nEnabled, devtoolsEnabled, devtoolsPrefix, routeCount, apiPrefix, } = options;
|
|
8
8
|
// Dynamic import chalk (ESM)
|
|
9
9
|
let c;
|
|
10
10
|
try {
|
|
@@ -43,9 +43,16 @@ export async function printBanner(options) {
|
|
|
43
43
|
lines.push("");
|
|
44
44
|
// Server info
|
|
45
45
|
lines.push(` ${c.dim("├─")} ${c.dim("URL")} ${c.cyan(url)}`);
|
|
46
|
+
if (apiPrefix) {
|
|
47
|
+
lines.push(` ${c.dim("├─")} ${c.dim("API Prefix")} ${c.cyan(apiPrefix)}`);
|
|
48
|
+
}
|
|
49
|
+
lines.push(` ${c.dim("├─")} ${c.dim("Version")} ${c.white(`v${config.app.version}`)}`);
|
|
46
50
|
lines.push(` ${c.dim("├─")} ${c.dim("Mode")} ${modeColor(mode)}`);
|
|
47
51
|
// Database
|
|
48
|
-
const
|
|
52
|
+
const dbName = config.database?.mongoose?.database;
|
|
53
|
+
const dbStatus = dbConnected
|
|
54
|
+
? c.green("● connected") + (dbName ? ` ${c.dim("—")} ${c.white(dbName)}` : "")
|
|
55
|
+
: c.dim("○ disabled");
|
|
49
56
|
lines.push(` ${c.dim("├─")} ${c.dim("Database")} ${dbStatus}`);
|
|
50
57
|
// Modules
|
|
51
58
|
const moduleNames = modules.map((m) => m.name).join(c.dim(", "));
|
|
@@ -60,6 +67,10 @@ export async function printBanner(options) {
|
|
|
60
67
|
features.push("i18n");
|
|
61
68
|
if (config.features?.fieldShield?.enabled)
|
|
62
69
|
features.push("FieldShield");
|
|
70
|
+
if (config.features?.swagger?.enabled)
|
|
71
|
+
features.push("Swagger");
|
|
72
|
+
if (config.features?.socket?.enabled)
|
|
73
|
+
features.push("Socket.IO");
|
|
63
74
|
if (features.length > 0) {
|
|
64
75
|
lines.push(` ${c.dim("├─")} ${c.dim("Features")} ${features.join(c.dim(", "))}`);
|
|
65
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/server/banner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/server/banner.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -71,9 +71,13 @@ export interface CreateWeconOptions {
|
|
|
71
71
|
*/
|
|
72
72
|
wecon?: Wecon;
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* API prefix shown in the startup banner (e.g. "/api/v1")
|
|
75
75
|
*/
|
|
76
|
-
|
|
76
|
+
apiPrefix?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Custom middlewares to apply before routes
|
|
79
|
+
*/
|
|
80
|
+
middlewares?: RequestHandler[];
|
|
77
81
|
/**
|
|
78
82
|
* Database options
|
|
79
83
|
*/
|
|
@@ -169,7 +173,7 @@ export interface CreateWeconOptions {
|
|
|
169
173
|
*/
|
|
170
174
|
hooks?: {
|
|
171
175
|
/**
|
|
172
|
-
* Called before server starts (after
|
|
176
|
+
* Called before server starts (after middlewares setup)
|
|
173
177
|
*/
|
|
174
178
|
onBoot?: (ctx: WeconContext) => Promise<void> | void;
|
|
175
179
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,WAAW,EAAmC,cAAc,EAAE,MAAM,SAAS,CAAC;AAE5F,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAgD,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI7G,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGlF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,WAAW,EAAE,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.js
CHANGED
|
@@ -26,7 +26,7 @@ import fs from "fs";
|
|
|
26
26
|
import path from "path";
|
|
27
27
|
import { createWinstonLogger, createConsoleLogger } from "../logger/index.js";
|
|
28
28
|
import { createDatabaseConnection, buildUriFromConfig } from "../database/index.js";
|
|
29
|
-
import {
|
|
29
|
+
import { initializeI18n, i18nNamespaceMiddleware } from "../i18n/index.js";
|
|
30
30
|
import { createContext } from "../context.js";
|
|
31
31
|
import { resolveAllModuleDeps } from "../module/index.js";
|
|
32
32
|
import { createDevToolsRouter } from "../devtools/index.js";
|
|
@@ -153,7 +153,7 @@ function createGracefulShutdown(server, ctx, db, onShutdown) {
|
|
|
153
153
|
* @returns Wecon application instance
|
|
154
154
|
*/
|
|
155
155
|
export async function createWecon(options) {
|
|
156
|
-
const { config, modules, wecon,
|
|
156
|
+
const { config, modules, wecon, middlewares = [], hooks = {} } = options;
|
|
157
157
|
// Install respond helper (wrapped in try-catch as express may not be available yet)
|
|
158
158
|
try {
|
|
159
159
|
installRespond();
|
|
@@ -191,15 +191,18 @@ export async function createWecon(options) {
|
|
|
191
191
|
for (const mod of modules) {
|
|
192
192
|
if (mod.config?.schema) {
|
|
193
193
|
moduleSchemas.set(mod.name, mod.config.schema);
|
|
194
|
-
//
|
|
195
|
-
|
|
196
|
-
|
|
194
|
+
// If no user-provided config, try module's load() function
|
|
195
|
+
let userConfig = config.moduleConfigs[mod.name];
|
|
196
|
+
if (userConfig === undefined && mod.config.load) {
|
|
197
|
+
userConfig = await mod.config.load();
|
|
198
|
+
}
|
|
199
|
+
// Merge defaults with loaded/user-provided config, then validate
|
|
200
|
+
const merged = { ...(mod.config.defaults ?? {}), ...(userConfig ?? {}) };
|
|
197
201
|
const result = mod.config.schema.safeParse(merged);
|
|
198
202
|
if (!result.success) {
|
|
199
203
|
throw new Error(`[Wecon] Invalid config for module "${mod.name}": ${result.error.message}`);
|
|
200
204
|
}
|
|
201
205
|
config.moduleConfigs[mod.name] = result.data;
|
|
202
|
-
// Config validated - shown in startup banner
|
|
203
206
|
}
|
|
204
207
|
}
|
|
205
208
|
// Create context with module schemas for runtime validation
|
|
@@ -209,6 +212,11 @@ export async function createWecon(options) {
|
|
|
209
212
|
logger,
|
|
210
213
|
moduleSchemas,
|
|
211
214
|
});
|
|
215
|
+
// Inject WeconContext into every request (enables req.ctx in handlers/middlewares)
|
|
216
|
+
app.use((req, _res, next) => {
|
|
217
|
+
req.ctx = ctx;
|
|
218
|
+
next();
|
|
219
|
+
});
|
|
212
220
|
// Connect database if enabled
|
|
213
221
|
let db;
|
|
214
222
|
const shouldConnectDb = options.database?.enabled ?? (config.database?.mongoose?.host !== undefined);
|
|
@@ -237,17 +245,15 @@ export async function createWecon(options) {
|
|
|
237
245
|
throw err;
|
|
238
246
|
}
|
|
239
247
|
}
|
|
240
|
-
// Apply default middleware
|
|
241
|
-
app.use(express.json());
|
|
242
|
-
app.use(express.urlencoded({ extended: true }));
|
|
243
248
|
// Initialize i18n if enabled
|
|
244
249
|
const i18nEnabled = options.i18n?.enabled ?? config.features?.i18n?.enabled;
|
|
245
250
|
if (i18nEnabled) {
|
|
246
251
|
try {
|
|
247
252
|
const modulesDir = options.i18n?.modulesDir ?? "./src/modules";
|
|
248
253
|
const defaultLocale = config.features?.i18n?.defaultLocale ?? "en";
|
|
249
|
-
const i18nMiddleware = await
|
|
254
|
+
const i18nMiddleware = await initializeI18n(modulesDir, defaultLocale);
|
|
250
255
|
app.use(i18nMiddleware);
|
|
256
|
+
app.use(i18nNamespaceMiddleware);
|
|
251
257
|
}
|
|
252
258
|
catch (err) {
|
|
253
259
|
logger.warn("Failed to initialize i18n", {
|
|
@@ -255,8 +261,8 @@ export async function createWecon(options) {
|
|
|
255
261
|
});
|
|
256
262
|
}
|
|
257
263
|
}
|
|
258
|
-
// Apply custom
|
|
259
|
-
for (const mw of
|
|
264
|
+
// Apply custom middlewares
|
|
265
|
+
for (const mw of middlewares) {
|
|
260
266
|
app.use(mw);
|
|
261
267
|
}
|
|
262
268
|
// Health check endpoint
|
|
@@ -379,6 +385,7 @@ export async function createWecon(options) {
|
|
|
379
385
|
devtoolsEnabled,
|
|
380
386
|
devtoolsPrefix,
|
|
381
387
|
routeCount,
|
|
388
|
+
apiPrefix: options.apiPrefix,
|
|
382
389
|
});
|
|
383
390
|
resolve(server);
|
|
384
391
|
});
|
|
@@ -403,6 +410,7 @@ export async function createWecon(options) {
|
|
|
403
410
|
devtoolsEnabled,
|
|
404
411
|
devtoolsPrefix,
|
|
405
412
|
routeCount,
|
|
413
|
+
apiPrefix: options.apiPrefix,
|
|
406
414
|
});
|
|
407
415
|
resolve(server);
|
|
408
416
|
});
|