52 lines
2.2 KiB
JavaScript
52 lines
2.2 KiB
JavaScript
"use strict";
|
|
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);
|
|
this._previewModeId = previewProps == null ? void 0 : previewProps.previewModeId;
|
|
this._mutableCookies = mutableCookies;
|
|
}
|
|
enable() {
|
|
if (!this._previewModeId) {
|
|
throw new Error("Invariant: previewProps missing previewModeId this should never happen");
|
|
}
|
|
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: "/"
|
|
});
|
|
}
|
|
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)
|
|
});
|
|
}
|
|
}
|
|
|
|
//# sourceMappingURL=draft-mode-provider.js.map
|