Compare commits

...

14 Commits

Author SHA1 Message Date
bf2a32a5d5 1.0.34 2020-03-13 17:43:58 +00:00
7ced66fc28 fix(core): update 2020-03-13 17:43:57 +00:00
d01905ae99 1.0.33 2020-03-09 15:08:06 +00:00
59c744cc5e fix(core): update 2020-03-09 15:08:05 +00:00
4d23145529 1.0.32 2020-03-09 14:52:38 +00:00
27e0d7588d fix(core): update 2020-03-09 14:52:37 +00:00
88d4bf6be0 1.0.31 2020-03-05 09:26:41 +00:00
d4f8215f35 fix(core): update 2020-03-05 09:26:41 +00:00
85f72feeb9 1.0.30 2019-10-14 14:57:43 +02:00
bd4ccbd215 fix(core): update 2019-10-14 14:57:43 +02:00
79940cec3f 1.0.29 2019-10-14 14:53:56 +02:00
e20508ffbc fix(core): update 2019-10-14 14:53:55 +02:00
21b962b9a8 1.0.28 2019-10-12 18:09:42 +02:00
f673e8577b fix(core): update 2019-10-12 18:09:41 +02:00
7 changed files with 5536 additions and 1070 deletions

6452
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.27",
"version": "1.0.34",
"private": false,
"description": "watch typescript projects during development",
"main": "dist/index.js",
@@ -17,24 +17,25 @@
"devDependencies": {
"@gitzone/tsbuild": "^2.1.17",
"@gitzone/tstest": "^1.0.28",
"@pushrocks/tapbundle": "^3.0.13",
"@types/node": "^12.7.12",
"tslint": "^5.20.0",
"@pushrocks/tapbundle": "^3.2.0",
"@types/node": "^13.9.0",
"tslint": "^6.0.0",
"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",
"@pushrocks/lik": "^3.0.19",
"@pushrocks/smartchok": "^1.0.23",
"@pushrocks/smartcli": "^3.0.7",
"@pushrocks/smartdelay": "^2.0.3",
"@pushrocks/smartlog": "^2.0.19",
"@pushrocks/smartdelay": "^2.0.6",
"@pushrocks/smartlog": "^2.0.21",
"@pushrocks/smartlog-destination-local": "^8.0.2",
"@pushrocks/smartserve": "^1.1.37",
"@pushrocks/smartserve": "^1.1.39",
"@pushrocks/smartshell": "^2.0.25",
"@pushrocks/taskbuffer": "^2.0.15"
"@pushrocks/taskbuffer": "^2.1.1",
"@types/parcel-bundler": "^1.12.1",
"parcel-bundler": "^1.12.4"
},
"files": [
"ts/**/*",

View File

@@ -0,0 +1,37 @@
import * as plugins from './tswatch.plugins';
import * as paths from './tswatch.paths';
export class Parcel {
public async start() {
const entryFiles = plugins.path.join(paths.cwd, './html/index.html');
// Bundler options
const options: plugins.parcel.ParcelOptions = {
outDir: './dist_watch', // The out directory to put the build files in, defaults to dist
outFile: 'index.html', // The name of the outputFile
publicUrl: '/', // The url to serve on, defaults to '/'
watch: true, // Whether to watch the files and rebuild them on change, defaults to process.env.NODE_ENV !== 'production'
cache: true, // Enabled or disables caching, defaults to true
cacheDir: '.nogit/.parcelcache', // The directory cache gets put in, defaults to .cache
contentHash: false, // Disable content hash from being included on the filename
global: 'moduleName', // Expose modules as UMD under this name, disabled by default
minify: false, // Minify files, enabled if process.env.NODE_ENV === 'production'
scopeHoist: false, // Turn on experimental scope hoisting/tree shaking flag, for smaller production bundles
target: 'browser', // Browser/node/electron, defaults to browser
bundleNodeModules: true, // By default, package.json dependencies are not included when using 'node' or 'electron' with 'target' option above. Set to true to adds them to the bundle, false by default
https: null,
logLevel: 3, // 5 = save everything to a file, 4 = like 3, but with timestamps and additionally log http requests to dev server, 3 = log info, warnings & errors, 2 = log warnings & errors, 1 = log errors, 0 = log nothing
hmr: true, // Enable or disable HMR while watching
hmrPort: 3003, // The port the HMR socket runs on, defaults to a random free port (0 in node.js resolves to a random free port)
sourceMaps: true, // Enable or disable sourcemaps, defaults to enabled (minified builds currently always create sourcemaps)
hmrHostname: '', // A hostname for hot module reload, default to ''
detailedReport: false // Prints a detailed report of the bundles, assets, filesizes and times, defaults to false, reports are only printed if watch is disabled
};
const bundler = new plugins.parcel(entryFiles, options);
// Run the bundler, this returns the main bundle
// Use the events if you're using watch mode as this promise will only trigger once and not for every rebuild
const bundle = await bundler.serve(3002);
}
}

View File

@@ -3,10 +3,12 @@ import * as paths from './tswatch.paths';
import * as interfaces from './interfaces';
import { Watcher } from './tswatch.classes.watcher';
import { Parcel } from './tswatch.classes.parcel';
export class TsWatch {
public watchmode: interfaces.TWatchModes;
public watcherMap = new plugins.lik.Objectmap<Watcher>();
public smartserve: plugins.smartserve.SmartServe;
constructor(watchmodeArg: interfaces.TWatchModes) {
this.watchmode = watchmodeArg;
@@ -36,24 +38,15 @@ export class TsWatch {
);
break;
case 'gitzone_element':
const smartserve = new plugins.smartserve.SmartServe({
// lets create a standard server
console.log('bundling TypeScript files to "dist_watch" Note: This is for development only!');
this.smartserve = new plugins.smartserve.SmartServe({
port: 3001,
injectReload: true,
serveDir: './dist_web/'
serveDir: plugins.path.join(paths.cwd, './dist_watch/')
});
await smartserve.start();
this.watcherMap.add(
new Watcher({
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/index.ts', './dist_web/bundle.js');
await htmlHandler.copyHtml();
},
timeout: null
})
);
const parcel = new Parcel();
await parcel.start();
break;
case 'gitzone_website':
this.watcherMap.add(
@@ -73,6 +66,15 @@ export class TsWatch {
})
);
break;
case 'gitzone_service':
this.watcherMap.add(
new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, './ts/'),
commandToExecute: 'npm run startTs',
timeout: null
})
);
break;
case 'echoSomething':
const tsWatchInstanceEchoSomething = new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, './ts'),
@@ -87,12 +89,19 @@ export class TsWatch {
this.watcherMap.forEach(async watcher => {
await watcher.start();
});
if (this.smartserve) {
await this.smartserve.start();
}
}
/**
* stops the execution of any active Watchers
*/
public async stop() {
if (this.smartserve) {
await this.smartserve.stop();
}
this.watcherMap.forEach(async watcher => {
await watcher.stop();
});

View File

@@ -55,7 +55,7 @@ export class Watcher {
changeObservable.subscribe(() => {
this.updateCurrentExecution();
});
this.updateCurrentExecution();
await this.updateCurrentExecution();
}
/**

View File

@@ -8,6 +8,24 @@ const tswatchCli = new plugins.smartcli.Smartcli();
// standard behaviour will assume gitzone setup
tswatchCli.addCommand('element').subscribe(async argvArg => {
logger.log('info', `running watch task for a gitzone element project`);
const tsWatch = new TsWatch('gitzone_element');
await tsWatch.start();
});
tswatchCli.addCommand('npm').subscribe(async argvArg => {
logger.log('info', `running watch task for a gitzone element project`);
const tsWatch = new TsWatch('gitzone_npm');
await tsWatch.start();
});
tswatchCli.addCommand('service').subscribe(async argvArg => {
logger.log('info', `running test task`);
const tsWatch = new TsWatch('gitzone_service');
await tsWatch.start();
});
tswatchCli.addCommand('test').subscribe(async argvArg => {
logger.log('info', `running test task`);
const tsWatch = new TsWatch('test');
@@ -20,10 +38,4 @@ tswatchCli.addCommand('website').subscribe(async argvArg => {
await tsWatch.start();
});
tswatchCli.addCommand('element').subscribe(async argvArg => {
logger.log('info', `running watch task for a gitzone element project`);
const tsWatch = new TsWatch('gitzone_element');
await tsWatch.start();
});
tswatchCli.startParse();

View File

@@ -1,13 +1,6 @@
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';
@@ -20,3 +13,11 @@ import * as smartshell from '@pushrocks/smartshell';
import * as taskbuffer from '@pushrocks/taskbuffer';
export { lik, smartchok, smartcli, smartdelay, smartlog, smartlogDestinationLocal, smartserve, smartshell, taskbuffer };
// third party scope
import parcel from 'parcel-bundler';
export {
parcel
};