35 lines
993 B
TypeScript
35 lines
993 B
TypeScript
import * as q from 'smartq';
|
|
import * as smartchok from 'smartchok';
|
|
|
|
import * as plugins from './npmts.plugins';
|
|
import * as cli from './npmts.cli';
|
|
|
|
import { INpmtsConfig } from './npmts.config';
|
|
|
|
let npmtsSmartchok: smartchok.Smartchok = null;
|
|
export let run = (configArg: INpmtsConfig) => {
|
|
let done = q.defer();
|
|
if (configArg.watch && npmtsSmartchok === null) {
|
|
let pathsToWatch: string[] = [];
|
|
for (let key in configArg.ts) {
|
|
pathsToWatch.push(key);
|
|
}
|
|
for (let key in configArg.testTs) {
|
|
pathsToWatch.push(key);
|
|
}
|
|
npmtsSmartchok = new smartchok.Smartchok(pathsToWatch);
|
|
npmtsSmartchok.getObservableFor('change').then(changeObservableArg => {
|
|
plugins.beautylog.info('now watching...');
|
|
changeObservableArg.subscribe(() => {
|
|
cli.run();
|
|
});
|
|
});
|
|
npmtsSmartchok.start();
|
|
done.resolve(configArg);
|
|
} else {
|
|
plugins.beautylog.info('not watching');
|
|
done.resolve(configArg);
|
|
}
|
|
return done.promise;
|
|
};
|