@@ -151,8 +151,9 @@ function __emitDone__(requestId, response) {
151151 context.done(response);
152152 return;
153153 }
154- if (typeof globalThis.$done === 'function') {
155- globalThis.$done(response);
154+ const fallbackDone = globalThis.$done;
155+ if (typeof fallbackDone === 'function') {
156+ fallbackDone(response);
156157 }
157158}` ,
158159 ) ;
@@ -163,15 +164,19 @@ function __emitDone__(requestId, response) {
163164 ) ;
164165 contents = contents . replace (
165166 'const res = Response();' ,
166- 'const res = Response(req.__requestId);' ,
167+ 'const res = Response({}, request.__requestId);' ,
168+ ) ;
169+ contents = contents . replaceAll (
170+ 'const res = Response(cors.headers);' ,
171+ 'const res = Response(cors.headers, request.__requestId);' ,
167172 ) ;
168173 contents = contents . replace (
169174 / d i s p a t c h \s * \( \s * m e t h o d \s * , \s * u r l \s * , \s * i \s * \) \s * ; / g,
170175 'dispatch(request, i + 1);' ,
171176 ) ;
172177 contents = contents . replace (
173- 'function Response() {' ,
174- 'function Response(requestId) {' ,
178+ 'function Response(corsHeaders = {} ) {' ,
179+ 'function Response(corsHeaders = {}, requestId) {' ,
175180 ) ;
176181 contents = contents . replace (
177182 '$done(response);' ,
@@ -204,6 +209,12 @@ function __emitDone__(requestId, response) {
204209 if ( ! contents . includes ( 'dispatch(request, i + 1);' ) ) {
205210 this . error ( '[sub-store-transform] express.js next() 补丁自检失败:仍可能把 method/url 当作 request 重新分发' ) ;
206211 }
212+ if ( ! contents . includes ( 'function Response(corsHeaders = {}, requestId) {' ) ) {
213+ this . error ( '[sub-store-transform] express.js Response 补丁自检失败:requestId 未绑定到 Response' ) ;
214+ }
215+ if ( ! contents . includes ( 'Response(cors.headers, request.__requestId)' ) ) {
216+ this . error ( '[sub-store-transform] express.js Response 补丁自检失败:cors 响应未绑定 requestId' ) ;
217+ }
207218 } else {
208219 this . error ( '[sub-store-transform] express.js 补丁未应用:未命中 app.start/dispatch($request) 片段' ) ;
209220 }
@@ -292,7 +303,7 @@ const tasks = {
292303 const before = contents . slice ( 0 , startIdx ) ;
293304 const chunk = contents . slice ( startIdx , endIdx ) ;
294305 const after = contents . slice ( endIdx ) ;
295- const requiredNeedles = [ 'tasks.has(id)' , 'tasks.set(id, result )' , 'const id = hex_md5(' ] ;
306+ const requiredNeedles = [ 'tasks.has(id)' , 'tasks.set(id, rawResult )' , 'const id = hex_md5(' ] ;
296307 const missing = requiredNeedles . filter ( ( n ) => ! chunk . includes ( n ) ) ;
297308 if ( missing . length > 0 ) {
298309 this . error ( `[sub-store-transform] download.js 结构已变化,补丁未应用:缺少关键片段: ${ missing . join ( ', ' ) } ` ) ;
0 commit comments