Compare commits

...

9 Commits

Author SHA1 Message Date
e26fa92744 1.0.24 2019-10-12 17:17:32 +02:00
995f296319 fix(core): update 2019-10-12 17:17:31 +02:00
e7866dadb7 1.0.23 2019-10-12 17:12:51 +02:00
9302e78f86 fix(core): update 2019-10-12 17:12:50 +02:00
0a302bee95 1.0.22 2019-10-12 16:54:19 +02:00
deb5e1daf9 1.0.21 2019-10-12 16:54:03 +02:00
5fe27ee706 fix(core): update 2019-10-12 16:54:03 +02:00
b73807baf0 1.0.20 2019-10-12 15:57:44 +02:00
1e71fc24d5 fix(core): update 2019-10-12 15:57:43 +02:00
6 changed files with 2695 additions and 54 deletions

2667
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "@gitzone/tswatch",
"version": "1.0.19",
"version": "1.0.24",
"private": false,
"description": "watch typescript projects during development",
"main": "dist/index.js",
@@ -12,8 +12,7 @@
},
"scripts": {
"test": "(tstest test/)",
"build": "(tsbuild)",
"format": "(gitzone format)"
"build": "(tsbuild)"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.17",
@@ -24,6 +23,7 @@
"tslint-config-prettier": "^1.18.0"
},
"dependencies": {
"@gitzone/tsbundle": "^1.0.47",
"@gitzone/tsrun": "^1.2.8",
"@pushrocks/early": "^3.0.3",
"@pushrocks/lik": "^3.0.11",
@@ -32,7 +32,9 @@
"@pushrocks/smartdelay": "^2.0.3",
"@pushrocks/smartlog": "^2.0.19",
"@pushrocks/smartlog-destination-local": "^8.0.2",
"@pushrocks/smartshell": "^2.0.25"
"@pushrocks/smartserve": "^1.1.37",
"@pushrocks/smartshell": "^2.0.25",
"@pushrocks/taskbuffer": "^2.0.15"
},
"files": [
"ts/**/*",

View File

@@ -4,6 +4,10 @@ import * as tswatch from '../ts/index';
let testTsWatchInstance: tswatch.TsWatch;
if (process.env.CI) {
process.exit(0);
}
tap.test('should create a valid TsWatch instance', async () => {
testTsWatchInstance = new tswatch.TsWatch('echoSomething');
});

View File

@@ -36,10 +36,20 @@ export class TsWatch {
);
break;
case 'gitzone_element':
const smartserve = new plugins.smartserve.SmartServe({
injectReload: true,
serveDir: './dist_web/'
});
await smartserve.start();
this.watcherMap.add(
new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, 'ts_web'),
commandToExecute: 'npm run build',
filePathToWatch: plugins.path.join(paths.cwd, './ts_web/'),
commandToExecute: async () => {
const tsbundle = new plugins.tsbundle.TsBundle();
const htmlHandler = new plugins.tsbundle.HtmlHandler();
await tsbundle.buildProduction('./ts_web', './dist_web');
await htmlHandler.copyHtml();
},
timeout: null
})
);

View File

@@ -1,9 +1,11 @@
import * as plugins from './tswatch.plugins';
import { logger } from './tswatch.logging';
export type TCommandFunction = () => Promise<void>;
export interface IWatcherConstructorOptions {
filePathToWatch: string;
commandToExecute: string;
commandToExecute: string | TCommandFunction;
timeout?: number;
}
@@ -11,9 +13,28 @@ export interface IWatcherConstructorOptions {
* A watcher keeps track of one child execution
*/
export class Watcher {
/**
* used to execute shell commands
*/
private smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash'
});
/**
* used to execute
*/
private executionTask: plugins.taskbuffer.Task = new plugins.taskbuffer.Task({
name: 'watcherCommandFunctionTask',
taskFunction: async () => {
if (typeof this.options.commandToExecute === 'string') {
throw new Error('cannot execute string as task');
}
await this.options.commandToExecute();
},
buffered: true,
bufferMax: 1
});
private currentExecution: plugins.smartshell.IExecResultStreaming;
private smartchokWatcher = new plugins.smartchok.Smartchok([], {});
private options: IWatcherConstructorOptions;
@@ -41,6 +62,7 @@ export class Watcher {
* updates the current execution
*/
private async updateCurrentExecution() {
if (typeof this.options.commandToExecute === 'string') {
if (this.currentExecution) {
logger.log('ok', `reexecuting ${this.options.commandToExecute}`);
process.kill(-this.currentExecution.childProcess.pid);
@@ -51,6 +73,9 @@ export class Watcher {
this.options.commandToExecute
);
this.currentExecution = null;
} else {
await this.executionTask.trigger();
}
}
/**

View File

@@ -1,6 +1,13 @@
import * as path from 'path';
export { path };
// @gitzone scope
import * as tsbundle from '@gitzone/tsbundle';
export {
tsbundle
};
// @pushrocks scope
import * as lik from '@pushrocks/lik';
import * as smartchok from '@pushrocks/smartchok';
@@ -8,6 +15,8 @@ import * as smartcli from '@pushrocks/smartcli';
import * as smartdelay from '@pushrocks/smartdelay';
import * as smartlog from '@pushrocks/smartlog';
import * as smartlogDestinationLocal from '@pushrocks/smartlog-destination-local';
import * as smartserve from '@pushrocks/smartserve';
import * as smartshell from '@pushrocks/smartshell';
import * as taskbuffer from '@pushrocks/taskbuffer';
export { lik, smartchok, smartcli, smartdelay, smartlog, smartlogDestinationLocal, smartshell };
export { lik, smartchok, smartcli, smartdelay, smartlog, smartlogDestinationLocal, smartserve, smartshell, taskbuffer };