@ido_kawaz/server-framework 3.3.0 → 3.5.0
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 +1 -0
- package/dist/__tests__/config.test.js +11 -2
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/server.test.js +4 -4
- package/dist/__tests__/server.test.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -2
- package/dist/config.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +8 -3
- package/dist/utils.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -33,6 +33,7 @@ npm i @ido_kawaz/server-framework
|
|
|
33
33
|
|
|
34
34
|
- `PORT` (required): server port number.
|
|
35
35
|
- `SECURED` (optional): internal secured flag in config (defaults to `false` when not set).
|
|
36
|
+
- `CORS_ORIGINS` (optional): JSON array string of allowed CORS origins (defaults to `["http://localhost:3000"]`). Example: `CORS_ORIGINS='["https://myapp.com","http://localhost:3000"]'`.
|
|
36
37
|
|
|
37
38
|
## Quick Start
|
|
38
39
|
|
|
@@ -13,14 +13,23 @@ describe("createServerConfig", () => {
|
|
|
13
13
|
it("parses PORT from environment variables", () => {
|
|
14
14
|
process.env.PORT = "3000";
|
|
15
15
|
delete process.env.SECURED;
|
|
16
|
+
delete process.env.CORS_ORIGINS;
|
|
16
17
|
const config = (0, config_1.createServerConfig)();
|
|
17
|
-
expect(config).toEqual({ port: 3000, secured: false, hostname: "0.0.0.0" });
|
|
18
|
+
expect(config).toEqual({ port: 3000, secured: false, hostname: "0.0.0.0", corsOrigins: ["http://localhost:3000"] });
|
|
18
19
|
});
|
|
19
20
|
it("coerces SECURED string value to boolean", () => {
|
|
20
21
|
process.env.PORT = "3000";
|
|
21
22
|
process.env.SECURED = "true";
|
|
23
|
+
delete process.env.CORS_ORIGINS;
|
|
22
24
|
const config = (0, config_1.createServerConfig)();
|
|
23
|
-
expect(config).toEqual({ port: 3000, secured: true, hostname: "0.0.0.0" });
|
|
25
|
+
expect(config).toEqual({ port: 3000, secured: true, hostname: "0.0.0.0", corsOrigins: ["http://localhost:3000"] });
|
|
26
|
+
});
|
|
27
|
+
it("parses CORS_ORIGINS from JSON string", () => {
|
|
28
|
+
process.env.PORT = "3000";
|
|
29
|
+
delete process.env.SECURED;
|
|
30
|
+
process.env.CORS_ORIGINS = '["http://localhost:3000","https://myapp.com"]';
|
|
31
|
+
const config = (0, config_1.createServerConfig)();
|
|
32
|
+
expect(config.corsOrigins).toEqual(["http://localhost:3000", "https://myapp.com"]);
|
|
24
33
|
});
|
|
25
34
|
it("throws when PORT is missing", () => {
|
|
26
35
|
delete process.env.PORT;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":";;AAAA,sCAA+C;AAC/C,6BAA+B;AAE/B,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ const server_1 = require("../server");
|
|
|
10
10
|
const registerMiddlewaresMock = jest.fn((app) => app);
|
|
11
11
|
const registerErrorHandlingMock = jest.fn((app) => app);
|
|
12
12
|
jest.mock("../utils", () => ({
|
|
13
|
-
registerMiddlewares: (app) => registerMiddlewaresMock(app),
|
|
13
|
+
registerMiddlewares: (_corsOrigins) => (app) => registerMiddlewaresMock(app),
|
|
14
14
|
registerErrorHandling: (app) => registerErrorHandlingMock(app)
|
|
15
15
|
}));
|
|
16
16
|
jest.mock("ramda", () => ({
|
|
@@ -49,7 +49,7 @@ describe("createServer", () => {
|
|
|
49
49
|
http_1.default.createServer.mockReturnValue({ listen: listenMock });
|
|
50
50
|
const routeHandler = jest.fn(() => serviceApp);
|
|
51
51
|
const registerRoutes = jest.fn(() => routeHandler);
|
|
52
|
-
const server =
|
|
52
|
+
const server = (0, server_1.createServer)({ port: 3000, secured: false, hostname: "0.0.0.0", corsOrigins: ["http://localhost:3000"] }, registerRoutes);
|
|
53
53
|
await expect(server.start()).resolves.toBeUndefined();
|
|
54
54
|
expect(registerMiddlewaresMock).toHaveBeenCalledWith(expressApp);
|
|
55
55
|
expect(registerErrorHandlingMock).toHaveBeenCalledWith(serviceApp);
|
|
@@ -69,7 +69,7 @@ describe("createServer", () => {
|
|
|
69
69
|
expressMock.mockReturnValue(expressApp);
|
|
70
70
|
https_1.default.createServer.mockReturnValue({ listen: listenMock });
|
|
71
71
|
const registerRoutes = () => (app) => app;
|
|
72
|
-
const server = (0, server_1.createServer)({ port: 3443, secured: true, hostname: "0.0.0.0" }, registerRoutes);
|
|
72
|
+
const server = (0, server_1.createServer)({ port: 3443, secured: true, hostname: "0.0.0.0", corsOrigins: ["http://localhost:3000"] }, registerRoutes);
|
|
73
73
|
await expect(server.start()).resolves.toBeUndefined();
|
|
74
74
|
expect(https_1.default.createServer).toHaveBeenCalledTimes(1);
|
|
75
75
|
expect(http_1.default.createServer).not.toHaveBeenCalled();
|
|
@@ -88,7 +88,7 @@ describe("createServer", () => {
|
|
|
88
88
|
expressMock.mockReturnValue(expressApp);
|
|
89
89
|
http_1.default.createServer.mockReturnValue({ listen: listenMock });
|
|
90
90
|
const registerRoutes = () => (app) => app;
|
|
91
|
-
const server =
|
|
91
|
+
const server = (0, server_1.createServer)({ port: 3001, secured: false, hostname: "0.0.0.0", corsOrigins: ["http://localhost:3000"] }, registerRoutes);
|
|
92
92
|
await expect(server.start()).rejects.toThrow("listen failed");
|
|
93
93
|
});
|
|
94
94
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.test.js","sourceRoot":"","sources":["../../src/__tests__/server.test.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,kDAA0B;AAC1B,sCAAyC;AAGzC,MAAM,uBAAuB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,yBAAyB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAExD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,mBAAmB,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"server.test.js","sourceRoot":"","sources":["../../src/__tests__/server.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AASD,eAAO,MAAM,kBAAkB,QAAO,YAQrC,CAAA"}
|
package/dist/config.js
CHANGED
|
@@ -8,14 +8,16 @@ const zod_1 = __importDefault(require("zod"));
|
|
|
8
8
|
const serverEnvSchema = zod_1.default.object({
|
|
9
9
|
PORT: zod_1.default.coerce.number(),
|
|
10
10
|
SECURED: zod_1.default.coerce.boolean().default(false),
|
|
11
|
-
HOSTNAME: zod_1.default.string().default("0.0.0.0")
|
|
11
|
+
HOSTNAME: zod_1.default.string().default("0.0.0.0"),
|
|
12
|
+
CORS_ORIGINS: zod_1.default.string().default('["http://localhost:3000"]').transform(s => JSON.parse(s))
|
|
12
13
|
});
|
|
13
14
|
const createServerConfig = () => {
|
|
14
15
|
const env = serverEnvSchema.parse(process.env);
|
|
15
16
|
return {
|
|
16
17
|
port: env.PORT,
|
|
17
18
|
secured: env.SECURED,
|
|
18
|
-
hostname: env.HOSTNAME
|
|
19
|
+
hostname: env.HOSTNAME,
|
|
20
|
+
corsOrigins: env.CORS_ORIGINS
|
|
19
21
|
};
|
|
20
22
|
};
|
|
21
23
|
exports.createServerConfig = createServerConfig;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AASpB,MAAM,eAAe,GAAG,aAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,aAAC,CAAC,MAAM,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,aAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,QAAQ,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACvC,YAAY,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAC9F,CAAC,CAAC;AAEI,MAAM,kBAAkB,GAAG,GAAiB,EAAE;IACjD,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO;QACH,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,WAAW,EAAE,GAAG,CAAC,YAAY;KAChC,CAAA;AACL,CAAC,CAAA;AARY,QAAA,kBAAkB,sBAQ9B"}
|
package/dist/server.js
CHANGED
|
@@ -13,7 +13,7 @@ const createServer = (config, registerRoutes) => {
|
|
|
13
13
|
return {
|
|
14
14
|
start: async (...args) => {
|
|
15
15
|
const expressApp = (0, express_1.default)();
|
|
16
|
-
const serviceApp = (0, ramda_1.pipe)(utils_1.registerMiddlewares, registerRoutes(...args), utils_1.registerErrorHandling)(expressApp);
|
|
16
|
+
const serviceApp = (0, ramda_1.pipe)((0, utils_1.registerMiddlewares)(config.corsOrigins), registerRoutes(...args), utils_1.registerErrorHandling)(expressApp);
|
|
17
17
|
const { port, secured, hostname } = config;
|
|
18
18
|
const server = secured ? https_1.default.createServer(serviceApp) : http_1.default.createServer(serviceApp);
|
|
19
19
|
return new Promise((resolve, reject) => {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA2C;AAC3C,gDAAwB;AACxB,kDAA0B;AAE1B,mCAAqE;AACrE,iCAA6B;AAGtB,MAAM,YAAY,GAAG,CACxB,MAAoB,EACpB,cAA4D,EAC9D,EAAE;IACA,OAAO;QACH,KAAK,EAAE,KAAK,EAAE,GAAG,IAAU,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAA,YAAI,EAAC,2BAAmB,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC,EAAE,6BAAqB,CAAC,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA2C;AAC3C,gDAAwB;AACxB,kDAA0B;AAE1B,mCAAqE;AACrE,iCAA6B;AAGtB,MAAM,YAAY,GAAG,CACxB,MAAoB,EACpB,cAA4D,EAC9D,EAAE;IACA,OAAO;QACH,KAAK,EAAE,KAAK,EAAE,GAAG,IAAU,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAA,YAAI,EAAC,IAAA,2BAAmB,EAAC,MAAM,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC,EAAE,6BAAqB,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7H,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACxF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;oBAC/B,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;oBACjD,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;oBACjD,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AArBW,QAAA,YAAY,gBAqBvB"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import express, { Express } from "express";
|
|
2
|
-
export declare const registerMiddlewares: (app: Express) => express.Express;
|
|
2
|
+
export declare const registerMiddlewares: (corsOrigins: string[]) => (app: Express) => express.Express;
|
|
3
3
|
export declare const registerErrorHandling: (app: Express) => express.Express;
|
|
4
4
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAG3C,eAAO,MAAM,mBAAmB,GAAI,aAAa,MAAM,EAAE,MAAM,KAAK,OAAO,oBAS1E,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,KAAK,OAAO,oBAGjD,CAAA"}
|
package/dist/utils.js
CHANGED
|
@@ -4,14 +4,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.registerErrorHandling = exports.registerMiddlewares = void 0;
|
|
7
|
-
const cors_1 = __importDefault(require("cors"));
|
|
8
7
|
const body_parser_1 = __importDefault(require("body-parser"));
|
|
8
|
+
const cors_1 = __importDefault(require("cors"));
|
|
9
|
+
const cookie_parser_1 = __importDefault(require("cookie-parser"));
|
|
9
10
|
const express_1 = __importDefault(require("express"));
|
|
10
11
|
const decorators_1 = require("./decorators");
|
|
11
|
-
const registerMiddlewares = (app) => {
|
|
12
|
-
app.use((0, cors_1.default)(
|
|
12
|
+
const registerMiddlewares = (corsOrigins) => (app) => {
|
|
13
|
+
app.use((0, cors_1.default)({
|
|
14
|
+
origin: corsOrigins,
|
|
15
|
+
credentials: true
|
|
16
|
+
}));
|
|
13
17
|
app.use(express_1.default.json());
|
|
14
18
|
app.use(body_parser_1.default.urlencoded({ extended: true }));
|
|
19
|
+
app.use((0, cookie_parser_1.default)());
|
|
15
20
|
return app;
|
|
16
21
|
};
|
|
17
22
|
exports.registerMiddlewares = registerMiddlewares;
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAqC;AACrC,gDAAwB;AACxB,kEAAyC;AACzC,sDAA2C;AAC3C,6CAAmD;AAE5C,MAAM,mBAAmB,GAAG,CAAC,WAAqB,EAAE,EAAE,CAAC,CAAC,GAAY,EAAE,EAAE;IAC3E,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC;QACT,MAAM,EAAE,WAAW;QACnB,WAAW,EAAE,IAAI;KACpB,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,CAAC,IAAA,uBAAY,GAAE,CAAC,CAAC;IACxB,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AATW,QAAA,mBAAmB,uBAS9B;AAEK,MAAM,qBAAqB,GAAG,CAAC,GAAY,EAAE,EAAE;IAClD,GAAG,CAAC,GAAG,CAAC,gCAAmB,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACf,CAAC,CAAA;AAHY,QAAA,qBAAqB,yBAGjC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ido_kawaz/server-framework",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "Server framework library for Kawaz Plus services",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -25,11 +25,13 @@
|
|
|
25
25
|
"author": "",
|
|
26
26
|
"license": "MIT",
|
|
27
27
|
"dependencies": {
|
|
28
|
+
"@types/cookie-parser": "^1.4.10",
|
|
28
29
|
"@types/cors": "^2.8.19",
|
|
29
30
|
"@types/express": "^5.0.6",
|
|
30
31
|
"@types/multer": "^2.0.0",
|
|
31
32
|
"@types/ramda": "^0.31.1",
|
|
32
33
|
"body-parser": "^2.2.2",
|
|
34
|
+
"cookie-parser": "^1.4.7",
|
|
33
35
|
"cors": "^2.8.6",
|
|
34
36
|
"express": "^5.2.1",
|
|
35
37
|
"http-status-codes": "^2.3.0",
|