@lwrjs/core 0.11.1 → 0.11.3
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/build/cjs/middleware/request-processor-middleware.cjs +1 -1
- package/build/cjs/middleware/view-middleware.cjs +19 -9
- package/build/cjs/tools/server-warmup.cjs +2 -2
- package/build/cjs/tools/static-generation.cjs +2 -2
- package/build/cjs/tools/utils/network-dispatcher.cjs +2 -2
- package/build/es/middleware/request-processor-middleware.js +1 -1
- package/build/es/middleware/view-middleware.js +20 -9
- package/build/es/tools/server-warmup.js +3 -3
- package/build/es/tools/static-generation.js +3 -3
- package/build/es/tools/utils/network-dispatcher.js +3 -3
- package/package.json +31 -31
|
@@ -34,7 +34,7 @@ function requestProcessorMiddleware(app, context) {
|
|
|
34
34
|
app.use(async (req, _res, next) => {
|
|
35
35
|
let requestClass;
|
|
36
36
|
if (req.headers) {
|
|
37
|
-
if (import_diagnostics.logger.
|
|
37
|
+
if (import_diagnostics.logger.isDebugEnabled()) {
|
|
38
38
|
for (const headerName in req.headers) {
|
|
39
39
|
import_diagnostics.logger.debug(`[request-processor-middleware] Header ${headerName}: ${req.headers[headerName]}`);
|
|
40
40
|
}
|
|
@@ -47,9 +47,9 @@ function createViewMiddleware(route, errorRoutes, context, viewHandler) {
|
|
|
47
47
|
res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_JSON().message);
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
|
-
const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment);
|
|
51
|
-
if (!
|
|
52
|
-
|
|
50
|
+
const {runtimeEnvironment, runtimeParams: defaultRuntimeParams} = req.getRuntimeContext(context.runtimeEnvironment);
|
|
51
|
+
if (!defaultRuntimeParams.environment && environmentConfig?.default) {
|
|
52
|
+
defaultRuntimeParams.environment = environmentConfig.default;
|
|
53
53
|
}
|
|
54
54
|
const viewRequest = {
|
|
55
55
|
url: req.originalUrl,
|
|
@@ -57,6 +57,12 @@ function createViewMiddleware(route, errorRoutes, context, viewHandler) {
|
|
|
57
57
|
query: req.query,
|
|
58
58
|
requestPath: req.path
|
|
59
59
|
};
|
|
60
|
+
const runtimeParams = {
|
|
61
|
+
...defaultRuntimeParams,
|
|
62
|
+
url: viewRequest.url,
|
|
63
|
+
params: viewRequest.params,
|
|
64
|
+
query: viewRequest.query
|
|
65
|
+
};
|
|
60
66
|
const resolve = req.isJsonRequest() ? viewHandler.getViewJson : viewHandler.getViewContent;
|
|
61
67
|
let viewResponse;
|
|
62
68
|
let resolvedRoute;
|
|
@@ -93,9 +99,11 @@ function createViewMiddleware(route, errorRoutes, context, viewHandler) {
|
|
|
93
99
|
if (viewResponse.headers) {
|
|
94
100
|
res.set(viewResponse.headers);
|
|
95
101
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
102
|
+
if (!res.hasHeader("cache-control")) {
|
|
103
|
+
const cacheTtl = (0, import_shared_utils.shortestTtl)(viewResponse.cache?.ttl, resolvedRoute.cache?.ttl);
|
|
104
|
+
if (cacheTtl) {
|
|
105
|
+
res.setHeader("cache-control", `public, max-age=${cacheTtl}`);
|
|
106
|
+
}
|
|
99
107
|
}
|
|
100
108
|
const status = resolvedRoute.status || viewResponse.status || 200;
|
|
101
109
|
res.status(status);
|
|
@@ -127,9 +135,11 @@ function createConfigMiddleware(routes, context, viewHandler) {
|
|
|
127
135
|
res.status(404).send(import_diagnostics.descriptions.UNRESOLVABLE.VIEW_CONFIG(url).message);
|
|
128
136
|
return;
|
|
129
137
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
138
|
+
if (!res.hasHeader("cache-control")) {
|
|
139
|
+
const cacheTtl = (0, import_shared_utils.shortestTtl)(viewResponse.cache?.ttl, route.cache?.ttl);
|
|
140
|
+
if (cacheTtl) {
|
|
141
|
+
res.setHeader("cache-control", `public, max-age=${cacheTtl}`);
|
|
142
|
+
}
|
|
133
143
|
}
|
|
134
144
|
res.status(200);
|
|
135
145
|
res.type("application/javascript");
|
|
@@ -32,8 +32,8 @@ var import_network_dispatcher = __toModule(require("./utils/network-dispatcher.c
|
|
|
32
32
|
var import_config = __toModule(require("@lwrjs/config"));
|
|
33
33
|
var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
|
|
34
34
|
async function warmupServer(config, internalRequestKey) {
|
|
35
|
-
if (
|
|
36
|
-
import_diagnostics.logger.setOptions({dedupe: new Set([
|
|
35
|
+
if (import_diagnostics.logger.isWarnEnabled()) {
|
|
36
|
+
import_diagnostics.logger.setOptions({dedupe: new Set(["warn"])});
|
|
37
37
|
}
|
|
38
38
|
import_diagnostics.logger.info("[Server Warmup] starting");
|
|
39
39
|
const {basePath, port, routes, staticSiteGenerator} = config;
|
|
@@ -40,8 +40,8 @@ var SiteGenerator = class {
|
|
|
40
40
|
async buildStaticApplication(config, dispatcher) {
|
|
41
41
|
const startTime = import_perf_hooks.performance.now();
|
|
42
42
|
import_diagnostics.logger.info("[SSG] Static Site Generation");
|
|
43
|
-
if (
|
|
44
|
-
import_diagnostics.logger.setOptions({dedupe: new Set([
|
|
43
|
+
if (import_diagnostics.logger.isWarnEnabled()) {
|
|
44
|
+
import_diagnostics.logger.setOptions({dedupe: new Set(["warn"])});
|
|
45
45
|
}
|
|
46
46
|
const {assets, basePath, rootDir, routes, staticSiteGenerator} = config;
|
|
47
47
|
if (!staticSiteGenerator.outputDir) {
|
|
@@ -73,7 +73,7 @@ var NetworkDispatcher = class {
|
|
|
73
73
|
const jsonResponse = JSON.parse(body);
|
|
74
74
|
resolve(jsonResponse);
|
|
75
75
|
} catch (err) {
|
|
76
|
-
if (import_diagnostics.logger.
|
|
76
|
+
if (import_diagnostics.logger.isDebugEnabled()) {
|
|
77
77
|
import_diagnostics.logger.warn(`[NetworkDispatcher] unexpected response body: [${method}][${lang}] ${url}: '${body}'`, err);
|
|
78
78
|
} else {
|
|
79
79
|
import_diagnostics.logger.warn(`[NetworkDispatcher] unexpected response body: [${method}][${lang}] ${url}: '${body}'`);
|
|
@@ -96,7 +96,7 @@ var NetworkDispatcher = class {
|
|
|
96
96
|
});
|
|
97
97
|
});
|
|
98
98
|
req.on("error", (err) => {
|
|
99
|
-
if (import_diagnostics.logger.
|
|
99
|
+
if (import_diagnostics.logger.isDebugEnabled()) {
|
|
100
100
|
import_diagnostics.logger.warn(`[NetworkDispatcher] Request Failed: [${method}][${lang}] ${url}`, err);
|
|
101
101
|
} else {
|
|
102
102
|
import_diagnostics.logger.warn(`[NetworkDispatcher] Request Failed: [${method}][${lang}] ${url}`);
|
|
@@ -15,7 +15,7 @@ export function requestProcessorMiddleware(app, context) {
|
|
|
15
15
|
let requestClass;
|
|
16
16
|
if (req.headers) {
|
|
17
17
|
// If debug print log all the headers
|
|
18
|
-
if (logger.
|
|
18
|
+
if (logger.isDebugEnabled()) {
|
|
19
19
|
// Loop through and print each header
|
|
20
20
|
for (const headerName in req.headers) {
|
|
21
21
|
logger.debug(`[request-processor-middleware] Header ${headerName}: ${req.headers[headerName]}`);
|
|
@@ -19,10 +19,10 @@ function createViewMiddleware(route, errorRoutes, context, viewHandler) {
|
|
|
19
19
|
res.send(descriptions.UNRESOLVABLE.INVALID_JSON().message);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
|
-
const { runtimeEnvironment, runtimeParams } = req.getRuntimeContext(context.runtimeEnvironment);
|
|
22
|
+
const { runtimeEnvironment, runtimeParams: defaultRuntimeParams } = req.getRuntimeContext(context.runtimeEnvironment);
|
|
23
23
|
// set the default environment if an environment is configured in the app config
|
|
24
|
-
if (!
|
|
25
|
-
|
|
24
|
+
if (!defaultRuntimeParams.environment && environmentConfig?.default) {
|
|
25
|
+
defaultRuntimeParams.environment = environmentConfig.default;
|
|
26
26
|
}
|
|
27
27
|
const viewRequest = {
|
|
28
28
|
url: req.originalUrl,
|
|
@@ -30,6 +30,13 @@ function createViewMiddleware(route, errorRoutes, context, viewHandler) {
|
|
|
30
30
|
query: req.query,
|
|
31
31
|
requestPath: req.path,
|
|
32
32
|
};
|
|
33
|
+
// Augment runtime params with viewRequest info
|
|
34
|
+
const runtimeParams = {
|
|
35
|
+
...defaultRuntimeParams,
|
|
36
|
+
url: viewRequest.url,
|
|
37
|
+
params: viewRequest.params,
|
|
38
|
+
query: viewRequest.query,
|
|
39
|
+
};
|
|
33
40
|
const resolve = req.isJsonRequest() ? viewHandler.getViewJson : viewHandler.getViewContent;
|
|
34
41
|
let viewResponse;
|
|
35
42
|
let resolvedRoute;
|
|
@@ -71,9 +78,11 @@ function createViewMiddleware(route, errorRoutes, context, viewHandler) {
|
|
|
71
78
|
res.set(viewResponse.headers);
|
|
72
79
|
}
|
|
73
80
|
// pick the shortest TTL between the view response and route object
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
81
|
+
if (!res.hasHeader('cache-control')) {
|
|
82
|
+
const cacheTtl = shortestTtl(viewResponse.cache?.ttl, resolvedRoute.cache?.ttl);
|
|
83
|
+
if (cacheTtl) {
|
|
84
|
+
res.setHeader('cache-control', `public, max-age=${cacheTtl}`);
|
|
85
|
+
}
|
|
77
86
|
}
|
|
78
87
|
const status = resolvedRoute.status || viewResponse.status || 200;
|
|
79
88
|
res.status(status);
|
|
@@ -108,9 +117,11 @@ function createConfigMiddleware(routes, context, viewHandler) {
|
|
|
108
117
|
return;
|
|
109
118
|
}
|
|
110
119
|
// Pick the shortest TTL between the view response and route object
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
120
|
+
if (!res.hasHeader('cache-control')) {
|
|
121
|
+
const cacheTtl = shortestTtl(viewResponse.cache?.ttl, route.cache?.ttl);
|
|
122
|
+
if (cacheTtl) {
|
|
123
|
+
res.setHeader('cache-control', `public, max-age=${cacheTtl}`);
|
|
124
|
+
}
|
|
114
125
|
}
|
|
115
126
|
res.status(200);
|
|
116
127
|
res.type('application/javascript');
|
|
@@ -2,11 +2,11 @@ import SiteGenerator from './static-generation.js';
|
|
|
2
2
|
import { skipDirCreation } from './utils/dir.js';
|
|
3
3
|
import NetworkDispatcher from './utils/network-dispatcher.js';
|
|
4
4
|
import { getRuntimeEnvironment } from '@lwrjs/config';
|
|
5
|
-
import { logger
|
|
5
|
+
import { logger } from '@lwrjs/diagnostics';
|
|
6
6
|
export async function warmupServer(config, internalRequestKey) {
|
|
7
7
|
// De-duplicate warming messages if log level is warn or info
|
|
8
|
-
if (
|
|
9
|
-
logger.setOptions({ dedupe: new Set([
|
|
8
|
+
if (logger.isWarnEnabled()) {
|
|
9
|
+
logger.setOptions({ dedupe: new Set(['warn']) });
|
|
10
10
|
}
|
|
11
11
|
logger.info('[Server Warmup] starting');
|
|
12
12
|
const { basePath, port, routes, staticSiteGenerator } = config;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { performance } from 'perf_hooks';
|
|
2
|
-
import { logger
|
|
2
|
+
import { logger } from '@lwrjs/diagnostics';
|
|
3
3
|
import { getSpecifier, getFeatureFlags, hashContent, isSelfUrl, getModuleUriPrefix, getMappingUriPrefix, isExternalUrl, mimeLookup, getViewUri, sortLocalesByFallback, } from '@lwrjs/shared-utils';
|
|
4
4
|
import { SiteMetadataImpl } from '@lwrjs/static/site-metadata';
|
|
5
5
|
import { join, dirname, extname, normalize } from 'path';
|
|
@@ -21,8 +21,8 @@ export default class SiteGenerator {
|
|
|
21
21
|
const startTime = performance.now();
|
|
22
22
|
logger.info('[SSG] Static Site Generation');
|
|
23
23
|
// De-duplicate warming messages if log level is warn or info
|
|
24
|
-
if (
|
|
25
|
-
logger.setOptions({ dedupe: new Set([
|
|
24
|
+
if (logger.isWarnEnabled()) {
|
|
25
|
+
logger.setOptions({ dedupe: new Set(['warn']) });
|
|
26
26
|
}
|
|
27
27
|
const { assets, basePath, rootDir, routes, staticSiteGenerator } = config;
|
|
28
28
|
if (!staticSiteGenerator.outputDir) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import http from 'http';
|
|
2
2
|
import https from 'https';
|
|
3
|
-
import { logger
|
|
3
|
+
import { logger } from '@lwrjs/diagnostics';
|
|
4
4
|
import { isModuleOrBundleUrl } from '@lwrjs/shared-utils';
|
|
5
5
|
export default class NetworkDispatcher {
|
|
6
6
|
constructor(port, internalRequestKey) {
|
|
@@ -47,7 +47,7 @@ export default class NetworkDispatcher {
|
|
|
47
47
|
resolve(jsonResponse);
|
|
48
48
|
}
|
|
49
49
|
catch (err) {
|
|
50
|
-
if (logger.
|
|
50
|
+
if (logger.isDebugEnabled()) {
|
|
51
51
|
logger.warn(`[NetworkDispatcher] unexpected response body: [${method}][${lang}] ${url}: '${body}'`, err);
|
|
52
52
|
}
|
|
53
53
|
else {
|
|
@@ -80,7 +80,7 @@ export default class NetworkDispatcher {
|
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
82
|
req.on('error', (err) => {
|
|
83
|
-
if (logger.
|
|
83
|
+
if (logger.isDebugEnabled()) {
|
|
84
84
|
logger.warn(`[NetworkDispatcher] Request Failed: [${method}][${lang}] ${url}`, err);
|
|
85
85
|
}
|
|
86
86
|
else {
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "0.11.
|
|
7
|
+
"version": "0.11.3",
|
|
8
8
|
"homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
@@ -39,33 +39,33 @@
|
|
|
39
39
|
"build": "tsc -b"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@lwrjs/app-service": "0.11.
|
|
43
|
-
"@lwrjs/asset-registry": "0.11.
|
|
44
|
-
"@lwrjs/asset-transformer": "0.11.
|
|
45
|
-
"@lwrjs/base-view-provider": "0.11.
|
|
46
|
-
"@lwrjs/base-view-transformer": "0.11.
|
|
47
|
-
"@lwrjs/client-modules": "0.11.
|
|
48
|
-
"@lwrjs/config": "0.11.
|
|
49
|
-
"@lwrjs/diagnostics": "0.11.
|
|
50
|
-
"@lwrjs/esbuild": "0.11.
|
|
51
|
-
"@lwrjs/fs-asset-provider": "0.11.
|
|
52
|
-
"@lwrjs/fs-watch": "0.11.
|
|
53
|
-
"@lwrjs/html-view-provider": "0.11.
|
|
54
|
-
"@lwrjs/instrumentation": "0.11.
|
|
55
|
-
"@lwrjs/loader": "0.11.
|
|
56
|
-
"@lwrjs/lwc-module-provider": "0.11.
|
|
57
|
-
"@lwrjs/markdown-view-provider": "0.11.
|
|
58
|
-
"@lwrjs/module-bundler": "0.11.
|
|
59
|
-
"@lwrjs/module-registry": "0.11.
|
|
60
|
-
"@lwrjs/npm-module-provider": "0.11.
|
|
61
|
-
"@lwrjs/nunjucks-view-provider": "0.11.
|
|
62
|
-
"@lwrjs/o11y": "0.11.
|
|
63
|
-
"@lwrjs/resource-registry": "0.11.
|
|
64
|
-
"@lwrjs/router": "0.11.
|
|
65
|
-
"@lwrjs/server": "0.11.
|
|
66
|
-
"@lwrjs/shared-utils": "0.11.
|
|
67
|
-
"@lwrjs/static": "0.11.
|
|
68
|
-
"@lwrjs/view-registry": "0.11.
|
|
42
|
+
"@lwrjs/app-service": "0.11.3",
|
|
43
|
+
"@lwrjs/asset-registry": "0.11.3",
|
|
44
|
+
"@lwrjs/asset-transformer": "0.11.3",
|
|
45
|
+
"@lwrjs/base-view-provider": "0.11.3",
|
|
46
|
+
"@lwrjs/base-view-transformer": "0.11.3",
|
|
47
|
+
"@lwrjs/client-modules": "0.11.3",
|
|
48
|
+
"@lwrjs/config": "0.11.3",
|
|
49
|
+
"@lwrjs/diagnostics": "0.11.3",
|
|
50
|
+
"@lwrjs/esbuild": "0.11.3",
|
|
51
|
+
"@lwrjs/fs-asset-provider": "0.11.3",
|
|
52
|
+
"@lwrjs/fs-watch": "0.11.3",
|
|
53
|
+
"@lwrjs/html-view-provider": "0.11.3",
|
|
54
|
+
"@lwrjs/instrumentation": "0.11.3",
|
|
55
|
+
"@lwrjs/loader": "0.11.3",
|
|
56
|
+
"@lwrjs/lwc-module-provider": "0.11.3",
|
|
57
|
+
"@lwrjs/markdown-view-provider": "0.11.3",
|
|
58
|
+
"@lwrjs/module-bundler": "0.11.3",
|
|
59
|
+
"@lwrjs/module-registry": "0.11.3",
|
|
60
|
+
"@lwrjs/npm-module-provider": "0.11.3",
|
|
61
|
+
"@lwrjs/nunjucks-view-provider": "0.11.3",
|
|
62
|
+
"@lwrjs/o11y": "0.11.3",
|
|
63
|
+
"@lwrjs/resource-registry": "0.11.3",
|
|
64
|
+
"@lwrjs/router": "0.11.3",
|
|
65
|
+
"@lwrjs/server": "0.11.3",
|
|
66
|
+
"@lwrjs/shared-utils": "0.11.3",
|
|
67
|
+
"@lwrjs/static": "0.11.3",
|
|
68
|
+
"@lwrjs/view-registry": "0.11.3",
|
|
69
69
|
"chokidar": "^3.5.3",
|
|
70
70
|
"esbuild": "^0.9.7",
|
|
71
71
|
"fs-extra": "^11.1.1",
|
|
@@ -75,11 +75,11 @@
|
|
|
75
75
|
"ws": "^8.8.1"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
|
-
"@lwrjs/types": "0.11.
|
|
78
|
+
"@lwrjs/types": "0.11.3",
|
|
79
79
|
"@types/ws": "^8.5.3"
|
|
80
80
|
},
|
|
81
81
|
"peerDependencies": {
|
|
82
|
-
"lwc": "2.x
|
|
82
|
+
"lwc": ">= 2.x"
|
|
83
83
|
},
|
|
84
84
|
"engines": {
|
|
85
85
|
"node": ">=16.0.0"
|
|
@@ -87,5 +87,5 @@
|
|
|
87
87
|
"volta": {
|
|
88
88
|
"extends": "../../../package.json"
|
|
89
89
|
},
|
|
90
|
-
"gitHead": "
|
|
90
|
+
"gitHead": "e420814f37150c71850f7f46f20372a33e1bb6d8"
|
|
91
91
|
}
|