UNPKG

spinjs

Version:

[![Join the chat at https://gitter.im/sysgears/spinjs](https://badges.gitter.im/sysgears/spinjs.svg)](https://gitter.im/sysgears/spinjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![npm version](https://badge.fury.io/js/spi

41 lines (33 loc) 1.3 kB
// tslint:disable-next-line import { Configuration } from 'webpack'; import * as merge from 'webpack-merge'; import { Builder } from './Builder'; export default class Spin { public dev: boolean; public test: boolean; public watch: boolean; public cmd: string; public cwd: string; public options: any; constructor(cwd, cmd) { this.cmd = cmd; this.cwd = cwd; this.dev = ['watch', 'start', 'test'].indexOf(this.cmd) >= 0; this.test = this.cmd === 'test'; this.watch = ['watch', 'start'].indexOf(this.cmd) >= 0; } public createConfig(builder: Builder, tool: string, config): Configuration { const { merge: mergeStrategy, ...configOverrides } = builder[tool + 'Config'] || { merge: {} }; return this.mergeWithStrategy(mergeStrategy, config, configOverrides); } public merge(config: any, overrides: any): Configuration { return merge.smart(config, overrides); } public mergeWithInStrategy(config: any, overrides: any): any { const { merge: mergeStrategy, ...configOverrides } = overrides || { merge: {} }; return this.mergeWithStrategy(mergeStrategy, config, configOverrides); } public mergeWithStrategy(strategy: any, config: any, overrides: any): Configuration { return merge.smartStrategy(strategy)(config, overrides); } }