mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 12:19:15 +00:00
265 lines
7.6 KiB
TypeScript
265 lines
7.6 KiB
TypeScript
/* auto-generated by NAPI-RS */
|
|
/* eslint-disable */
|
|
export interface ArrowFunctionsBindingOptions {
|
|
/**
|
|
* This option enables the following:
|
|
* * Wrap the generated function in .bind(this) and keeps uses of this inside the function as-is, instead of using a renamed this.
|
|
* * Add a runtime check to ensure the functions are not instantiated.
|
|
* * Add names to arrow functions.
|
|
*
|
|
* @default false
|
|
*/
|
|
spec?: boolean
|
|
}
|
|
|
|
export interface Es2015BindingOptions {
|
|
/** Transform arrow functions into function expressions. */
|
|
arrowFunction?: ArrowFunctionsBindingOptions
|
|
}
|
|
|
|
/** TypeScript Isolated Declarations for Standalone DTS Emit */
|
|
export declare function isolatedDeclaration(filename: string, sourceText: string, options: IsolatedDeclarationsOptions): IsolatedDeclarationsResult
|
|
|
|
export interface IsolatedDeclarationsOptions {
|
|
sourcemap: boolean
|
|
}
|
|
|
|
export interface IsolatedDeclarationsResult {
|
|
code: string
|
|
map?: SourceMap
|
|
errors: Array<string>
|
|
}
|
|
|
|
/**
|
|
* Configure how TSX and JSX are transformed.
|
|
*
|
|
* @see [@babel/plugin-transform-react-jsx](https://babeljs.io/docs/babel-plugin-transform-react-jsx#options)
|
|
*/
|
|
export interface ReactBindingOptions {
|
|
/**
|
|
* Decides which runtime to use.
|
|
*
|
|
* - 'automatic' - auto-import the correct JSX factories
|
|
* - 'classic' - no auto-import
|
|
*
|
|
* @default 'automatic'
|
|
*/
|
|
runtime?: 'classic' | 'automatic'
|
|
/**
|
|
* Emit development-specific information, such as `__source` and `__self`.
|
|
*
|
|
* @default false
|
|
*
|
|
* @see [@babel/plugin-transform-react-jsx-development](https://babeljs.io/docs/babel-plugin-transform-react-jsx-development)
|
|
*/
|
|
development?: boolean
|
|
/**
|
|
* Toggles whether or not to throw an error if an XML namespaced tag name
|
|
* is used.
|
|
*
|
|
* Though the JSX spec allows this, it is disabled by default since React's
|
|
* JSX does not currently have support for it.
|
|
*
|
|
* @default true
|
|
*/
|
|
throwIfNamespace?: boolean
|
|
/**
|
|
* Enables [@babel/plugin-transform-react-pure-annotations](https://babeljs.io/docs/en/babel-plugin-transform-react-pure-annotations).
|
|
*
|
|
* It will mark top-level React method calls as pure for tree shaking.
|
|
*
|
|
* @default true
|
|
*/
|
|
pure?: boolean
|
|
/**
|
|
* Replaces the import source when importing functions.
|
|
*
|
|
* @default 'react'
|
|
*/
|
|
importSource?: string
|
|
/**
|
|
* Replace the function used when compiling JSX expressions. It should be a
|
|
* qualified name (e.g. `React.createElement`) or an identifier (e.g.
|
|
* `createElement`).
|
|
*
|
|
* Only used for `classic` {@link runtime}.
|
|
*
|
|
* @default 'React.createElement'
|
|
*/
|
|
pragma?: string
|
|
/**
|
|
* Replace the component used when compiling JSX fragments. It should be a
|
|
* valid JSX tag name.
|
|
*
|
|
* Only used for `classic` {@link runtime}.
|
|
*
|
|
* @default 'React.Fragment'
|
|
*/
|
|
pragmaFrag?: string
|
|
/**
|
|
* When spreading props, use `Object.assign` directly instead of an extend helper.
|
|
*
|
|
* Only used for `classic` {@link runtime}.
|
|
*
|
|
* @default false
|
|
*/
|
|
useBuiltIns?: boolean
|
|
/**
|
|
* When spreading props, use inline object with spread elements directly
|
|
* instead of an extend helper or Object.assign.
|
|
*
|
|
* Only used for `classic` {@link runtime}.
|
|
*
|
|
* @default false
|
|
*/
|
|
useSpread?: boolean
|
|
/** Enable react fast refresh transform */
|
|
refresh?: ReactRefreshBindingOptions
|
|
}
|
|
|
|
export interface ReactRefreshBindingOptions {
|
|
/**
|
|
* Specify the identifier of the refresh registration variable.
|
|
*
|
|
* @default `$RefreshReg$`.
|
|
*/
|
|
refreshReg?: string
|
|
/**
|
|
* Specify the identifier of the refresh signature variable.
|
|
*
|
|
* @default `$RefreshSig$`.
|
|
*/
|
|
refreshSig?: string
|
|
emitFullSignatures?: boolean
|
|
}
|
|
|
|
export interface SourceMap {
|
|
file?: string
|
|
mappings?: string
|
|
names?: Array<string>
|
|
sourceRoot?: string
|
|
sources?: Array<string | undefined | null>
|
|
sourcesContent?: Array<string | undefined | null>
|
|
version: number
|
|
x_google_ignoreList?: Array<number>
|
|
}
|
|
|
|
/**
|
|
* Transpile a JavaScript or TypeScript into a target ECMAScript version.
|
|
*
|
|
* @param filename The name of the file being transformed. If this is a
|
|
* relative path, consider setting the {@link TransformOptions#cwd} option..
|
|
* @param sourceText the source code itself
|
|
* @param options The options for the transformation. See {@link
|
|
* TransformOptions} for more information.
|
|
*
|
|
* @returns an object containing the transformed code, source maps, and any
|
|
* errors that occurred during parsing or transformation.
|
|
*/
|
|
export declare function transform(filename: string, sourceText: string, options?: TransformOptions | undefined | null): TransformResult
|
|
|
|
/**
|
|
* Options for transforming a JavaScript or TypeScript file.
|
|
*
|
|
* @see {@link transform}
|
|
*/
|
|
export interface TransformOptions {
|
|
sourceType?: 'script' | 'module' | 'unambiguous' | undefined
|
|
/**
|
|
* The current working directory. Used to resolve relative paths in other
|
|
* options.
|
|
*/
|
|
cwd?: string
|
|
/**
|
|
* Force jsx parsing,
|
|
*
|
|
* @default false
|
|
*/
|
|
jsx?: boolean
|
|
/** Configure how TypeScript is transformed. */
|
|
typescript?: TypeScriptBindingOptions
|
|
/** Configure how TSX and JSX are transformed. */
|
|
react?: ReactBindingOptions
|
|
/** Enable ES2015 transformations. */
|
|
es2015?: Es2015BindingOptions
|
|
/**
|
|
* Enable source map generation.
|
|
*
|
|
* When `true`, the `sourceMap` field of transform result objects will be populated.
|
|
*
|
|
* @default false
|
|
*
|
|
* @see {@link SourceMap}
|
|
*/
|
|
sourcemap?: boolean
|
|
}
|
|
|
|
export interface TransformResult {
|
|
/**
|
|
* The transformed code.
|
|
*
|
|
* If parsing failed, this will be an empty string.
|
|
*/
|
|
code: string
|
|
/**
|
|
* The source map for the transformed code.
|
|
*
|
|
* This will be set if {@link TransformOptions#sourcemap} is `true`.
|
|
*/
|
|
map?: SourceMap
|
|
/**
|
|
* The `.d.ts` declaration file for the transformed code. Declarations are
|
|
* only generated if `declaration` is set to `true` and a TypeScript file
|
|
* is provided.
|
|
*
|
|
* If parsing failed and `declaration` is set, this will be an empty string.
|
|
*
|
|
* @see {@link TypeScriptBindingOptions#declaration}
|
|
* @see [declaration tsconfig option](https://www.typescriptlang.org/tsconfig/#declaration)
|
|
*/
|
|
declaration?: string
|
|
/**
|
|
* Declaration source map. Only generated if both
|
|
* {@link TypeScriptBindingOptions#declaration declaration} and
|
|
* {@link TransformOptions#sourcemap sourcemap} are set to `true`.
|
|
*/
|
|
declarationMap?: SourceMap
|
|
/**
|
|
* Parse and transformation errors.
|
|
*
|
|
* Oxc's parser recovers from common syntax errors, meaning that
|
|
* transformed code may still be available even if there are errors in this
|
|
* list.
|
|
*/
|
|
errors: Array<string>
|
|
}
|
|
|
|
export interface TypeScriptBindingOptions {
|
|
jsxPragma?: string
|
|
jsxPragmaFrag?: string
|
|
onlyRemoveTypeImports?: boolean
|
|
allowNamespaces?: boolean
|
|
allowDeclareFields?: boolean
|
|
/**
|
|
* Also generate a `.d.ts` declaration file for TypeScript files.
|
|
*
|
|
* The source file must be compliant with all
|
|
* [`isolatedDeclarations`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-5.html#isolated-declarations)
|
|
* requirements.
|
|
*
|
|
* @default false
|
|
*/
|
|
declaration?: boolean
|
|
/**
|
|
* Rewrite or remove TypeScript import/export declaration extensions.
|
|
*
|
|
* - When set to `rewrite`, it will change `.ts`, `.mts`, `.cts` extensions to `.js`, `.mjs`, `.cjs` respectively.
|
|
* - When set to `remove`, it will remove `.ts`/`.mts`/`.cts`/`.tsx` extension entirely.
|
|
* - When set to `true`, it's equivalent to `rewrite`.
|
|
* - When set to `false` or omitted, no changes will be made to the extensions.
|
|
*
|
|
* @default false
|
|
*/
|
|
rewriteImportExtensions?: 'rewrite' | 'remove' | boolean
|
|
}
|
|
|