diff --git a/index.d.ts b/index.d.ts index 2f5950a..44166db 100644 --- a/index.d.ts +++ b/index.d.ts @@ -13,10 +13,11 @@ declare module "docker-compose" { exec(container:String, command:String, options: IDockerComposeOptions): Promise; logs(container:String, command:String, options: IDockerComposeLogOptions): Promise; run(service:String, command:String, options: IDockerComposeOptions): Promise; - buildAll(options: IDockerComposeOptions): Promise; - buildMany(services:String[], options: IDockerComposeOptions): Promise; + buildAll(options: IDockerComposeBuildOptions): Promise; + buildMany(services:String[], options: IDockerComposeBuildOptions): Promise; buildOne(service:String, options: IDockerComposeOptions): Promise; ps(options: IDockerComposeOptions): Promise; + push(options: IDockerComposePushOptions): Promise; } interface IDockerComposeOptions { @@ -25,10 +26,18 @@ declare module "docker-compose" { log?: boolean; } - interface IDockerComposeLogOptions extends IDockerComposeOptions{ + interface IDockerComposeLogOptions extends IDockerComposeOptions { follow: boolean; } + interface IDockerComposeBuildOptions extends IDockerComposeOptions { + parallel?: boolean; + } + + interface IDockerComposePushOptions extends IDockerComposeOptions { + ignorePushFailures?: boolean; + } + interface IDockerComposeResult { out: string; err: string; diff --git a/index.js b/index.js index bd567f8..419a9ea 100644 --- a/index.js +++ b/index.js @@ -182,13 +182,18 @@ const run = function (container, command, options) { * @param {object} options * @param {string} options.cwd * @param {boolean} [options.log] + * @param {?boolean} [options.parallel] * @param {?(string|string[])} [options.config] * @param {?object} [options.env] * * @return {object} std.out / std.err */ const buildAll = function (options) { - return execCompose('build', [], options); + return execCompose( + 'build', + options.parallel ? [ '--parallel' ] : [], + options, + ); }; /** @@ -197,13 +202,18 @@ const buildAll = function (options) { * @param {object} options * @param {string} options.cwd * @param {boolean} [options.log] + * @param {?boolean} [options.parallel] * @param {?(string|string[])} [options.config] * @param {?object} [options.env] * * @return {object} std.out / std.err */ const buildMany = function (services, options) { - return execCompose('build', services, options); + return execCompose( + 'build', + options.parallel ? [ '--parallel' ].concat(services) : services, + options, + ); }; /** @@ -233,6 +243,23 @@ const ps = function (options) { return execCompose('ps', [], options); }; +/** + * Push command + * @param {object} options + * @param {string} options.cwd + * @param {boolean} [options.log] + * @param {?boolean} options.ignorePushFailures + * @param {?(string|string[])} [options.config] + * @param {?object} [options.env] + */ +const push = function (options) { + return execCompose( + 'push', + options.ignorePushFailures ? [ '--ignore-push-failures' ] : [], + options, + ); +}; + /** * @param {object} options * @param {string} options.cwd @@ -287,4 +314,23 @@ const logs = function (service, options) { return execCompose('logs', args, options); }; -module.exports = { upAll, upMany, upOne, kill, down, stop, rm, exec, logs, restartAll, restartMany, restartOne, run, buildAll, buildMany, buildOne, ps }; +module.exports = { + upAll, + upMany, + upOne, + kill, + down, + stop, + rm, + exec, + logs, + restartAll, + restartMany, + restartOne, + run, + buildAll, + buildMany, + buildOne, + ps, + push, +};