@expo/config
Version:
A library for interacting with the app.json
79 lines (78 loc) • 2.6 kB
TypeScript
type AndroidRunOptions = {
variant?: string;
device?: boolean | string;
port?: number;
bundler?: boolean;
install?: boolean;
buildCache?: boolean;
allArch?: boolean;
binary?: string;
appId?: string;
};
type IosRunOptions = {
/** iOS device to target. */
device?: string | boolean;
/** Dev server port to use, ignored if `bundler` is `false`. */
port?: number;
/** Xcode scheme to build. */
scheme?: string | boolean;
/** Xcode configuration to build. Default `Debug` */
configuration?: 'Debug' | 'Release';
/** Should start the bundler dev server. */
bundler?: boolean;
/** Should install missing dependencies before building. */
install?: boolean;
/** Should use derived data for builds. */
buildCache?: boolean;
/** Path to an existing binary to install on the device. */
binary?: string;
/** Re-bundle JS and assets, then embed in existing app, and install again. */
rebundle?: boolean;
};
export type RunOptions = AndroidRunOptions | IosRunOptions;
export type ResolveBuildCacheProps = {
projectRoot: string;
platform: 'android' | 'ios';
runOptions: RunOptions;
fingerprintHash: string;
};
/**
* @deprecated Use `ResolveBuildCacheProps` instead.
*/
export type ResolveRemoteBuildCacheProps = ResolveBuildCacheProps;
export type UploadBuildCacheProps = {
projectRoot: string;
buildPath: string;
runOptions: RunOptions;
fingerprintHash: string;
platform: 'android' | 'ios';
};
/**
* @deprecated Use `ResolveBuildCacheProps` instead.
*/
export type UploadRemoteBuildCacheProps = UploadBuildCacheProps;
export type CalculateFingerprintHashProps = {
projectRoot: string;
platform: 'android' | 'ios';
runOptions: RunOptions;
};
export type BuildCacheProvider<T = any> = {
plugin: BuildCacheProviderPlugin<T>;
options: T;
};
export type BuildCacheProviderPlugin<T = any> = {
calculateFingerprintHash?: (props: CalculateFingerprintHashProps, options: T) => Promise<string | null>;
} & ({
resolveBuildCache(props: ResolveBuildCacheProps, options: T): Promise<string | null>;
uploadBuildCache(props: UploadBuildCacheProps, options: T): Promise<string | null>;
} | {
/**
* @deprecated Use `resolveBuildCache` instead.
*/
resolveRemoteBuildCache: (props: ResolveRemoteBuildCacheProps, options: T) => Promise<string | null>;
/**
* @deprecated Use `uploadBuildCache` instead.
*/
uploadRemoteBuildCache: (props: UploadRemoteBuildCacheProps, options: T) => Promise<string | null>;
});
export {};