Skip to content

Commit b670497

Browse files
committed
address some comments
1 parent 7924e7b commit b670497

File tree

2 files changed

+54
-101
lines changed

2 files changed

+54
-101
lines changed

packages/@apphosting/adapter-nextjs/src/overrides.spec.ts

Lines changed: 26 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,23 @@ describe("route overrides", () => {
166166

167167
describe("next config overrides", () => {
168168
let tmpDir: string;
169+
const nextConfigOverrideBody = `
170+
// This file was automatically generated by Firebase App Hosting adapter
171+
const fahOptimizedConfig = (config) => ({
172+
...config,
173+
images: {
174+
...(config.images || {}),
175+
...(config.images?.unoptimized === undefined ? { unoptimized: true } : {}),
176+
},
177+
});
178+
179+
const config = typeof originalConfig === 'function'
180+
? (...args) => {
181+
const resolvedConfig = originalConfig(...args);
182+
return fahOptimizedConfig(resolvedConfig);
183+
}
184+
: fahOptimizedConfig(originalConfig);
185+
`;
169186

170187
beforeEach(() => {
171188
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "test-overrides"));
@@ -192,27 +209,10 @@ describe("next config overrides", () => {
192209
assert.equal(
193210
normalizeWhitespace(updatedConfig),
194211
normalizeWhitespace(`
212+
// @ts-nocheck
195213
const originalConfig = require('./next.config.original.js');
196214
197-
// This file was automatically generated by Firebase App Hosting adapter
198-
const config = typeof originalConfig === 'function'
199-
? (...args) => {
200-
const resolvedConfig = originalConfig(...args);
201-
return {
202-
...resolvedConfig,
203-
images: {
204-
...(resolvedConfig.images || {}),
205-
unoptimized: true,
206-
},
207-
};
208-
}
209-
: {
210-
...originalConfig,
211-
images: {
212-
...(originalConfig.images || {}),
213-
unoptimized: true,
214-
},
215-
};
215+
${nextConfigOverrideBody}
216216
217217
module.exports = config;
218218
`),
@@ -241,28 +241,11 @@ describe("next config overrides", () => {
241241
assert.equal(
242242
normalizeWhitespace(updatedConfig),
243243
normalizeWhitespace(`
244+
// @ts-nocheck
244245
import originalConfig from './next.config.original.mjs';
245246
246-
// This file was automatically generated by Firebase App Hosting adapter
247-
const config = typeof originalConfig === 'function'
248-
? (...args) => {
249-
const resolvedConfig = originalConfig(...args);
250-
return {
251-
...resolvedConfig,
252-
images: {
253-
...(resolvedConfig.images || {}),
254-
unoptimized: true,
255-
},
256-
};
257-
}
258-
: {
259-
...originalConfig,
260-
images: {
261-
...(originalConfig.images || {}),
262-
unoptimized: true,
263-
},
264-
};
265-
247+
${nextConfigOverrideBody}
248+
266249
export default config;
267250
`),
268251
);
@@ -291,27 +274,10 @@ describe("next config overrides", () => {
291274
assert.equal(
292275
normalizeWhitespace(updatedConfig),
293276
normalizeWhitespace(`
277+
// @ts-nocheck
294278
import originalConfig from './next.config.original.mjs';
295279
296-
// This file was automatically generated by Firebase App Hosting adapter
297-
const config = typeof originalConfig === 'function'
298-
? (...args) => {
299-
const resolvedConfig = originalConfig(...args);
300-
return {
301-
...resolvedConfig,
302-
images: {
303-
...(resolvedConfig.images || {}),
304-
unoptimized: true,
305-
},
306-
};
307-
}
308-
: {
309-
...originalConfig,
310-
images: {
311-
...(originalConfig.images || {}),
312-
unoptimized: true,
313-
},
314-
};
280+
${nextConfigOverrideBody}
315281
316282
export default config;
317283
`),
@@ -337,27 +303,10 @@ describe("next config overrides", () => {
337303
assert.equal(
338304
normalizeWhitespace(updatedConfig),
339305
normalizeWhitespace(`
306+
// @ts-nocheck
340307
import originalConfig from './next.config.original';
341308
342-
// This file was automatically generated by Firebase App Hosting adapter
343-
const config = typeof originalConfig === 'function'
344-
? (...args) => {
345-
const resolvedConfig = originalConfig(...args);
346-
return {
347-
...resolvedConfig,
348-
images: {
349-
...(resolvedConfig.images || {}),
350-
unoptimized: true,
351-
},
352-
};
353-
}
354-
: {
355-
...originalConfig,
356-
images: {
357-
...(originalConfig.images || {}),
358-
unoptimized: true,
359-
},
360-
};
309+
${nextConfigOverrideBody}
361310
362311
module.exports = config;
363312
`),

packages/@apphosting/adapter-nextjs/src/overrides.ts

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -41,30 +41,7 @@ export async function overrideNextConfig(projectRoot: string, nextConfigFileName
4141
}
4242

4343
// Create the new config content with our overrides
44-
const newConfigContent = `${importStatement}
45-
46-
// This file was automatically generated by Firebase App Hosting adapter
47-
const config = typeof originalConfig === 'function'
48-
? (...args) => {
49-
const resolvedConfig = originalConfig(...args);
50-
return {
51-
...resolvedConfig,
52-
images: {
53-
...(resolvedConfig.images || {}),
54-
unoptimized: true,
55-
},
56-
};
57-
}
58-
: {
59-
...originalConfig,
60-
images: {
61-
...(originalConfig.images || {}),
62-
unoptimized: true,
63-
},
64-
};
65-
66-
${fileExtension === "mjs" ? "export default config;" : "module.exports = config;"}
67-
`;
44+
const newConfigContent = getCustomNextConfig(importStatement, fileExtension);
6845

6946
// Write the new config file
7047
await writeFile(join(projectRoot, newConfigName), newConfigContent);
@@ -75,6 +52,33 @@ ${fileExtension === "mjs" ? "export default config;" : "module.exports = config;
7552
}
7653
}
7754

55+
function getCustomNextConfig(importStatement: string, fileExtension: string) {
56+
return `
57+
// @ts-nocheck
58+
${importStatement}
59+
60+
// This file was automatically generated by Firebase App Hosting adapter
61+
const fahOptimizedConfig = (config) => ({
62+
...config,
63+
images: {
64+
...(config.images || {}),
65+
...(config.images?.unoptimized === undefined && config.images?.loader === undefined
66+
? { unoptimized: true }
67+
: {}),
68+
},
69+
});
70+
71+
const config = typeof originalConfig === 'function'
72+
? (...args) => {
73+
const resolvedConfig = originalConfig(...args);
74+
return fahOptimizedConfig(resolvedConfig);
75+
}
76+
: fahOptimizedConfig(originalConfig);
77+
78+
${fileExtension === "mjs" ? "export default config;" : "module.exports = config;"}
79+
`;
80+
}
81+
7882
/**
7983
* Modifies the app's route manifest (routes-manifest.json) to add Firebase App Hosting
8084
* specific overrides (i.e headers).

0 commit comments

Comments
 (0)