fix(core): update

This commit is contained in:
Philipp Kunz 2019-10-12 16:54:03 +02:00
parent b73807baf0
commit 5fe27ee706
6 changed files with 85 additions and 29 deletions

35
package-lock.json generated
View File

@ -804,9 +804,9 @@
}
},
"@gitzone/tsbundle": {
"version": "1.0.45",
"resolved": "https://verdaccio.lossless.one/@gitzone%2ftsbundle/-/tsbundle-1.0.45.tgz",
"integrity": "sha512-hN4SEozvZZUXmRsL1D1SjVzXR7+Tq4V5I2MZrAz60IJOztd4QiCpRQwgfLHS70K5PH9TE736+lhs0l3XbABVbA==",
"version": "1.0.47",
"resolved": "https://verdaccio.lossless.one/@gitzone%2ftsbundle/-/tsbundle-1.0.47.tgz",
"integrity": "sha512-lg/LHfzF+SqXa+SaiCNlCja+N/xreu87rc83hadsDmCids1yurevB5e6W3xRbWGyJxiQ3yrTunRolPPP040hPQ==",
"requires": {
"@babel/core": "^7.6.2",
"@babel/plugin-proposal-class-properties": "^7.5.5",
@ -1354,6 +1354,35 @@
}
}
},
"@pushrocks/taskbuffer": {
"version": "2.0.15",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2ftaskbuffer/-/taskbuffer-2.0.15.tgz",
"integrity": "sha512-mDqakt2NU9gv6Vd5hTZj9Nv3YgjUU5r1ILK3YZOlOjzcKXZkVYL1+BdtrPUb4Shp30xPXpMSBaesC1OZNliWjQ==",
"requires": {
"@pushrocks/lik": "^3.0.11",
"@pushrocks/smartdelay": "^2.0.3",
"@pushrocks/smartlog": "^2.0.19",
"@pushrocks/smartpromise": "^3.0.5",
"@types/cron": "^1.7.1",
"cron": "^1.7.2",
"rxjs": "^6.5.3"
},
"dependencies": {
"@pushrocks/smartpromise": {
"version": "3.0.6",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.6.tgz",
"integrity": "sha512-vlQlBGNVIjfClgnsfgQBU6GIKcskYSFzEcKLt18ngPzPEcjKklXcxaqzLXpnoxR+KBh30QPE8255ncYHXuPPOg=="
},
"rxjs": {
"version": "6.5.3",
"resolved": "https://verdaccio.lossless.one/rxjs/-/rxjs-6.5.3.tgz",
"integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
"requires": {
"tslib": "^1.9.0"
}
}
}
},
"@types/body-parser": {
"version": "1.17.1",
"resolved": "https://verdaccio.lossless.one/@types%2fbody-parser/-/body-parser-1.17.1.tgz",

View File

@ -23,7 +23,7 @@
"tslint-config-prettier": "^1.18.0"
},
"dependencies": {
"@gitzone/tsbundle": "^1.0.45",
"@gitzone/tsbundle": "^1.0.47",
"@gitzone/tsrun": "^1.2.8",
"@pushrocks/early": "^3.0.3",
"@pushrocks/lik": "^3.0.11",
@ -33,7 +33,8 @@
"@pushrocks/smartlog": "^2.0.19",
"@pushrocks/smartlog-destination-local": "^8.0.2",
"@pushrocks/smartserve": "^1.1.37",
"@pushrocks/smartshell": "^2.0.25"
"@pushrocks/smartshell": "^2.0.25",
"@pushrocks/taskbuffer": "^2.0.15"
},
"files": [
"ts/**/*",

View File

@ -1,12 +0,0 @@
import * as plugins from './tswatch.plugins';
/**
* an element server for developing lit elements compliant to gitzone standard
*/
export class ElementServer {
constructor() {
}
}

View File

@ -38,8 +38,13 @@ export class TsWatch {
case 'gitzone_element':
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,16 +62,20 @@ export class Watcher {
* updates the current execution
*/
private async updateCurrentExecution() {
if (this.currentExecution) {
logger.log('ok', `reexecuting ${this.options.commandToExecute}`);
process.kill(-this.currentExecution.childProcess.pid);
if (typeof this.options.commandToExecute === 'string') {
if (this.currentExecution) {
logger.log('ok', `reexecuting ${this.options.commandToExecute}`);
process.kill(-this.currentExecution.childProcess.pid);
} else {
logger.log('ok', `executing ${this.options.commandToExecute} for the first time`);
}
this.currentExecution = await this.smartshellInstance.execStreaming(
this.options.commandToExecute
);
this.currentExecution = null;
} else {
logger.log('ok', `executing ${this.options.commandToExecute} for the first time`);
await this.executionTask.trigger();
}
this.currentExecution = await this.smartshellInstance.execStreaming(
this.options.commandToExecute
);
this.currentExecution = null;
}
/**

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';
@ -9,5 +16,6 @@ import * as smartdelay from '@pushrocks/smartdelay';
import * as smartlog from '@pushrocks/smartlog';
import * as smartlogDestinationLocal from '@pushrocks/smartlog-destination-local';
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, smartshell, taskbuffer };