Skip to content

Commit 70e4d4a

Browse files
committed
feat: 🎸 add cors options to widgetServer configuration
1 parent 648af1a commit 70e4d4a

File tree

5 files changed

+27
-7
lines changed

5 files changed

+27
-7
lines changed

Diff for: package-lock.json

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: packages/cli/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"dependencies": {
4848
"@esmj/emitter": "^0.4.1",
4949
"@esmj/observable": "^0.1.1",
50+
"@types/cors": "^2.8.17",
5051
"chalk": "^5.3.0",
5152
"commander": "^12.0.0",
5253
"compression": "^1.7.4",

Diff for: packages/cli/src/merkurConfig.mjs

+10
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,16 @@ emitter.on(
255255
buildFolder: path.resolve(cliConfig.projectFolder, cliConfig.buildFolder),
256256
clusters: cliConfig.command === COMMAND_NAME.DEV ? 0 : 3,
257257
...merkurConfig.widgetServer,
258+
cors: {
259+
options: {
260+
origin: [
261+
new RegExp('^https?://localhost(:[0-9]+)?$'),
262+
new RegExp('^https?://127\\.0\\.0\\.1(:[0-9]+)?$'),
263+
],
264+
methods: ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE', 'OPTIONS'],
265+
...merkurConfig.widgetServer?.cors?.options,
266+
},
267+
},
258268
};
259269

260270
const { origin, host, protocol } = merkurConfig.widgetServer;

Diff for: packages/cli/types.d.ts

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { BuildOptions } from 'esbuild';
22
import type { Request, Response } from '@types/express';
3+
import type { CorsOptions } from '@types/cors';
34

45
export interface CLIConfig {
56
environment: string;
@@ -68,6 +69,9 @@ export interface WidgetServer {
6869
staticPath: string;
6970
buildFolder: string;
7071
clusters: number;
72+
cors: {
73+
options: CorsOptions;
74+
};
7175
}
7276

7377
export interface Constant {

Diff for: packages/create-widget/template/server/app.js

+2-7
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const morgan = require('morgan');
88
const { resolveConfig } = require('@merkur/cli/server');
99

1010
const {
11-
merkurConfig: { widgetServer, devServer },
11+
merkurConfig: { widgetServer },
1212
} = resolveConfig();
1313

1414
const {
@@ -40,12 +40,7 @@ app
4040
crossOriginEmbedderPolicy: false,
4141
}),
4242
)
43-
.use(
44-
cors({
45-
origin: devServer.origin,
46-
optionsSuccessStatus: 200, // some legacy browsers (IE11, various SmartTVs) choke on 204
47-
}),
48-
)
43+
.use(cors(widgetServer.cors.options))
4944
.use(compression())
5045
.use(widgetServer.staticPath, express.static(widgetServer.staticFolder))
5146
.use(

0 commit comments

Comments
 (0)