@next-core/brick-container 3.5.12 → 3.5.14

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/brick-container",
3
- "version": "3.5.12",
3
+ "version": "3.5.14",
4
4
  "description": "Brick Container Server",
5
5
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/brick-container",
6
6
  "license": "GPL-3.0",
@@ -27,7 +27,7 @@
27
27
  "test:ci": "cross-env NODE_ENV='test' CI=true test-next"
28
28
  },
29
29
  "dependencies": {
30
- "@next-core/serve-helpers": "^1.2.0",
30
+ "@next-core/serve-helpers": "^1.2.1",
31
31
  "body-parser": "^1.20.1",
32
32
  "chalk": "^4.1.2",
33
33
  "chokidar": "^3.5.3",
@@ -45,11 +45,11 @@
45
45
  "@next-api-sdk/api-gateway-sdk": "^1.1.0",
46
46
  "@next-api-sdk/micro-app-standalone-sdk": "^1.1.0",
47
47
  "@next-core/build-next-bricks": "^1.13.4",
48
- "@next-core/easyops-runtime": "^0.6.15",
48
+ "@next-core/easyops-runtime": "^0.6.16",
49
49
  "@next-core/http": "^1.0.8",
50
50
  "@next-core/i18n": "^1.0.24",
51
- "@next-core/loader": "^1.3.7",
52
- "@next-core/runtime": "^1.20.1",
51
+ "@next-core/loader": "^1.4.0",
52
+ "@next-core/runtime": "^1.20.2",
53
53
  "@next-core/test-next": "^1.0.8",
54
54
  "@next-core/theme": "^1.1.1",
55
55
  "@next-core/types": "^1.6.0",
@@ -64,5 +64,5 @@
64
64
  "@next-core/runtime": "*",
65
65
  "@next-core/utils": "*"
66
66
  },
67
- "gitHead": "f373a88e8250f7e2ad3cee5a420f55c09ad1463b"
67
+ "gitHead": "64ca61da811c961df94c48e65d65ef3ff786350c"
68
68
  }
package/serve/env.js CHANGED
@@ -95,14 +95,20 @@ export async function getEnv(rootDir, runtimeFlags) {
95
95
  ...runtimeFlags,
96
96
  };
97
97
 
98
+ let localSettings, localMocks;
99
+
98
100
  let brickFolders = ["node_modules/@next-bricks", "node_modules/@bricks"];
99
101
  const devConfigMjs = path.join(rootDir, "dev.config.mjs");
100
102
  let configuredBrickFolders = false;
101
103
  if (existsSync(devConfigMjs)) {
102
104
  const devConfig = (await import(devConfigMjs)).default;
103
- if (devConfig && Array.isArray(devConfig.brickFolders)) {
104
- brickFolders = devConfig.brickFolders;
105
- configuredBrickFolders = true;
105
+ if (devConfig) {
106
+ if (Array.isArray(devConfig.brickFolders)) {
107
+ brickFolders = devConfig.brickFolders;
108
+ configuredBrickFolders = true;
109
+ }
110
+ localSettings = devConfig.settings;
111
+ localMocks = devConfig.mocks;
106
112
  }
107
113
  }
108
114
 
@@ -132,6 +138,7 @@ export async function getEnv(rootDir, runtimeFlags) {
132
138
  ).flat(),
133
139
  cookieSameSiteNone: flags.cookieSameSiteNone,
134
140
  liveReload: flags.liveReload,
141
+ localSettings,
135
142
  port: Number(flags.port),
136
143
  wsPort: Number(flags.wsPort),
137
144
  server: getServerPath(flags.server),
@@ -139,6 +146,11 @@ export async function getEnv(rootDir, runtimeFlags) {
139
146
  verbose: flags.verbose,
140
147
  };
141
148
 
149
+ env.localMocks = localMocks?.map((mock) => ({
150
+ path: env.baseHref,
151
+ middleware: mock,
152
+ }));
153
+
142
154
  if (env.sizeCheck) {
143
155
  env.localMicroApps.push(getSizeCheckApp().id);
144
156
  }
@@ -148,20 +160,29 @@ export async function getEnv(rootDir, runtimeFlags) {
148
160
  }
149
161
 
150
162
  if (configuredBrickFolders) {
151
- console.log();
152
163
  console.log("local brick folders:", env.localBrickFolders);
153
164
  }
154
165
 
166
+ if (localSettings) {
167
+ console.log("local settings: enabled");
168
+ }
169
+
170
+ if (localMocks?.length) {
171
+ console.log("local mock: enabled");
172
+ }
173
+
174
+ if (env.liveReload) {
175
+ console.log("live-reload: enabled");
176
+ }
177
+
155
178
  const validLocalBricks = await getLocalBrickPackageNames(
156
179
  env.localBrickFolders,
157
180
  env.localBricks
158
181
  );
159
182
 
160
- console.log();
161
183
  console.log("local brick packages:", validLocalBricks);
162
184
 
163
185
  if (env.localMicroApps.length > 0) {
164
- console.log();
165
186
  console.log("local micro-apps:", env.localMicroApps);
166
187
  }
167
188
 
@@ -181,11 +202,6 @@ export async function getEnv(rootDir, runtimeFlags) {
181
202
  env.useRemote || !env.useLocalContainer ? env.server : "N/A"
182
203
  );
183
204
 
184
- console.log(
185
- chalk.bold.cyan("live-reload:"),
186
- env.liveReload ? chalk.bgGreen("enabled") : chalk.bgGrey("disabled")
187
- );
188
-
189
205
  return env;
190
206
  }
191
207
 
package/serve/getProxy.js CHANGED
@@ -88,6 +88,28 @@ export default function getProxy(env, getRawIndexHtml) {
88
88
  return JSON.stringify(result);
89
89
  }
90
90
 
91
+ if (
92
+ env.localSettings &&
93
+ req.path === "/next/api/v1/runtime_standalone"
94
+ ) {
95
+ const content = responseBuffer.toString("utf-8");
96
+ const result = JSON.parse(content);
97
+ const { data } = result;
98
+
99
+ const { featureFlags, homepage, brand, misc } = env.localSettings;
100
+ data.featureFlags ??= {};
101
+ data.brand ??= {};
102
+ data.misc ??= {};
103
+ Object.assign(data.settings.featureFlags, featureFlags);
104
+ Object.assign(data.settings.brand, brand);
105
+ Object.assign(data.settings.misc, misc);
106
+ if (homepage) {
107
+ data.settings.homepage = homepage;
108
+ }
109
+
110
+ return JSON.stringify(result);
111
+ }
112
+
91
113
  const appId = getAppIdFromBootstrapPath(req.path);
92
114
  if (appId) {
93
115
  if (localMicroApps.includes(appId)) {
package/serve/index.js CHANGED
@@ -35,7 +35,11 @@ if (sizeCheck) {
35
35
 
36
36
  app.use(compression());
37
37
 
38
- const middlewares = [...getPreMiddlewares(env), ...getMiddlewares(env)];
38
+ const middlewares = [
39
+ ...(env.localMocks ?? []),
40
+ ...getPreMiddlewares(env),
41
+ ...getMiddlewares(env),
42
+ ];
39
43
 
40
44
  for (const middleware of middlewares) {
41
45
  if (typeof middleware === "function") {
@@ -42,7 +42,7 @@ export function getMiddlewares(env) {
42
42
  res.send({
43
43
  code: 0,
44
44
  data: {
45
- settings: {},
45
+ settings: env.localSettings ?? {},
46
46
  },
47
47
  });
48
48
  },