UNPKG

next

Version:

The React Framework

426 lines (418 loc) • 13.5 kB
// Manual additions to make the generated types below work. import type { TurbopackResult } from './types' export type TurboTasks = { readonly __tag: unique symbol } export type ExternalEndpoint = { readonly __tag: unique symbol } export type NextTurboTasks = { readonly __tag: unique symbol } export type RefCell = { readonly __tag: unique symbol } export type NapiRouteHas = { type: string key?: string value?: string readonly __tag: unique symbol } export function lightningCssTransform(args: object): Promise<unknown> export function lightningCssTransformStyleAttribute( args: object ): Promise<unknown> // GENERATED-TYPES-BELOW // DO NOT MANUALLY EDIT THESE TYPES // You can regenerate this file by running `pnpm swc-build-native` in the root of the repo. /* tslint:disable */ /* eslint-disable */ /* auto-generated by NAPI-RS */ export class ExternalObject<T> { readonly '': { readonly '': unique symbol [K: symbol]: T } } export interface TransformOutput { code: string map?: string output?: string diagnostics: Array<string> } export declare function mdxCompile( value: string, option: Buffer, signal?: AbortSignal | undefined | null ): Promise<unknown> export declare function mdxCompileSync(value: string, option: Buffer): string export declare function minify( input: Buffer, opts: Buffer, signal?: AbortSignal | undefined | null ): Promise<TransformOutput> export declare function minifySync(input: Buffer, opts: Buffer): TransformOutput export interface NapiEndpointConfig {} export interface NapiServerPath { path: string contentHash: string } export interface NapiWrittenEndpoint { type: string entryPath?: string clientPaths: Array<string> serverPaths: Array<NapiServerPath> config: NapiEndpointConfig } export declare function endpointWriteToDisk(endpoint: { __napiType: 'Endpoint' }): Promise<TurbopackResult> export declare function endpointServerChangedSubscribe( endpoint: { __napiType: 'Endpoint' }, issues: boolean, func: (...args: any[]) => any ): { __napiType: 'RootTask' } export declare function endpointClientChangedSubscribe( endpoint: { __napiType: 'Endpoint' }, func: (...args: any[]) => any ): { __napiType: 'RootTask' } export interface NapiEnvVar { name: string value: string } export interface NapiDraftModeOptions { previewModeId: string previewModeEncryptionKey: string previewModeSigningKey: string } export interface NapiWatchOptions { /** Whether to watch the filesystem for file changes. */ enable: boolean /** * Enable polling at a certain interval if the native file watching doesn't work (e.g. * docker). */ pollIntervalMs?: number } export interface NapiProjectOptions { /** * A root path from which all files must be nested under. Trying to access * a file outside this root will fail. Think of this as a chroot. */ rootPath: string /** A path inside the root_path which contains the app/pages directories. */ projectPath: string /** * next.config's distDir. Project initialization occurs eariler than * deserializing next.config, so passing it as separate option. */ distDir: string /** Filesystem watcher options. */ watch: NapiWatchOptions /** The contents of next.config.js, serialized to JSON. */ nextConfig: string /** The contents of ts/config read by load-jsconfig, serialized to JSON. */ jsConfig: string /** A map of environment variables to use when compiling code. */ env: Array<NapiEnvVar> /** * A map of environment variables which should get injected at compile * time. */ defineEnv: NapiDefineEnv /** The mode in which Next.js is running. */ dev: boolean /** The server actions encryption key. */ encryptionKey: string /** The build id. */ buildId: string /** Options for draft mode. */ previewProps: NapiDraftModeOptions /** The browserslist query to use for targeting browsers. */ browserslistQuery: string /** * When the code is minified, this opts out of the default mangling of * local names for variables, functions etc., which can be useful for * debugging/profiling purposes. */ noMangling: boolean } /** [NapiProjectOptions] with all fields optional. */ export interface NapiPartialProjectOptions { /** * A root path from which all files must be nested under. Trying to access * a file outside this root will fail. Think of this as a chroot. */ rootPath?: string /** A path inside the root_path which contains the app/pages directories. */ projectPath?: string /** * next.config's distDir. Project initialization occurs eariler than * deserializing next.config, so passing it as separate option. */ distDir?: string | undefined | null /** Filesystem watcher options. */ watch?: NapiWatchOptions /** The contents of next.config.js, serialized to JSON. */ nextConfig?: string /** The contents of ts/config read by load-jsconfig, serialized to JSON. */ jsConfig?: string /** A map of environment variables to use when compiling code. */ env?: Array<NapiEnvVar> /** * A map of environment variables which should get injected at compile * time. */ defineEnv?: NapiDefineEnv /** The mode in which Next.js is running. */ dev?: boolean /** The server actions encryption key. */ encryptionKey?: string /** The build id. */ buildId?: string /** Options for draft mode. */ previewProps?: NapiDraftModeOptions /** The browserslist query to use for targeting browsers. */ browserslistQuery?: string /** * When the code is minified, this opts out of the default mangling of * local names for variables, functions etc., which can be useful for * debugging/profiling purposes. */ noMangling?: boolean } export interface NapiDefineEnv { client: Array<NapiEnvVar> edge: Array<NapiEnvVar> nodejs: Array<NapiEnvVar> } export interface NapiTurboEngineOptions { /** Use the new backend with persistent caching enabled. */ persistentCaching?: boolean /** An upper bound of memory that turbopack will attempt to stay under. */ memoryLimit?: number /** Track dependencies between tasks. If false, any change during build will error. */ dependencyTracking?: boolean } export declare function projectNew( options: NapiProjectOptions, turboEngineOptions: NapiTurboEngineOptions ): Promise<{ __napiType: 'Project' }> export declare function projectUpdate( project: { __napiType: 'Project' }, options: NapiPartialProjectOptions ): Promise<void> /** * Runs exit handlers for the project registered using the [`ExitHandler`] API. * * This is called by `project_shutdown`, so if you're calling that API, you shouldn't call this * one. */ export declare function projectOnExit(project: { __napiType: 'Project' }): Promise<void> /** * Runs `project_on_exit`, and then waits for turbo_tasks to gracefully shut down. * * This is used in builds where it's important that we completely persist turbo-tasks to disk, but * it's skipped in the development server (`project_on_exit` is used instead with a short timeout), * where we prioritize fast exit and user responsiveness over all else. */ export declare function projectShutdown(project: { __napiType: 'Project' }): Promise<void> export interface AppPageNapiRoute { /** The relative path from project_path to the route file */ originalName?: string htmlEndpoint?: ExternalObject<ExternalEndpoint> rscEndpoint?: ExternalObject<ExternalEndpoint> } export interface NapiRoute { /** The router path */ pathname: string /** The relative path from project_path to the route file */ originalName?: string /** The type of route, eg a Page or App */ type: string pages?: Array<AppPageNapiRoute> endpoint?: ExternalObject<ExternalEndpoint> htmlEndpoint?: ExternalObject<ExternalEndpoint> rscEndpoint?: ExternalObject<ExternalEndpoint> dataEndpoint?: ExternalObject<ExternalEndpoint> } export interface NapiMiddleware { endpoint: ExternalObject<ExternalEndpoint> } export interface NapiInstrumentation { nodeJs: ExternalObject<ExternalEndpoint> edge: ExternalObject<ExternalEndpoint> } export interface NapiEntrypoints { routes: Array<NapiRoute> middleware?: NapiMiddleware instrumentation?: NapiInstrumentation pagesDocumentEndpoint: ExternalObject<ExternalEndpoint> pagesAppEndpoint: ExternalObject<ExternalEndpoint> pagesErrorEndpoint: ExternalObject<ExternalEndpoint> } export declare function projectEntrypointsSubscribe( project: { __napiType: 'Project' }, func: (...args: any[]) => any ): { __napiType: 'RootTask' } export declare function projectHmrEvents( project: { __napiType: 'Project' }, identifier: string, func: (...args: any[]) => any ): { __napiType: 'RootTask' } export interface HmrIdentifiers { identifiers: Array<string> } export declare function projectHmrIdentifiersSubscribe( project: { __napiType: 'Project' }, func: (...args: any[]) => any ): { __napiType: 'RootTask' } export interface NapiUpdateMessage { updateType: string value?: NapiUpdateInfo } export interface NapiUpdateInfo { duration: number tasks: number } /** * Subscribes to lifecycle events of the compilation. * * Emits an [UpdateMessage::Start] event when any computation starts. * Emits an [UpdateMessage::End] event when there was no computation for the * specified time (`aggregation_ms`). The [UpdateMessage::End] event contains * information about the computations that happened since the * [UpdateMessage::Start] event. It contains the duration of the computation * (excluding the idle time that was spend waiting for `aggregation_ms`), and * the number of tasks that were executed. * * The signature of the `func` is `(update_message: UpdateMessage) => void`. */ export declare function projectUpdateInfoSubscribe( project: { __napiType: 'Project' }, aggregationMs: number, func: (...args: any[]) => any ): void export interface StackFrame { isServer: boolean isInternal?: boolean originalFile?: string file: string line?: number column?: number methodName?: string } export declare function projectTraceSource( project: { __napiType: 'Project' }, frame: StackFrame, currentDirectoryFileUrl: string ): Promise<StackFrame | null> export declare function projectGetSourceForAsset( project: { __napiType: 'Project' }, filePath: string ): Promise<string | null> export declare function projectGetSourceMap( project: { __napiType: 'Project' }, filePath: string ): Promise<string | null> export declare function projectGetSourceMapSync( project: { __napiType: 'Project' }, filePath: string ): string | null export declare function rootTaskDispose(rootTask: { __napiType: 'RootTask' }): void export interface NapiIssue { severity: string stage: string filePath: string title: any description?: any detail?: any source?: NapiIssueSource documentationLink: string subIssues: Array<NapiIssue> } export interface NapiIssueSource { source: NapiSource range?: NapiIssueSourceRange } export interface NapiIssueSourceRange { start: NapiSourcePos end: NapiSourcePos } export interface NapiSource { ident: string content?: string } export interface NapiSourcePos { line: number column: number } export interface NapiDiagnostic { category: string name: string payload: Record<string, string> } export declare function parse( src: string, options: Buffer, filename?: string | undefined | null, signal?: AbortSignal | undefined | null ): Promise<string> export declare function transform( src: string | Buffer | undefined, isModule: boolean, options: Buffer, signal?: AbortSignal | undefined | null ): Promise<unknown> export declare function transformSync( src: string | Buffer | undefined, isModule: boolean, options: Buffer ): object export declare function startTurbopackTraceServer(path: string): void export interface NextBuildContext { /** The root directory of the workspace. */ root?: string /** The project's directory. */ dir?: string /** * next.config.js's distDir. Current there's some early stage setup * requires this Before construct a context to read next.config.js, * which we passes separately here. */ distDir?: string /** The build ID. */ buildId?: string /** The rewrites, as computed by Next.js. */ rewrites?: NapiRewrites defineEnv: NapiDefineEnv } /** Keep in sync with [`next_core::next_config::Rewrites`] */ export interface NapiRewrites { fallback: Array<NapiRewrite> afterFiles: Array<NapiRewrite> beforeFiles: Array<NapiRewrite> } /** Keep in sync with [`next_core::next_config::Rewrite`] */ export interface NapiRewrite { source: string destination: string basePath?: boolean locale?: boolean has?: Array<NapiRouteHas> missing?: Array<NapiRouteHas> } export declare function getTargetTriple(): string /** * Initialize tracing subscriber to emit traces. This configures subscribers * for Trace Event Format <https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview>. */ export declare function initCustomTraceSubscriber( traceOutFilePath?: string | undefined | null ): ExternalObject<RefCell> /** * Teardown currently running tracing subscriber to flush out remaining traces. * This should be called when parent node.js process exits, otherwise generated * trace may drop traces in the buffer. */ export declare function teardownTraceSubscriber( guardExternal: ExternalObject<RefCell> ): void