32 lines
1.9 KiB
TypeScript
32 lines
1.9 KiB
TypeScript
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 {};
|