Spaces:
Running
Running
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| Object.defineProperty(exports, "DraftModeProvider", { | |
| enumerable: true, | |
| get: function() { | |
| return DraftModeProvider; | |
| } | |
| }); | |
| const _apiutils = require("../api-utils"); | |
| class DraftModeProvider { | |
| constructor(previewProps, req, cookies, mutableCookies){ | |
| var _cookies_get; | |
| // The logic for draftMode() is very similar to tryGetPreviewData() | |
| // but Draft Mode does not have any data associated with it. | |
| const isOnDemandRevalidate = previewProps && (0, _apiutils.checkIsOnDemandRevalidate)(req, previewProps).isOnDemandRevalidate; | |
| const cookieValue = (_cookies_get = cookies.get(_apiutils.COOKIE_NAME_PRERENDER_BYPASS)) == null ? void 0 : _cookies_get.value; | |
| this._isEnabled = Boolean(!isOnDemandRevalidate && cookieValue && previewProps && (cookieValue === previewProps.previewModeId || // In dev mode, the cookie can be actual hash value preview id but the preview props can still be `development-id`. | |
| process.env.NODE_ENV !== 'production' && previewProps.previewModeId === 'development-id')); | |
| this._previewModeId = previewProps == null ? void 0 : previewProps.previewModeId; | |
| this._mutableCookies = mutableCookies; | |
| } | |
| get isEnabled() { | |
| return this._isEnabled; | |
| } | |
| enable() { | |
| if (!this._previewModeId) { | |
| throw Object.defineProperty(new Error('Invariant: previewProps missing previewModeId this should never happen'), "__NEXT_ERROR_CODE", { | |
| value: "E93", | |
| enumerable: false, | |
| configurable: true | |
| }); | |
| } | |
| this._mutableCookies.set({ | |
| name: _apiutils.COOKIE_NAME_PRERENDER_BYPASS, | |
| value: this._previewModeId, | |
| httpOnly: true, | |
| sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax', | |
| secure: process.env.NODE_ENV !== 'development', | |
| path: '/' | |
| }); | |
| this._isEnabled = true; | |
| } | |
| disable() { | |
| // To delete a cookie, set `expires` to a date in the past: | |
| // https://tools.ietf.org/html/rfc6265#section-4.1.1 | |
| // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted. | |
| this._mutableCookies.set({ | |
| name: _apiutils.COOKIE_NAME_PRERENDER_BYPASS, | |
| value: '', | |
| httpOnly: true, | |
| sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax', | |
| secure: process.env.NODE_ENV !== 'development', | |
| path: '/', | |
| expires: new Date(0) | |
| }); | |
| this._isEnabled = false; | |
| } | |
| } | |
| //# sourceMappingURL=draft-mode-provider.js.map |