UNPKG

react-native-monorepo-helper

Version:

A helper library that makes React Native development in monorepo projects easier.

111 lines (110 loc) 3.83 kB
export interface ILogger { debug: (...args: any[]) => any; trace: (...args: any[]) => any; error: (...args: any[]) => any; } export declare namespace Metro { enum ResolutionType { ASSET = "asset", SOURCE_FILE = "sourceFile" } type CustomResolver = (metro: IResolverConfig, moduleName: string, platform: string) => IResolution | null; interface IResolution { type: ResolutionType; filePath: string; } interface IConfig { projectRoot?: string; watchFolders: string[]; resolver: { resolveRequest?: CustomResolver; extraNodeModules?: { [moduleName: string]: string; }; }; sourceExts?: string[]; getTransformModulePath?: () => any; } interface IResolverConfig { originModulePath: string; sourceExts: string[]; assetExts?: string[]; mainFields: string[]; } } export interface IMonorepoInfo { root: string; project: { root: string; }; packages: Array<{ root: string; }>; } declare type FMonorepoFinder = (projectRoot: string, helper: MetroConfigHelper) => IMonorepoInfo | null; interface IMetroConfigHelperOptions { logger?: ILogger; defaultConfig?: Partial<Metro.IConfig>; monorepoFinders?: FMonorepoFinder[]; projectRoot?: string; } interface ITypeScriptConfig { transformerModuleName: string; fileExtensions: string[]; } declare class MetroConfigHelper { private monorepoFinders_; private logger_; private defaultConfig_?; private monorepo_?; private projectRoot_?; private watchFolders_; private customResolver_?; private config_?; private typeScript_; constructor(options?: IMetroConfigHelperOptions); projectRoot(): string; projectRoot(newProjectRoot: string): this; monorepoFinder(...finder: FMonorepoFinder[]): this; findMonorepo(): IMonorepoInfo | undefined; logger(): ILogger; logger(newLogger: ILogger): this; defaultConfig(): Partial<Metro.IConfig>; defaultConfig(newDefaultConfig: Partial<Metro.IConfig>): this; monorepo(): IMonorepoInfo; monorepo(newMonorepoInfo: IMonorepoInfo): this; typeScript(): false | ITypeScriptConfig; typeScript(enabled: boolean | string | Partial<ITypeScriptConfig>): this; watchFolder(...folder: string[]): this; packageRoots(): string[]; watchFolders(): string[]; customResolver(): Metro.CustomResolver; customResolver(newResolver: Metro.CustomResolver): this; createCustomResolver(): Metro.CustomResolver; config(): Metro.IConfig; config(newConfig: Metro.IConfig): this; generate(): Metro.IConfig; private readonly mapByFolderFollowingSymlink; private readonly filterByNonEmptyString; private resolveInProject; private fileModuleExists; private isDirectory; private generateComplementaryExtensions; private isTypeScriptConfig; } export declare function findLernaMonorepo(projectRoot: string, helper: MetroConfigHelper): IMonorepoInfo | null; export declare function findYarnMonorepo(projectRoot: string, helper: MetroConfigHelper): IMonorepoInfo | null; export declare const nullLogger: ILogger; export declare const consoleLogger: ILogger; export declare const defaultHelperOptions: { logger: { trace: (...args: any[]) => any; debug: (...args: any[]) => any; error: (...args: any[]) => any; }; monorepoFinders: (typeof findLernaMonorepo)[]; }; export declare const defaultTypeScriptConfig: ITypeScriptConfig; export declare function metroConfigHelper(projectRoot: string, options?: IMetroConfigHelperOptions): MetroConfigHelper; export declare function metroConfig(projectRoot: string): Metro.IConfig; export default metroConfig;