index.d.ts 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import type { Plugin, ParseOptions, Module, Output, Options, Script, Program, JsMinifyOptions } from "@swc/types";
  2. export * from "@swc/types";
  3. import { BundleInput } from "./spack";
  4. /**
  5. * Version of the swc binding.
  6. */
  7. export declare const version: string;
  8. /**
  9. * @deprecated JavaScript API is deprecated. Please use Wasm plugin instead.
  10. */
  11. export declare function plugins(ps: Plugin[]): Plugin;
  12. export declare class Compiler {
  13. private fallbackBindingsPluginWarningDisplayed;
  14. minify(src: string, opts?: JsMinifyOptions): Promise<Output>;
  15. minifySync(src: string, opts?: JsMinifyOptions): Output;
  16. parse(src: string, options: ParseOptions & {
  17. isModule: false;
  18. }): Promise<Script>;
  19. parse(src: string, options?: ParseOptions, filename?: string): Promise<Module>;
  20. parseSync(src: string, options: ParseOptions & {
  21. isModule: false;
  22. }): Script;
  23. parseSync(src: string, options?: ParseOptions, filename?: string): Module;
  24. parseFile(path: string, options: ParseOptions & {
  25. isModule: false;
  26. }): Promise<Script>;
  27. parseFile(path: string, options?: ParseOptions): Promise<Module>;
  28. parseFileSync(path: string, options: ParseOptions & {
  29. isModule: false;
  30. }): Script;
  31. parseFileSync(path: string, options?: ParseOptions): Module;
  32. /**
  33. * Note: this method should be invoked on the compiler instance used
  34. * for `parse()` / `parseSync()`.
  35. */
  36. print(m: Program, options?: Options): Promise<Output>;
  37. /**
  38. * Note: this method should be invoked on the compiler instance used
  39. * for `parse()` / `parseSync()`.
  40. */
  41. printSync(m: Program, options?: Options): Output;
  42. transform(src: string | Program, options?: Options): Promise<Output>;
  43. transformSync(src: string | Program, options?: Options): Output;
  44. transformFile(path: string, options?: Options): Promise<Output>;
  45. transformFileSync(path: string, options?: Options): Output;
  46. bundle(options?: BundleInput | string): Promise<{
  47. [name: string]: Output;
  48. }>;
  49. }
  50. export declare function parse(src: string, options: ParseOptions & {
  51. isModule: false;
  52. }): Promise<Script>;
  53. export declare function parse(src: string, options?: ParseOptions): Promise<Module>;
  54. export declare function parseSync(src: string, options: ParseOptions & {
  55. isModule: false;
  56. }): Script;
  57. export declare function parseSync(src: string, options?: ParseOptions): Module;
  58. export declare function parseFile(path: string, options: ParseOptions & {
  59. isModule: false;
  60. }): Promise<Script>;
  61. export declare function parseFile(path: string, options?: ParseOptions): Promise<Module>;
  62. export declare function parseFileSync(path: string, options: ParseOptions & {
  63. isModule: false;
  64. }): Script;
  65. export declare function parseFileSync(path: string, options?: ParseOptions): Module;
  66. export declare function print(m: Program, options?: Options): Promise<Output>;
  67. export declare function printSync(m: Program, options?: Options): Output;
  68. export declare function transform(src: string | Program, options?: Options): Promise<Output>;
  69. export declare function transformSync(src: string | Program, options?: Options): Output;
  70. export declare function transformFile(path: string, options?: Options): Promise<Output>;
  71. export declare function transformFileSync(path: string, options?: Options): Output;
  72. export declare function bundle(options?: BundleInput | string): Promise<{
  73. [name: string]: Output;
  74. }>;
  75. export declare function minify(src: string, opts?: JsMinifyOptions): Promise<Output>;
  76. export declare function minifySync(src: string, opts?: JsMinifyOptions): Output;
  77. /**
  78. * Configure custom trace configuration runs for a process lifecycle.
  79. * Currently only chromium's trace event format is supported.
  80. * (https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview)
  81. *
  82. * This should be called before calling any binding interfaces exported in `@swc/core`, such as
  83. * `transform*`, or `parse*` or anything. To avoid breaking changes, each binding fn internally
  84. * sets default trace subscriber if not set.
  85. *
  86. * Unlike other configuration, this does not belong to individual api surface using swcrc
  87. * or api's parameters (`transform(..., {trace})`). This is due to current tracing subscriber
  88. * can be configured only once for the global scope. Calling `registerGlobalTraceConfig` multiple
  89. * time won't cause error, subsequent calls will be ignored.
  90. *
  91. * As name implies currently this is experimental interface may change over time without semver
  92. * major breaking changes. Please provide feedbacks,
  93. * or bug report at https://github.com/swc-project/swc/discussions.
  94. */
  95. export declare function __experimental_registerGlobalTraceConfig(traceConfig: {
  96. type: 'traceEvent';
  97. fileName?: string;
  98. }): void;
  99. /**
  100. * @ignore
  101. *
  102. * Returns current binary's metadata to determine which binary is actually loaded.
  103. *
  104. * This is undocumented interface, does not guarantee stability across `@swc/core`'s semver
  105. * as internal representation may change anytime. Use it with caution.
  106. */
  107. export declare function getBinaryMetadata(): {
  108. target: string | undefined;
  109. };
  110. export declare const DEFAULT_EXTENSIONS: readonly string[];