react-on-rails-pro-node-renderer 16.5.0 → 16.5.1
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/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/worker/handleRenderRequest.d.ts +1 -0
- package/lib/worker/handleRenderRequest.d.ts.map +1 -1
- package/lib/worker/handleRenderRequest.js +13 -9
- package/lib/worker/handleRenderRequest.js.map +1 -1
- package/lib/worker.d.ts.map +1 -1
- package/lib/worker.js +54 -70
- package/lib/worker.js.map +1 -1
- package/package.json +2 -2
- package/src/worker/handleRenderRequest.ts +14 -11
- package/src/worker.ts +67 -85
- package/tests/uploadRaceCondition.test.ts +9 -9
- package/tests/worker.test.ts +27 -2
|
@@ -10,6 +10,7 @@ export type ProvidedNewBundle = {
|
|
|
10
10
|
timestamp: string | number;
|
|
11
11
|
bundle: Asset;
|
|
12
12
|
};
|
|
13
|
+
export declare function handleNewBundlesProvided(requestContext: string, providedNewBundles: ProvidedNewBundle[], assetsToCopy: Asset[] | null | undefined): Promise<ResponseResult | undefined>;
|
|
13
14
|
/**
|
|
14
15
|
* Creates the result for the Fastify server to use.
|
|
15
16
|
* @returns Promise where the result contains { status, data, headers } to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleRenderRequest.d.ts","sourceRoot":"","sources":["../../src/worker/handleRenderRequest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EACL,KAAK,EAKL,cAAc,EAKf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;
|
|
1
|
+
{"version":3,"file":"handleRenderRequest.d.ts","sourceRoot":"","sources":["../../src/worker/handleRenderRequest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EACL,KAAK,EAKL,cAAc,EAKf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;AA2HF,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,SAAS,GACvC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAuBrC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,EAAE;IACD,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,0BAA0B,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACjD,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,GAAG,OAAO,CAAC,cAAc,CAAC,CAkE1B"}
|
|
@@ -9,6 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
9
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.handleNewBundlesProvided = handleNewBundlesProvided;
|
|
12
13
|
exports.handleRenderRequest = handleRenderRequest;
|
|
13
14
|
const cluster_1 = __importDefault(require("cluster"));
|
|
14
15
|
const path_1 = __importDefault(require("path"));
|
|
@@ -57,7 +58,7 @@ async function prepareResult(renderingRequest, bundleFilePathPerTimestamp) {
|
|
|
57
58
|
* @param renderingRequest
|
|
58
59
|
* @param assetsToCopy might be null
|
|
59
60
|
*/
|
|
60
|
-
async function handleNewBundleProvided(
|
|
61
|
+
async function handleNewBundleProvided(requestContext, providedNewBundle, assetsToCopy) {
|
|
61
62
|
const bundleFilePathPerTimestamp = (0, utils_js_1.getRequestBundleFilePath)(providedNewBundle.timestamp);
|
|
62
63
|
const bundleDirectory = path_1.default.dirname(bundleFilePathPerTimestamp);
|
|
63
64
|
await (0, promises_1.mkdir)(bundleDirectory, { recursive: true });
|
|
@@ -69,27 +70,30 @@ async function handleNewBundleProvided(renderingRequest, providedNewBundle, asse
|
|
|
69
70
|
lockfileName = name;
|
|
70
71
|
lockAcquired = wasLockAcquired;
|
|
71
72
|
if (!wasLockAcquired) {
|
|
72
|
-
const msg = (0, utils_js_1.formatExceptionMessage)(
|
|
73
|
+
const msg = (0, utils_js_1.formatExceptionMessage)(requestContext, errorMessage, `Failed to acquire lock ${lockfileName}. Worker: ${(0, utils_js_1.workerIdLabel)()}.`);
|
|
73
74
|
return (0, utils_js_1.errorResponseResult)(msg);
|
|
74
75
|
}
|
|
75
76
|
try {
|
|
76
77
|
log_js_1.default.info(`Moving uploaded file ${providedNewBundle.bundle.savedFilePath} to ${bundleFilePathPerTimestamp}`);
|
|
77
78
|
await (0, utils_js_1.moveUploadedAsset)(providedNewBundle.bundle, bundleFilePathPerTimestamp);
|
|
78
|
-
if (assetsToCopy) {
|
|
79
|
-
await (0, utils_js_1.copyUploadedAssets)(assetsToCopy, bundleDirectory);
|
|
80
|
-
}
|
|
81
79
|
log_js_1.default.info(`Completed moving uploaded file ${providedNewBundle.bundle.savedFilePath} to ${bundleFilePathPerTimestamp}`);
|
|
82
80
|
}
|
|
83
81
|
catch (error) {
|
|
84
82
|
const fileExists = await (0, fileExistsAsync_js_1.default)(bundleFilePathPerTimestamp);
|
|
85
83
|
if (!fileExists) {
|
|
86
|
-
const msg = (0, utils_js_1.formatExceptionMessage)(
|
|
84
|
+
const msg = (0, utils_js_1.formatExceptionMessage)(requestContext, error, `Unexpected error when moving the bundle from ${providedNewBundle.bundle.savedFilePath} \
|
|
87
85
|
to ${bundleFilePathPerTimestamp})`);
|
|
88
86
|
log_js_1.default.error(msg);
|
|
89
87
|
return (0, utils_js_1.errorResponseResult)(msg);
|
|
90
88
|
}
|
|
91
89
|
log_js_1.default.info('File exists when trying to overwrite bundle %s. Assuming bundle written by other thread', bundleFilePathPerTimestamp);
|
|
92
90
|
}
|
|
91
|
+
// Always copy assets to the bundle directory — even if the bundle was
|
|
92
|
+
// already present (e.g., from a prior upload or another worker).
|
|
93
|
+
// copyUploadedAssets uses overwrite:true, so this is idempotent.
|
|
94
|
+
if (assetsToCopy) {
|
|
95
|
+
await (0, utils_js_1.copyUploadedAssets)(assetsToCopy, bundleDirectory);
|
|
96
|
+
}
|
|
93
97
|
return undefined;
|
|
94
98
|
}
|
|
95
99
|
finally {
|
|
@@ -99,15 +103,15 @@ to ${bundleFilePathPerTimestamp})`);
|
|
|
99
103
|
await (0, locks_js_1.unlock)(lockfileName);
|
|
100
104
|
}
|
|
101
105
|
catch (error) {
|
|
102
|
-
const msg = (0, utils_js_1.formatExceptionMessage)(
|
|
106
|
+
const msg = (0, utils_js_1.formatExceptionMessage)(requestContext, error, `Error unlocking ${lockfileName} from worker ${(0, utils_js_1.workerIdLabel)()}.`);
|
|
103
107
|
log_js_1.default.warn(msg);
|
|
104
108
|
}
|
|
105
109
|
}
|
|
106
110
|
}
|
|
107
111
|
}
|
|
108
|
-
async function handleNewBundlesProvided(
|
|
112
|
+
async function handleNewBundlesProvided(requestContext, providedNewBundles, assetsToCopy) {
|
|
109
113
|
log_js_1.default.info('Worker received new bundles: %s', providedNewBundles);
|
|
110
|
-
const handlingPromises = providedNewBundles.map((providedNewBundle) => handleNewBundleProvided(
|
|
114
|
+
const handlingPromises = providedNewBundles.map((providedNewBundle) => handleNewBundleProvided(requestContext, providedNewBundle, assetsToCopy));
|
|
111
115
|
// Defensive: use allSettled so that if handleNewBundleProvided ever throws
|
|
112
116
|
// unexpectedly, all in-flight operations still complete before the handler
|
|
113
117
|
// returns and the onResponse hook deletes req.uploadDir. Currently
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleRenderRequest.js","sourceRoot":"","sources":["../../src/worker/handleRenderRequest.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;
|
|
1
|
+
{"version":3,"file":"handleRenderRequest.js","sourceRoot":"","sources":["../../src/worker/handleRenderRequest.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAsJH,4DA2BC;AAOD,kDAgFC;AAtQD,sDAA8B;AAC9B,gDAAwB;AACxB,0CAAoC;AACpC,iDAAkD;AAClD,sFAA2D;AAC3D,8DAAmC;AACnC,iDAW4B;AAC5B,iEAAuD;AAEvD,mCAAkE;AAOlE,KAAK,UAAU,aAAa,CAC1B,gBAAwB,EACxB,0BAAkC;IAElC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,eAAO,EAAC,gBAAgB,EAAE,0BAA0B,EAAE,iBAAO,CAAC,CAAC;QAEpF,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACpE,gBAAgB,GAAG,IAAA,iCAAsB,EAAC,gBAAgB,EAAE,KAAK,EAAE,kCAAkC,CAAC,CAAC;QACzG,CAAC;aAAM,IAAI,IAAA,8BAAmB,EAAC,MAAM,CAAC,EAAE,CAAC;YACvC,CAAC,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,IAAA,8BAAmB,EAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,IAAA,2BAAgB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,EAAE,eAAe,EAAE,0BAA0B,EAAE;gBACxD,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,MAAM;aACf,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,EAAE,eAAe,EAAE,0BAA0B,EAAE;YACxD,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,MAAM;SACb,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,gBAAgB,GAAG,IAAA,iCAAsB,EAAC,gBAAgB,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAC;QACxG,OAAO,IAAA,8BAAmB,EAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,uBAAuB,CACpC,cAAsB,EACtB,iBAAoC,EACpC,YAAwC;IAExC,MAAM,0BAA0B,GAAG,IAAA,mCAAwB,EAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzF,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACjE,MAAM,IAAA,gBAAK,EAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,gBAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,0BAA0B,CAAC,CAAC;IAEvE,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,YAAgC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,eAAI,EAAC,0BAA0B,CAAC,CAAC;QACrG,YAAY,GAAG,IAAI,CAAC;QACpB,YAAY,GAAG,eAAe,CAAC;QAE/B,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAA,iCAAsB,EAChC,cAAc,EACd,YAAY,EACZ,0BAA0B,YAAY,aAAa,IAAA,wBAAa,GAAE,GAAG,CACtE,CAAC;YACF,OAAO,IAAA,8BAAmB,EAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC;YACH,gBAAG,CAAC,IAAI,CACN,wBAAwB,iBAAiB,CAAC,MAAM,CAAC,aAAa,OAAO,0BAA0B,EAAE,CAClG,CAAC;YACF,MAAM,IAAA,4BAAiB,EAAC,iBAAiB,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;YAC9E,gBAAG,CAAC,IAAI,CACN,kCAAkC,iBAAiB,CAAC,MAAM,CAAC,aAAa,OAAO,0BAA0B,EAAE,CAC5G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,MAAM,IAAA,4BAAe,EAAC,0BAA0B,CAAC,CAAC;YACrE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,IAAA,iCAAsB,EAChC,cAAc,EACd,KAAK,EACL,gDAAgD,iBAAiB,CAAC,MAAM,CAAC,aAAa;KAC3F,0BAA0B,GAAG,CACzB,CAAC;gBACF,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,OAAO,IAAA,8BAAmB,EAAC,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,gBAAG,CAAC,IAAI,CACN,yFAAyF,EACzF,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,iEAAiE;QACjE,iEAAiE;QACjE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAA,6BAAkB,EAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;YACjC,gBAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,YAAY,EAAE,IAAA,wBAAa,GAAE,CAAC,CAAC;YAC7E,IAAI,CAAC;gBACH,MAAM,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,IAAA,iCAAsB,EAChC,cAAc,EACd,KAAK,EACL,mBAAmB,YAAY,gBAAgB,IAAA,wBAAa,GAAE,GAAG,CAClE,CAAC;gBACF,gBAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,cAAsB,EACtB,kBAAuC,EACvC,YAAwC;IAExC,gBAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAC;IAEhE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,EAAE,CACpE,uBAAuB,CAAC,cAAc,EAAE,iBAAiB,EAAE,YAAY,CAAC,CACzE,CAAC;IACF,2EAA2E;IAC3E,2EAA2E;IAC3E,mEAAmE;IACnE,4EAA4E;IAC5E,0BAA0B;IAC1B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC9F,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAY,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,8EAA8E;IAC9E,uEAAuE;IACvE,MAAM,OAAO,GAAG,OAAO;SACpB,MAAM,CAAC,CAAC,CAAC,EAA2D,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;SAChG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,mBAAmB,CAAC,EACxC,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,YAAY,EACZ,cAAc,GAQf;IACC,IAAI,CAAC;QACH,gFAAgF;QAChF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CACnC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,mCAAwB,CAAC,CAAC,CAChG,CAAC;QACF,MAAM,mBAAmB,GAAG,IAAA,mCAAwB,EAAC,eAAe,CAAC,CAAC;QAEtE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,4BAAS,GAAE,CAAC;QAEtC,IAAI,kBAAkB,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,EAAE,eAAe,EAAE,gDAAgD,EAAE;gBAC9E,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,qDAAqD,aAAa,wFAAwF;aACjK,CAAC;QACJ,CAAC;QAED,wDAAwD;QACxD,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAA,6BAAqB,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,MAAM,aAAa,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;QACpE,CAAC;QAED,oCAAoC;QACpC,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC;YAClG,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,MAAM,cAAc,GAAG,CACrB,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YAC/E,MAAM,cAAc,GAAG,IAAA,mCAAwB,EAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,MAAM,IAAA,4BAAe,EAAC,cAAc,CAAC,CAAC;YACzD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACvC,CAAC,CAAC,CACH,CACF,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;QAE5C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5E,gBAAG,CAAC,IAAI,CAAC,YAAY,kBAAkB,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,OAAO;gBACL,OAAO,EAAE,EAAE,eAAe,EAAE,gDAAgD,EAAE;gBAC9E,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,oBAAoB;aAC3B,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,yEAAyE;QACzE,gBAAG,CAAC,IAAI,CAAC,8CAA8C,EAAE,mBAAmB,EAAE,IAAA,wBAAa,GAAE,CAAC,CAAC;QAC/F,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAA,eAAO,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAEvF,OAAO,MAAM,aAAa,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,IAAA,iCAAsB,EAChC,gBAAgB,EAChB,KAAK,EACL,+CAA+C,CAChD,CAAC;QACF,OAAO,IAAA,8BAAmB,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
|
package/lib/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EAAe,MAAM,EAAa,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EAAe,MAAM,EAAa,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,mBAAmB,CAAC;AASvF,OAAO,EAKL,KAAK,EAEN,MAAM,mBAAmB,CAAC;AAU3B,OAAO,QAAQ,oBAAoB,CAAC;IAClC,UAAU,aAAa;QAErB,KAAK,EAAE,KAAK,CAAC;KACd;CACF;AAED,OAAO,QAAQ,SAAS,CAAC;IAEvB,UAAU,cAAc;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB;CACF;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;AAInE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,qBAAqB,QAErE;AAqED,eAAO,MAAM,YAAY,YAExB,CAAC;AAkBF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;;EAgTlD"}
|
package/lib/worker.js
CHANGED
|
@@ -59,7 +59,6 @@ const authHandler_js_1 = __importDefault(require("./worker/authHandler.js"));
|
|
|
59
59
|
const handleRenderRequest_js_1 = require("./worker/handleRenderRequest.js");
|
|
60
60
|
const handleGracefulShutdown_js_1 = __importDefault(require("./worker/handleGracefulShutdown.js"));
|
|
61
61
|
const utils_js_1 = require("./shared/utils.js");
|
|
62
|
-
const locks_js_1 = require("./shared/locks.js");
|
|
63
62
|
const tracing_js_1 = require("./shared/tracing.js");
|
|
64
63
|
const fastifyConfigFunctions = [];
|
|
65
64
|
/**
|
|
@@ -95,6 +94,39 @@ function assertAsset(value, key) {
|
|
|
95
94
|
throw new Error(`React On Rails Error: Expected an asset for key: ${key}`);
|
|
96
95
|
}
|
|
97
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Parses the multipart form body to separate bundle files from shared assets.
|
|
99
|
+
* Used by both the render and /upload-assets endpoints to avoid duplicating
|
|
100
|
+
* bundle-vs-asset classification logic.
|
|
101
|
+
*
|
|
102
|
+
* @param body The parsed multipart request body.
|
|
103
|
+
* @param primaryBundleTimestamp If provided, a field with key `"bundle"` is
|
|
104
|
+
* treated as a bundle for this timestamp (render endpoint convention).
|
|
105
|
+
*/
|
|
106
|
+
function extractBundlesAndAssets(body, primaryBundleTimestamp) {
|
|
107
|
+
const providedNewBundles = [];
|
|
108
|
+
const assetsToCopy = [];
|
|
109
|
+
Object.entries(body).forEach(([key, value]) => {
|
|
110
|
+
if (key === 'bundle' && primaryBundleTimestamp != null) {
|
|
111
|
+
assertAsset(value, key);
|
|
112
|
+
providedNewBundles.push({ timestamp: primaryBundleTimestamp, bundle: value });
|
|
113
|
+
}
|
|
114
|
+
else if (key.startsWith('bundle_')) {
|
|
115
|
+
const timestamp = key.slice('bundle_'.length);
|
|
116
|
+
if (!timestamp) {
|
|
117
|
+
log_js_1.default.warn('Received form field with key "bundle_" but no hash suffix — possible bug in the Ruby client');
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
assertAsset(value, key);
|
|
121
|
+
providedNewBundles.push({ timestamp, bundle: value });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else if (isAsset(value)) {
|
|
125
|
+
assetsToCopy.push(value);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
return { providedNewBundles, assetsToCopy };
|
|
129
|
+
}
|
|
98
130
|
// Remove after this issue is resolved: https://github.com/fastify/light-my-request/issues/315
|
|
99
131
|
let useHttp2 = true;
|
|
100
132
|
// Call before any test using `app.inject()`
|
|
@@ -232,21 +264,7 @@ function run(config) {
|
|
|
232
264
|
// }
|
|
233
265
|
const { renderingRequest } = req.body;
|
|
234
266
|
const { bundleTimestamp } = req.params;
|
|
235
|
-
const providedNewBundles =
|
|
236
|
-
const assetsToCopy = [];
|
|
237
|
-
Object.entries(req.body).forEach(([key, value]) => {
|
|
238
|
-
if (key === 'bundle') {
|
|
239
|
-
assertAsset(value, key);
|
|
240
|
-
providedNewBundles.push({ timestamp: bundleTimestamp, bundle: value });
|
|
241
|
-
}
|
|
242
|
-
else if (key.startsWith('bundle_')) {
|
|
243
|
-
assertAsset(value, key);
|
|
244
|
-
providedNewBundles.push({ timestamp: key.replace('bundle_', ''), bundle: value });
|
|
245
|
-
}
|
|
246
|
-
else if (isAsset(value)) {
|
|
247
|
-
assetsToCopy.push(value);
|
|
248
|
-
}
|
|
249
|
-
});
|
|
267
|
+
const { providedNewBundles, assetsToCopy } = extractBundlesAndAssets(req.body, bundleTimestamp);
|
|
250
268
|
try {
|
|
251
269
|
const dependencyBundleTimestamps = extractBodyArrayField(req.body, 'dependencyBundleTimestamps');
|
|
252
270
|
await (0, tracing_js_1.trace)(async (context) => {
|
|
@@ -274,74 +292,40 @@ function run(config) {
|
|
|
274
292
|
});
|
|
275
293
|
// There can be additional files that might be required at the runtime.
|
|
276
294
|
// Since the remote renderer doesn't contain any assets, they must be uploaded manually.
|
|
295
|
+
// Bundle files use the form key convention "bundle_<hash>" and are placed in
|
|
296
|
+
// their own directory; remaining assets are copied to every bundle directory.
|
|
277
297
|
app.post('/upload-assets', async (req, res) => {
|
|
278
298
|
if (!(await requestPrechecks(req, res))) {
|
|
279
299
|
return;
|
|
280
300
|
}
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
const errorMsg = 'No targetBundles provided. As of protocol version 2.0.0, targetBundles is required.';
|
|
301
|
+
const { providedNewBundles, assetsToCopy } = extractBundlesAndAssets(req.body);
|
|
302
|
+
if (providedNewBundles.length === 0) {
|
|
303
|
+
const errorMsg = 'No bundle_<hash> fields provided. ' +
|
|
304
|
+
'The /upload-assets endpoint requires at least one bundle file with a "bundle_<hash>" form key.';
|
|
286
305
|
log_js_1.default.error(errorMsg);
|
|
287
306
|
await setResponse((0, utils_js_1.errorResponseResult)(errorMsg), res);
|
|
288
307
|
return;
|
|
289
308
|
}
|
|
290
|
-
const
|
|
291
|
-
const
|
|
309
|
+
const bundleNames = providedNewBundles.map((b) => b.bundle.filename);
|
|
310
|
+
const assetNames = assetsToCopy.map((a) => a.filename);
|
|
311
|
+
const taskDescription = `Uploading bundles [${bundleNames.join(', ')}] with assets [${assetNames.join(', ')}]`;
|
|
292
312
|
log_js_1.default.info(taskDescription);
|
|
293
313
|
try {
|
|
294
|
-
//
|
|
295
|
-
//
|
|
296
|
-
// are mutually exclusive.
|
|
297
|
-
//
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
const bundleDirectory = (0, utils_js_1.getBundleDirectory)(bundleTimestamp);
|
|
303
|
-
await (0, promises_1.mkdir)(bundleDirectory, { recursive: true });
|
|
304
|
-
const bundleFilePath = (0, utils_js_1.getRequestBundleFilePath)(bundleTimestamp);
|
|
305
|
-
const { lockfileName, wasLockAcquired, errorMessage } = await (0, locks_js_1.lock)(bundleFilePath);
|
|
306
|
-
if (!wasLockAcquired) {
|
|
307
|
-
const msg = (0, utils_js_1.formatExceptionMessage)(taskDescription, errorMessage, `Failed to acquire lock ${lockfileName}. Worker: ${(0, utils_js_1.workerIdLabel)()}.`);
|
|
308
|
-
throw new Error(msg);
|
|
309
|
-
}
|
|
310
|
-
try {
|
|
311
|
-
await (0, utils_js_1.copyUploadedAssets)(assets, bundleDirectory);
|
|
312
|
-
log_js_1.default.info(`Copied assets to bundle directory: ${bundleDirectory}`);
|
|
313
|
-
}
|
|
314
|
-
finally {
|
|
315
|
-
try {
|
|
316
|
-
await (0, locks_js_1.unlock)(lockfileName);
|
|
317
|
-
}
|
|
318
|
-
catch (error) {
|
|
319
|
-
log_js_1.default.warn({
|
|
320
|
-
msg: `Error unlocking ${lockfileName} from worker ${(0, utils_js_1.workerIdLabel)()}`,
|
|
321
|
-
err: error,
|
|
322
|
-
task: taskDescription,
|
|
323
|
-
});
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
});
|
|
327
|
-
const results = await Promise.allSettled(copyPromises);
|
|
328
|
-
const firstFailure = results.find((r) => r.status === 'rejected');
|
|
329
|
-
if (firstFailure) {
|
|
330
|
-
throw firstFailure.reason;
|
|
314
|
+
// Reuses the same per-bundle lock + move/copy logic as the render
|
|
315
|
+
// endpoint so that concurrent /upload-assets and render requests
|
|
316
|
+
// targeting the same bundle directory are mutually exclusive.
|
|
317
|
+
// See https://github.com/shakacode/react_on_rails/issues/2463
|
|
318
|
+
const result = await (0, handleRenderRequest_js_1.handleNewBundlesProvided)(taskDescription, providedNewBundles, assetsToCopy);
|
|
319
|
+
if (result) {
|
|
320
|
+
await setResponse(result, res);
|
|
321
|
+
return;
|
|
331
322
|
}
|
|
332
|
-
await setResponse({
|
|
333
|
-
status: 200,
|
|
334
|
-
headers: {},
|
|
335
|
-
}, res);
|
|
323
|
+
await setResponse({ status: 200, headers: {} }, res);
|
|
336
324
|
}
|
|
337
325
|
catch (err) {
|
|
338
|
-
const msg = 'ERROR when trying to
|
|
326
|
+
const msg = 'ERROR when trying to upload bundles and assets';
|
|
339
327
|
const message = `${msg}. ${err}. Task: ${taskDescription}`;
|
|
340
|
-
log_js_1.default.error({
|
|
341
|
-
msg,
|
|
342
|
-
err,
|
|
343
|
-
task: taskDescription,
|
|
344
|
-
});
|
|
328
|
+
log_js_1.default.error({ msg, err, task: taskDescription });
|
|
345
329
|
await setResponse((0, utils_js_1.errorResponseResult)(message), res);
|
|
346
330
|
}
|
|
347
331
|
});
|
package/lib/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-on-rails-pro-node-renderer",
|
|
3
|
-
"version": "16.5.
|
|
3
|
+
"version": "16.5.1",
|
|
4
4
|
"protocolVersion": "2.0.0",
|
|
5
5
|
"description": "React on Rails Pro Node Renderer for server-side rendering",
|
|
6
6
|
"main": "lib/ReactOnRailsProNodeRenderer.js",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"sentry-testkit": "^5.0.6",
|
|
61
61
|
"touch": "^3.1.0",
|
|
62
62
|
"typescript": "^5.4.3",
|
|
63
|
-
"react-on-rails": "16.5.
|
|
63
|
+
"react-on-rails": "16.5.1"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@honeybadger-io/js": ">=4.0.0",
|
|
@@ -77,7 +77,7 @@ async function prepareResult(
|
|
|
77
77
|
* @param assetsToCopy might be null
|
|
78
78
|
*/
|
|
79
79
|
async function handleNewBundleProvided(
|
|
80
|
-
|
|
80
|
+
requestContext: string,
|
|
81
81
|
providedNewBundle: ProvidedNewBundle,
|
|
82
82
|
assetsToCopy: Asset[] | null | undefined,
|
|
83
83
|
): Promise<ResponseResult | undefined> {
|
|
@@ -95,7 +95,7 @@ async function handleNewBundleProvided(
|
|
|
95
95
|
|
|
96
96
|
if (!wasLockAcquired) {
|
|
97
97
|
const msg = formatExceptionMessage(
|
|
98
|
-
|
|
98
|
+
requestContext,
|
|
99
99
|
errorMessage,
|
|
100
100
|
`Failed to acquire lock ${lockfileName}. Worker: ${workerIdLabel()}.`,
|
|
101
101
|
);
|
|
@@ -107,10 +107,6 @@ async function handleNewBundleProvided(
|
|
|
107
107
|
`Moving uploaded file ${providedNewBundle.bundle.savedFilePath} to ${bundleFilePathPerTimestamp}`,
|
|
108
108
|
);
|
|
109
109
|
await moveUploadedAsset(providedNewBundle.bundle, bundleFilePathPerTimestamp);
|
|
110
|
-
if (assetsToCopy) {
|
|
111
|
-
await copyUploadedAssets(assetsToCopy, bundleDirectory);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
110
|
log.info(
|
|
115
111
|
`Completed moving uploaded file ${providedNewBundle.bundle.savedFilePath} to ${bundleFilePathPerTimestamp}`,
|
|
116
112
|
);
|
|
@@ -118,7 +114,7 @@ async function handleNewBundleProvided(
|
|
|
118
114
|
const fileExists = await fileExistsAsync(bundleFilePathPerTimestamp);
|
|
119
115
|
if (!fileExists) {
|
|
120
116
|
const msg = formatExceptionMessage(
|
|
121
|
-
|
|
117
|
+
requestContext,
|
|
122
118
|
error,
|
|
123
119
|
`Unexpected error when moving the bundle from ${providedNewBundle.bundle.savedFilePath} \
|
|
124
120
|
to ${bundleFilePathPerTimestamp})`,
|
|
@@ -132,6 +128,13 @@ to ${bundleFilePathPerTimestamp})`,
|
|
|
132
128
|
);
|
|
133
129
|
}
|
|
134
130
|
|
|
131
|
+
// Always copy assets to the bundle directory — even if the bundle was
|
|
132
|
+
// already present (e.g., from a prior upload or another worker).
|
|
133
|
+
// copyUploadedAssets uses overwrite:true, so this is idempotent.
|
|
134
|
+
if (assetsToCopy) {
|
|
135
|
+
await copyUploadedAssets(assetsToCopy, bundleDirectory);
|
|
136
|
+
}
|
|
137
|
+
|
|
135
138
|
return undefined;
|
|
136
139
|
} finally {
|
|
137
140
|
if (lockAcquired && lockfileName) {
|
|
@@ -140,7 +143,7 @@ to ${bundleFilePathPerTimestamp})`,
|
|
|
140
143
|
await unlock(lockfileName);
|
|
141
144
|
} catch (error) {
|
|
142
145
|
const msg = formatExceptionMessage(
|
|
143
|
-
|
|
146
|
+
requestContext,
|
|
144
147
|
error,
|
|
145
148
|
`Error unlocking ${lockfileName} from worker ${workerIdLabel()}.`,
|
|
146
149
|
);
|
|
@@ -150,15 +153,15 @@ to ${bundleFilePathPerTimestamp})`,
|
|
|
150
153
|
}
|
|
151
154
|
}
|
|
152
155
|
|
|
153
|
-
async function handleNewBundlesProvided(
|
|
154
|
-
|
|
156
|
+
export async function handleNewBundlesProvided(
|
|
157
|
+
requestContext: string,
|
|
155
158
|
providedNewBundles: ProvidedNewBundle[],
|
|
156
159
|
assetsToCopy: Asset[] | null | undefined,
|
|
157
160
|
): Promise<ResponseResult | undefined> {
|
|
158
161
|
log.info('Worker received new bundles: %s', providedNewBundles);
|
|
159
162
|
|
|
160
163
|
const handlingPromises = providedNewBundles.map((providedNewBundle) =>
|
|
161
|
-
handleNewBundleProvided(
|
|
164
|
+
handleNewBundleProvided(requestContext, providedNewBundle, assetsToCopy),
|
|
162
165
|
);
|
|
163
166
|
// Defensive: use allSettled so that if handleNewBundleProvided ever throws
|
|
164
167
|
// unexpectedly, all in-flight operations still complete before the handler
|