///
///
import { ExtensionInstance } from '../../models/extensions/extension-instance.js';
import { FunctionConfigType } from '../../models/extensions/specifications/function.js';
import { AppInterface } from '../../models/app/app.js';
import { BuildResult, BuildOptions } from 'esbuild';
import { AbortSignal } from '@shopify/cli-kit/node/abort';
import { Writable } from 'stream';
interface JSFunctionBuildOptions {
stdout: Writable;
stderr: Writable;
signal?: AbortSignal;
app: AppInterface;
useTasks?: boolean;
}
export declare function buildJSFunction(fun: ExtensionInstance, options: JSFunctionBuildOptions): Promise;
export declare function buildJSFunctionWithTasks(fun: ExtensionInstance, options: JSFunctionBuildOptions, builder: JavyBuilder): Promise;
export declare function buildGraphqlTypes(fun: {
directory: string;
isJavaScript: boolean;
}, options: JSFunctionBuildOptions): Promise;
export declare function bundleExtension(fun: ExtensionInstance, options: JSFunctionBuildOptions, processEnv?: NodeJS.ProcessEnv): Promise | undefined;
loader?: {
[ext: string]: import("esbuild").Loader;
} | undefined;
resolveExtensions?: string[] | undefined;
mainFields?: string[] | undefined;
conditions?: string[] | undefined;
write?: boolean | undefined;
allowOverwrite?: boolean | undefined;
tsconfig?: string | undefined;
outExtension?: {
[ext: string]: string;
} | undefined;
publicPath?: string | undefined;
entryNames?: string | undefined;
chunkNames?: string | undefined;
assetNames?: string | undefined;
inject?: string[] | undefined;
banner?: {
[type: string]: string;
} | undefined;
footer?: {
[type: string]: string;
} | undefined;
stdin?: import("esbuild").StdinOptions | undefined;
plugins?: import("esbuild").Plugin[] | undefined;
absWorkingDir?: string | undefined;
nodePaths?: string[] | undefined;
sourcemap?: boolean | "external" | "inline" | "linked" | "both" | undefined;
legalComments?: "external" | "none" | "inline" | "eof" | "linked" | undefined;
sourceRoot?: string | undefined;
sourcesContent?: boolean | undefined;
format?: import("esbuild").Format | undefined;
globalName?: string | undefined;
target?: string | string[] | undefined;
supported?: Record | undefined;
platform?: import("esbuild").Platform | undefined;
mangleProps?: RegExp | undefined;
reserveProps?: RegExp | undefined;
mangleQuoted?: boolean | undefined;
mangleCache?: Record | undefined;
drop?: import("esbuild").Drop[] | undefined;
dropLabels?: string[] | undefined;
minify?: boolean | undefined;
minifyWhitespace?: boolean | undefined;
minifyIdentifiers?: boolean | undefined;
minifySyntax?: boolean | undefined;
lineLimit?: number | undefined;
charset?: import("esbuild").Charset | undefined;
treeShaking?: boolean | undefined;
ignoreAnnotations?: boolean | undefined;
jsx?: "transform" | "automatic" | "preserve" | undefined;
jsxFactory?: string | undefined;
jsxFragment?: string | undefined;
jsxImportSource?: string | undefined;
jsxDev?: boolean | undefined;
jsxSideEffects?: boolean | undefined;
define?: {
[key: string]: string;
} | undefined;
pure?: string[] | undefined;
keepNames?: boolean | undefined;
color?: boolean | undefined;
logLevel?: import("esbuild").LogLevel | undefined;
logLimit?: number | undefined;
logOverride?: Record | undefined;
tsconfigRaw?: string | import("esbuild").TsconfigRaw | undefined;
}>>;
export declare function runJavy(fun: ExtensionInstance, options: JSFunctionBuildOptions, extra?: string[]): Promise;
export declare function installJavy(app: AppInterface): Promise;
interface FunctionRunnerOptions {
input?: string;
json: boolean;
export?: string;
}
export declare function runFunctionRunner(fun: ExtensionInstance, options: FunctionRunnerOptions): Promise;
export interface JavyBuilder {
bundle(fun: ExtensionInstance, options: JSFunctionBuildOptions): Promise>;
compile(fun: ExtensionInstance, options: JSFunctionBuildOptions): Promise;
}
export declare const DefaultJavyBuilder: JavyBuilder;
export declare class ExportJavyBuilder implements JavyBuilder {
exports: string[];
constructor(exports: string[]);
bundle(fun: ExtensionInstance, options: JSFunctionBuildOptions, processEnv?: NodeJS.ProcessEnv): Promise>;
compile(fun: ExtensionInstance, options: JSFunctionBuildOptions): Promise;
get wit(): string;
get entrypointContents(): string;
}
export declare function jsExports(fun: ExtensionInstance): string[];
export {};