UNPKG

next

Version:

The React Framework

32 lines (31 loc) 1.93 kB
import type { DraftModeProvider } from '../async-storage/draft-mode-provider'; /** * In this version of Next.js `draftMode()` returns a Promise however you can still reference the properties of the underlying draftMode object * synchronously to facilitate migration. The `UnsafeUnwrappedDraftMode` type is added to your code by a codemod that attempts to automatically * updates callsites to reflect the new Promise return type. There are some cases where `draftMode()` cannot be automatically converted, namely * when it is used inside a synchronous function and we can't be sure the function can be made async automatically. In these cases we add an * explicit type case to `UnsafeUnwrappedDraftMode` to enable typescript to allow for the synchronous usage only where it is actually necessary. * * You should should update these callsites to either be async functions where the `draftMode()` value can be awaited or you should call `draftMode()` * from outside and await the return value before passing it into this function. * * You can find instances that require manual migration by searching for `UnsafeUnwrappedDraftMode` in your codebase or by search for a comment that * starts with `@next-codemod-error`. * * In a future version of Next.js `draftMode()` will only return a Promise and you will not be able to access the underlying draftMode object directly * without awaiting the return value first. When this change happens the type `UnsafeUnwrappedDraftMode` will be updated to reflect that is it no longer * usable. * * This type is marked deprecated to help identify it as target for refactoring away. * * @deprecated */ export type UnsafeUnwrappedDraftMode = DraftMode; export declare function draftMode(): Promise<DraftMode>; declare class DraftMode { constructor(provider: null | DraftModeProvider); get isEnabled(): boolean; enable(): void; disable(): void; } export {};