import { Archiver } from 'archiver'; import { Logger } from './lib/Logger'; export interface IModule { name: string; packagePath: string; relativePath: string; packageJson: any; packageDir: string; } export declare type IUglifyParams = null | boolean | { [key: string]: any; }; /** * @class ModuleBundler * * Handles the inclusion of node_modules. */ export declare class ModuleBundler { modules: IModule[]; logger: Logger; archive: Archiver; servicePath: string; uglify: IUglifyParams; constructor(config: { logger: Logger; archive: Archiver; servicePath: string; uglify?: IUglifyParams; }); /** * Determines module locations then adds them into ./node_modules * inside the artifact. */ bundle({ include, exclude, deepExclude }: { include?: string[]; exclude?: string[]; deepExclude?: string[]; }): Promise; private resolveTransforms; private resolveSymlinkPath; /** * Resolves a package's dependencies to an array of paths. */ private resolveDependencies; }