| "use strict"; |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| Object.defineProperty(exports, "DevBundlerService", { |
| enumerable: true, |
| get: function() { |
| return DevBundlerService; |
| } |
| }); |
| const _lrucache = require("./lru-cache"); |
| const _mockrequest = require("./mock-request"); |
| const _hotreloadertypes = require("../dev/hot-reloader-types"); |
| class DevBundlerService { |
| constructor(bundler, handler){ |
| this.bundler = bundler; |
| this.handler = handler; |
| this.ensurePage = async (definition)=>{ |
| |
| return await this.bundler.hotReloader.ensurePage(definition); |
| }; |
| this.logErrorWithOriginalStack = this.bundler.logErrorWithOriginalStack.bind(this.bundler); |
| this.appIsrManifestInner = new _lrucache.LRUCache(8000, function length() { |
| return 16; |
| }); |
| } |
| async getFallbackErrorComponents(url) { |
| await this.bundler.hotReloader.buildFallbackError(); |
| |
| |
| await this.bundler.hotReloader.ensurePage({ |
| page: '/_error', |
| clientOnly: false, |
| definition: undefined, |
| url |
| }); |
| } |
| async getCompilationError(page) { |
| const errors = await this.bundler.hotReloader.getCompilationErrors(page); |
| if (!errors) return; |
| |
| return errors[0]; |
| } |
| async revalidate({ urlPath, revalidateHeaders, opts: revalidateOpts }) { |
| const mocked = (0, _mockrequest.createRequestResponseMocks)({ |
| url: urlPath, |
| headers: revalidateHeaders |
| }); |
| await this.handler(mocked.req, mocked.res); |
| await mocked.res.hasStreamed; |
| if (mocked.res.getHeader('x-nextjs-cache') !== 'REVALIDATED' && mocked.res.statusCode !== 200 && !(mocked.res.statusCode === 404 && revalidateOpts.unstable_onlyGenerated)) { |
| throw Object.defineProperty(new Error(`Invalid response ${mocked.res.statusCode}`), "__NEXT_ERROR_CODE", { |
| value: "E175", |
| enumerable: false, |
| configurable: true |
| }); |
| } |
| return {}; |
| } |
| get appIsrManifest() { |
| const serializableManifest = {}; |
| for (const [key, value] of this.appIsrManifestInner){ |
| serializableManifest[key] = value; |
| } |
| return serializableManifest; |
| } |
| setIsrStatus(key, value) { |
| var _this_bundler_hotReloader, _this_bundler; |
| if (value === null) { |
| this.appIsrManifestInner.remove(key); |
| } else { |
| this.appIsrManifestInner.set(key, value); |
| } |
| (_this_bundler = this.bundler) == null ? void 0 : (_this_bundler_hotReloader = _this_bundler.hotReloader) == null ? void 0 : _this_bundler_hotReloader.send({ |
| action: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ISR_MANIFEST, |
| data: this.appIsrManifest |
| }); |
| } |
| close() { |
| this.bundler.hotReloader.close(); |
| } |
| } |
|
|
| |