spinjs
Version:
[](https://gitter.im/sysgears/spinjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [ • 1.01 kB
text/typescript
import * as path from 'path';
import createBuilders from './createBuilders';
interface CreateConfigOptions {
cwd?: string;
cmd?: string;
builderName?: string;
builderOverrides?: any;
genConfigOverrides?: any;
}
export default (options?: CreateConfigOptions): any => {
const defaultOptions: CreateConfigOptions = {};
const { cwd, cmd, builderName, builderOverrides, genConfigOverrides } = options || defaultOptions;
const dir = path.resolve(cwd || '.');
const { builders } = createBuilders({
cwd: dir,
cmd: cmd || 'watch',
argv: {},
builderOverrides,
genConfigOverrides
});
let builder;
if (builderName) {
builder = builders[builder];
} else {
const builderNames = Object.keys(builders || {}).filter(name => !builders[name].parent);
if (builderNames.length > 1) {
throw new Error('Too many matching builders declared you must pick the right one');
} else {
builder = builders[builderNames[0]];
}
}
return builder.config;
};