Compare commits

...

87 Commits

Author SHA1 Message Date
7481784a64 2.0.1 2022-05-04 18:41:07 +02:00
aa6649483a fix(core): update 2022-05-04 18:41:07 +02:00
65f778c40f 2.0.0 2022-05-04 17:26:37 +02:00
4204a61db9 BREAKING CHANGE(core): switch to gitzone v2 generation tools 2022-05-04 17:26:36 +02:00
181369ad3f 1.0.81 2022-04-22 09:25:57 +02:00
d5816b0ed8 fix(core): update 2022-04-22 09:25:57 +02:00
889643e233 1.0.80 2022-04-22 01:36:11 +02:00
1d3a2dcb64 fix(core): update 2022-04-22 01:36:11 +02:00
9688e3323d 1.0.79 2022-04-22 00:31:21 +02:00
6fa56e9be6 fix(core): update 2022-04-22 00:31:20 +02:00
15e9df5f4f 1.0.78 2022-04-21 23:41:45 +02:00
e0f8503b2b fix(core): update 2022-04-21 23:41:45 +02:00
1337a6ec25 1.0.77 2022-04-21 23:36:16 +02:00
bd36e3edf3 fix(core): update 2022-04-21 23:36:15 +02:00
89fae2edc9 1.0.76 2022-03-31 12:29:59 +02:00
82b09ad253 fix(core): update 2022-03-31 12:29:58 +02:00
57ce71cda3 1.0.75 2022-03-25 19:58:11 +01:00
b171a14c0a fix(core): update 2022-03-25 19:58:11 +01:00
63e0d7fe9e 1.0.74 2022-03-22 23:13:23 +01:00
e2bc505c41 1.0.73 2022-03-18 20:54:12 +01:00
af82480644 fix(core): update 2022-03-18 20:54:12 +01:00
27a08f11b7 1.0.72 2022-03-18 20:32:27 +01:00
073f978626 fix(core): update 2022-03-18 20:32:26 +01:00
8d7ab769e1 1.0.71 2022-03-18 20:32:00 +01:00
8ebc438e2d fix(core): update 2022-03-18 20:31:59 +01:00
d0d158ee87 1.0.70 2022-03-18 20:20:07 +01:00
3ada286495 fix(core): update 2022-03-18 20:20:07 +01:00
0514a74a07 1.0.69 2022-03-18 20:16:58 +01:00
587d08239a fix(core): update 2022-03-18 20:16:58 +01:00
7ee934eb46 1.0.68 2022-03-18 16:45:55 +01:00
ebcd8d4b51 1.0.67 2022-03-18 16:42:53 +01:00
27477253ee fix(core): update 2022-03-18 16:42:53 +01:00
9ed461e1e4 1.0.66 2022-03-18 16:36:13 +01:00
b854a161f3 fix(core): update 2022-03-18 16:36:13 +01:00
0598357010 1.0.65 2022-03-18 14:17:06 +01:00
9dae6dcda1 fix(core): update 2022-03-18 14:17:05 +01:00
4cf71d2edc 1.0.64 2022-03-18 13:18:15 +01:00
0eec0c04e8 fix(core): update 2022-03-18 13:18:15 +01:00
ef5d4d2a9c 1.0.63 2022-03-18 07:13:20 +01:00
f05481a267 fix(core): update 2022-03-18 07:13:20 +01:00
d66a88538a 1.0.62 2022-03-14 22:16:23 +01:00
1c1a110ca3 1.0.61 2022-03-14 22:04:11 +01:00
3f7790e8c8 fix(core): update 2022-03-14 22:04:11 +01:00
2018b27a4b 1.0.60 2022-03-14 21:17:36 +01:00
3b8ac18a6c fix(core): update 2022-03-14 21:17:36 +01:00
e36af800a3 1.0.59 2022-03-10 16:32:37 +01:00
76b810663f fix(core): update 2022-03-10 16:32:37 +01:00
9950661a36 1.0.58 2022-03-10 15:58:18 +01:00
6fa461aff5 fix(core): update 2022-03-10 15:58:17 +01:00
4ca73a77f9 1.0.57 2022-03-10 15:39:33 +01:00
2d4d243454 fix(core): update 2022-03-10 15:39:33 +01:00
f77f36312f 1.0.56 2021-08-18 18:55:44 +02:00
c508c85473 fix(core): update 2021-08-18 18:55:43 +02:00
50a0cadd11 1.0.55 2021-08-17 17:55:54 +02:00
d5cb794ea6 fix(core): update 2021-08-17 17:55:54 +02:00
3bb65bedf6 1.0.54 2021-07-26 21:44:35 +02:00
53147a8812 fix(core): update 2021-07-26 21:44:35 +02:00
c63a5f88d5 1.0.53 2021-07-26 21:42:52 +02:00
f039ace7bc fix(core): update 2021-07-26 21:42:51 +02:00
bbc34ad98b 1.0.52 2021-03-08 00:28:16 +00:00
c699954d08 fix(core): update 2021-03-08 00:28:15 +00:00
1c84726ed8 1.0.51 2021-03-08 00:26:45 +00:00
c589e20222 fix(core): update 2021-03-08 00:26:44 +00:00
f170cb8909 1.0.50 2020-07-07 18:30:17 +00:00
ca1d058789 fix(core): update 2020-07-07 18:30:17 +00:00
4423631fa9 1.0.49 2020-07-04 10:49:01 +00:00
5e62fa2124 fix(core): update 2020-07-04 10:49:00 +00:00
8ef3b47e76 1.0.48 2020-07-04 10:45:57 +00:00
ed91da6e3f fix(core): update 2020-07-04 10:45:56 +00:00
7b777ea1a9 1.0.47 2020-07-04 10:35:16 +00:00
faec3d38bc fix(core): update 2020-07-04 10:35:16 +00:00
a2ff76dc78 1.0.46 2020-05-22 08:15:00 +00:00
7e973c906a fix(core): update 2020-05-22 08:14:59 +00:00
6c109cb381 1.0.45 2020-05-22 07:59:06 +00:00
2266813faf fix(core): update 2020-05-22 07:59:05 +00:00
bf7a2c9146 1.0.44 2020-05-22 07:58:02 +00:00
1a4ada879d fix(core): update 2020-05-22 07:58:01 +00:00
0046985b82 1.0.43 2020-05-22 07:25:35 +00:00
d876b09337 fix(core): update 2020-05-22 07:25:34 +00:00
f48ba50236 1.0.42 2020-05-22 07:19:40 +00:00
f04833d5b5 fix(core): update 2020-05-22 07:19:39 +00:00
073685e683 1.0.41 2020-05-22 00:53:11 +00:00
b91b3e0a0c fix(core): update 2020-05-22 00:53:11 +00:00
12d31533f5 1.0.40 2020-05-22 00:46:13 +00:00
f9b8a356e4 fix(core): update 2020-05-22 00:46:12 +00:00
408b6f8fc5 1.0.39 2020-03-13 18:44:22 +00:00
80dd3ee970 fix(core): update 2020-03-13 18:44:21 +00:00
42 changed files with 8827 additions and 7290 deletions

4
.gitignore vendored
View File

@@ -15,8 +15,6 @@ node_modules/
# builds # builds
dist/ dist/
dist_web/ dist_*/
dist_serve/
dist_ts_web/
# custom # custom

View File

@@ -19,11 +19,37 @@ mirror:
stage: security stage: security
script: script:
- npmci git mirror - npmci git mirror
only:
- tags
tags: tags:
- lossless - lossless
- docker - docker
- notpriv - notpriv
auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --production --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=prod --production
tags:
- docker
allow_failure: true
auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=dev
tags:
- docker
allow_failure: true
# ==================== # ====================
# test stage # test stage
# ==================== # ====================
@@ -37,9 +63,7 @@ testStable:
- npmci npm test - npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- lossless
- docker - docker
- priv
testBuild: testBuild:
stage: test stage: test
@@ -50,9 +74,7 @@ testBuild:
- npmci command npm run build - npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- lossless
- docker - docker
- notpriv
release: release:
stage: release stage: release
@@ -72,6 +94,8 @@ release:
codequality: codequality:
stage: metadata stage: metadata
allow_failure: true allow_failure: true
only:
- tags
script: script:
- npmci command npm install -g tslint typescript - npmci command npm install -g tslint typescript
- npmci npm prepare - npmci npm prepare

54
.snyk
View File

@@ -1,54 +0,0 @@
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.13.5
# ignores vulnerabilities until expiry date; change duration by modifying expiry date
ignore:
SNYK-JS-MINIMIST-559764:
- parcel-bundler > @babel/core > json5 > minimist:
reason: None given
expires: '2020-04-12T17:46:49.672Z'
parcel-bundler > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:07:10.923Z'
- parcel-bundler > mkdirp > minimist:
reason: None given
expires: '2020-04-12T17:46:49.672Z'
parcel-bundler > @parcel/fs > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:07:10.923Z'
- parcel-bundler > @parcel/fs > mkdirp > minimist:
reason: None given
expires: '2020-04-12T17:46:49.672Z'
parcel-bundler > htmlnano > svgo > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:07:10.923Z'
- parcel-bundler > htmlnano > svgo > mkdirp > minimist:
reason: None given
expires: '2020-04-12T17:46:49.672Z'
parcel-bundler > cssnano > cssnano-preset-default > postcss-svgo > svgo > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:07:10.923Z'
- parcel-bundler > cssnano > cssnano-preset-default > postcss-svgo > svgo > mkdirp > minimist:
reason: None given
expires: '2020-04-12T17:46:49.672Z'
parcel-bundler > htmlnano > cssnano > cssnano-preset-default > postcss-svgo > svgo > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:07:10.923Z'
- parcel-bundler > htmlnano > cssnano > cssnano-preset-default > postcss-svgo > svgo > mkdirp > minimist:
reason: None given
expires: '2020-04-12T17:46:49.672Z'
- parcel-bundler > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:01:44.139Z'
- parcel-bundler > @parcel/fs > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:01:44.139Z'
- parcel-bundler > htmlnano > svgo > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:01:44.139Z'
- parcel-bundler > cssnano > cssnano-preset-default > postcss-svgo > svgo > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:01:44.139Z'
- parcel-bundler > htmlnano > cssnano > cssnano-preset-default > postcss-svgo > svgo > mkdirp > minimist:
reason: None given
expires: '2020-04-12T18:01:44.139Z'
patch: {}

View File

@@ -15,7 +15,7 @@
"properties": { "properties": {
"projectType": { "projectType": {
"type": "string", "type": "string",
"enum": ["website", "element", "service", "npm"] "enum": ["website", "element", "service", "npm", "wcc"]
} }
} }
} }

4
cli.child.ts Normal file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env node
process.env.CLI_CALL = 'true';
import * as cliTool from './ts/index.js';
cliTool.runCli();

3
cli.js
View File

@@ -1,3 +1,4 @@
#!/usr/bin/env node #!/usr/bin/env node
process.env.CLI_CALL = 'true'; process.env.CLI_CALL = 'true';
require('./dist/index'); const cliTool = await import('./dist_ts/index.js');
cliTool.runCli();

View File

@@ -1,4 +1,5 @@
#!/usr/bin/env node #!/usr/bin/env node
process.env.CLI_CALL = 'true'; process.env.CLI_CALL = 'true';
require('@gitzone/tsrun');
require('./ts/index'); import * as tsrun from '@gitzone/tsrun';
tsrun.runPath('./cli.child.js', import.meta.url);

2
dist_ts/index.d.ts vendored Normal file
View File

@@ -0,0 +1,2 @@
export * from './tswatch.classes.tswatch.js';
export * from './tswatch.cli.js';

6
dist_ts/index.js Normal file
View File

@@ -0,0 +1,6 @@
import * as early from '@pushrocks/early';
early.start('tswatch');
export * from './tswatch.classes.tswatch.js';
export * from './tswatch.cli.js';
early.stop();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkIsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyJ9

1
dist_ts/interfaces/index.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from './interfaces.watchmodes.js';

View File

@@ -0,0 +1,2 @@
export * from './interfaces.watchmodes.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUMifQ==

View File

@@ -0,0 +1 @@
export declare type TWatchModes = 'test' | 'gitzone_npm' | 'gitzone_service' | 'gitzone_element' | 'gitzone_website' | 'echoSomething';

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy53YXRjaG1vZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvaW50ZXJmYWNlcy9pbnRlcmZhY2VzLndhdGNobW9kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9

3
dist_ts/tswatch.classes.parcel.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
export declare class Parcel {
start(): Promise<void>;
}

View File

@@ -0,0 +1,44 @@
"use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugins = __importStar(require("./tswatch.plugins"));
const paths = __importStar(require("./tswatch.paths"));
class Parcel {
async start() {
const entryFiles = plugins.path.join(paths.cwd, './html/index.html');
// Bundler options
const options = {
outDir: './dist_watch',
outFile: 'index.html',
publicUrl: '/',
watch: true,
cache: true,
cacheDir: '.nogit/.parcelcache',
contentHash: false,
global: 'moduleName',
minify: false,
scopeHoist: false,
target: 'browser',
bundleNodeModules: true,
https: null,
logLevel: 3,
hmr: true,
hmrPort: 3003,
sourceMaps: true,
hmrHostname: '',
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);
}
}
exports.Parcel = Parcel;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHN3YXRjaC5jbGFzc2VzLnBhcmNlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Rzd2F0Y2guY2xhc3Nlcy5wYXJjZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsMkRBQTZDO0FBQzdDLHVEQUF5QztBQUV6QyxNQUFhLE1BQU07SUFDVixLQUFLLENBQUMsS0FBSztRQUNoQixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFckUsa0JBQWtCO1FBQ2xCLE1BQU0sT0FBTyxHQUFpQztZQUM1QyxNQUFNLEVBQUUsY0FBYztZQUN0QixPQUFPLEVBQUUsWUFBWTtZQUNyQixTQUFTLEVBQUUsR0FBRztZQUNkLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsVUFBVSxFQUFFLEtBQUs7WUFDakIsTUFBTSxFQUFFLFNBQVM7WUFDakIsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixLQUFLLEVBQUUsSUFBSTtZQUNYLFFBQVEsRUFBRSxDQUFDO1lBQ1gsR0FBRyxFQUFFLElBQUk7WUFDVCxPQUFPLEVBQUUsSUFBSTtZQUNiLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxFQUFFO1lBQ2YsY0FBYyxFQUFFLEtBQUssQ0FBQyx5SUFBeUk7U0FDaEssQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEQsZ0RBQWdEO1FBQ2hELDZHQUE2RztRQUM3RyxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBakNELHdCQWlDQyJ9

17
dist_ts/tswatch.classes.tswatch.d.ts vendored Normal file
View File

@@ -0,0 +1,17 @@
import * as plugins from './tswatch.plugins.js';
import * as interfaces from './interfaces/index.js';
import { Watcher } from './tswatch.classes.watcher.js';
export declare class TsWatch {
watchmode: interfaces.TWatchModes;
watcherMap: plugins.lik.ObjectMap<Watcher>;
smartserve: plugins.smartserve.SmartServe;
constructor(watchmodeArg: interfaces.TWatchModes);
/**
* starts the TsWatch instance
*/
start(): Promise<void>;
/**
* stops the execution of any active Watchers
*/
stop(): Promise<void>;
}

File diff suppressed because one or more lines are too long

35
dist_ts/tswatch.classes.watcher.d.ts vendored Normal file
View File

@@ -0,0 +1,35 @@
export interface IWatcherConstructorOptions {
filePathToWatch: string;
commandToExecute?: string;
functionToCall?: () => Promise<any>;
timeout?: number;
}
/**
* A watcher keeps track of one child execution
*/
export declare class Watcher {
/**
* used to execute shell commands
*/
private smartshellInstance;
private currentExecution;
private smartchokWatcher;
private options;
constructor(optionsArg: IWatcherConstructorOptions);
/**
* start the file
*/
start(): Promise<void>;
/**
* updates the current execution
*/
private updateCurrentExecution;
/**
* this method sets up a clean exit strategy
*/
private setupCleanup;
/**
* stops the watcher
*/
stop(): Promise<void>;
}

View File

@@ -0,0 +1,90 @@
import * as plugins from './tswatch.plugins.js';
import { logger } from './tswatch.logging.js';
/**
* A watcher keeps track of one child execution
*/
export class Watcher {
constructor(optionsArg) {
/**
* used to execute shell commands
*/
this.smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash',
});
this.smartchokWatcher = new plugins.smartchok.Smartchok([], {});
this.options = optionsArg;
}
/**
* start the file
*/
async start() {
await this.setupCleanup();
console.log(`Looking at ${this.options.filePathToWatch} for changes`);
this.smartchokWatcher.add([this.options.filePathToWatch]); // __dirname refers to the directory of this very file
await this.smartchokWatcher.start();
const changeObservable = await this.smartchokWatcher.getObservableFor('change');
changeObservable.subscribe(() => {
this.updateCurrentExecution();
});
await this.updateCurrentExecution();
}
/**
* updates the current execution
*/
async updateCurrentExecution() {
if (this.options.commandToExecute) {
if (this.currentExecution) {
logger.log('ok', `reexecuting ${this.options.commandToExecute}`);
this.currentExecution.kill();
}
else {
logger.log('ok', `executing ${this.options.commandToExecute} for the first time`);
}
this.currentExecution = await this.smartshellInstance.execStreaming(this.options.commandToExecute);
}
else {
console.log('no executionCommand set');
}
if (this.options.functionToCall) {
this.options.functionToCall();
}
else {
console.log('no functionToCall set.');
}
}
/**
* this method sets up a clean exit strategy
*/
async setupCleanup() {
process.on('exit', () => {
console.log('');
console.log('now exiting!');
this.stop();
process.exit(0);
});
process.on('SIGINT', () => {
console.log('');
console.log('ok! got SIGINT We are exiting! Just cleaning up to exit neatly :)');
this.stop();
process.exit(0);
});
// handle timeout
if (this.options.timeout) {
plugins.smartdelay.delayFor(this.options.timeout).then(() => {
console.log(`timed out afer ${this.options.timeout} milliseconds! exiting!`);
this.stop();
process.exit(0);
});
}
}
/**
* stops the watcher
*/
async stop() {
await this.smartchokWatcher.stop();
if (this.currentExecution && !this.currentExecution.childProcess.killed) {
this.currentExecution.kill();
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHN3YXRjaC5jbGFzc2VzLndhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90c3dhdGNoLmNsYXNzZXMud2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVM5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxPQUFPO0lBWWxCLFlBQVksVUFBc0M7UUFYbEQ7O1dBRUc7UUFDSyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQzdELFFBQVEsRUFBRSxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUdLLHFCQUFnQixHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBSWpFLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsY0FBYyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLHNEQUFzRDtRQUNqSCxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hGLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxzQkFBc0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QixNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxlQUFlLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixxQkFBcUIsQ0FBQyxDQUFDO2FBQ25GO1lBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FDakUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDOUIsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDeEM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtTQUN0QztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUVBQW1FLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBRUgsaUJBQWlCO1FBQ2pCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDeEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8seUJBQXlCLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUN2RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDO0NBQ0YifQ==

1
dist_ts/tswatch.cli.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export declare const runCli: () => Promise<void>;

35
dist_ts/tswatch.cli.js Normal file
View File

@@ -0,0 +1,35 @@
import * as plugins from './tswatch.plugins.js';
import './tswatch.paths.js';
import { logger } from './tswatch.logging.js';
import { TsWatch } from './tswatch.classes.tswatch.js';
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');
await tsWatch.start();
});
tswatchCli.addCommand('website').subscribe(async (argvArg) => {
logger.log('info', `running watch task for a gitzone website project`);
const tsWatch = new TsWatch('gitzone_website');
await tsWatch.start();
});
export const runCli = async () => {
tswatchCli.startParse();
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHN3YXRjaC5jbGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90c3dhdGNoLmNsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQXVCLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBRW5ELCtDQUErQztBQUUvQyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsa0RBQWtELENBQUMsQ0FBQztJQUN2RSxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDO0FBRUgsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ3ZELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGtEQUFrRCxDQUFDLENBQUM7SUFDdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0MsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDO0FBRUgsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ3hELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsa0RBQWtELENBQUMsQ0FBQztJQUN2RSxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9CLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUMxQixDQUFDLENBQUMifQ==

2
dist_ts/tswatch.logging.d.ts vendored Normal file
View File

@@ -0,0 +1,2 @@
import * as plugins from './tswatch.plugins.js';
export declare const logger: plugins.smartlog.Smartlog;

View File

@@ -0,0 +1,14 @@
import * as plugins from './tswatch.plugins.js';
export const logger = new plugins.smartlog.Smartlog({
logContext: {
company: 'Some Company',
companyunit: 'Some CompanyUnit',
containerName: 'Some Containername',
environment: 'local',
runtime: 'node',
zone: 'gitzone',
},
minimumLogLevel: 'silly',
});
logger.addLogDestination(new plugins.smartlogDestinationLocal.DestinationLocal());
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHN3YXRjaC5sb2dnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdHN3YXRjaC5sb2dnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDbEQsVUFBVSxFQUFFO1FBQ1YsT0FBTyxFQUFFLGNBQWM7UUFDdkIsV0FBVyxFQUFFLGtCQUFrQjtRQUMvQixhQUFhLEVBQUUsb0JBQW9CO1FBQ25DLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLE9BQU8sRUFBRSxNQUFNO1FBQ2YsSUFBSSxFQUFFLFNBQVM7S0FDaEI7SUFDRCxlQUFlLEVBQUUsT0FBTztDQUN6QixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxPQUFPLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDIn0=

1
dist_ts/tswatch.paths.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export declare const cwd: string;

3
dist_ts/tswatch.paths.js Normal file
View File

@@ -0,0 +1,3 @@
import './tswatch.plugins.js';
export const cwd = process.cwd();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHN3YXRjaC5wYXRocy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Rzd2F0Y2gucGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBeUIsc0JBQXNCLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyJ9

15
dist_ts/tswatch.plugins.d.ts vendored Normal file
View File

@@ -0,0 +1,15 @@
import * as path from 'path';
export { path };
import * as tsbundle from '@gitzone/tsbundle';
export { tsbundle };
import * as lik from '@pushrocks/lik';
import * as smartchok from '@pushrocks/smartchok';
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 smartparcel from '@pushrocks/smartparcel';
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, smartparcel, smartserve, smartshell, taskbuffer, };

View File

@@ -0,0 +1,19 @@
// node native scope
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';
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 smartparcel from '@pushrocks/smartparcel';
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, smartparcel, smartserve, smartshell, taskbuffer, };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHN3YXRjaC5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdHN3YXRjaC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFFaEIsaUJBQWlCO0FBQ2pCLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUNMLFFBQVEsRUFDVCxDQUFBO0FBRUQsbUJBQW1CO0FBQ25CLE9BQU8sS0FBSyxHQUFHLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssUUFBUSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssd0JBQXdCLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxLQUFLLFdBQVcsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFVBQVUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQ0wsR0FBRyxFQUNILFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsV0FBVyxFQUNYLFVBQVUsRUFDVixVQUFVLEVBQ1YsVUFBVSxHQUNYLENBQUMifQ==

15100
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,51 +1,53 @@
{ {
"name": "@gitzone/tswatch", "name": "@gitzone/tswatch",
"version": "1.0.38", "version": "2.0.1",
"private": false, "private": false,
"description": "watch typescript projects during development", "description": "watch typescript projects during development",
"main": "dist/index.js", "main": "dist_ts/index.js",
"typings": "dist/index.d.ts", "typings": "dist_ts/index.d.ts",
"type": "module",
"author": "Lossless GmbH", "author": "Lossless GmbH",
"license": "MIT", "license": "MIT",
"bin": { "bin": {
"tswatch": "cli.js" "tswatch": "cli.js"
}, },
"scripts": { "scripts": {
"test": "(tstest test/)", "test": "(tstest test/ --web)",
"build": "(tsbuild)" "build": "(tsbuild --web --allowimplicitany)"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.17", "@gitzone/tsbuild": "^2.1.61",
"@gitzone/tstest": "^1.0.28", "@gitzone/tstest": "^1.0.70",
"@pushrocks/tapbundle": "^3.2.0", "@pushrocks/tapbundle": "^5.0.3",
"@types/node": "^13.9.0", "@types/node": "^17.0.31"
"tslint": "^6.0.0",
"tslint-config-prettier": "^1.18.0"
}, },
"dependencies": { "dependencies": {
"@gitzone/tsrun": "^1.2.8", "@gitzone/tsbundle": "^2.0.2",
"@pushrocks/early": "^3.0.3", "@gitzone/tsrun": "^1.2.32",
"@pushrocks/lik": "^3.0.19", "@pushrocks/early": "^4.0.2",
"@pushrocks/lik": "^5.0.4",
"@pushrocks/smartchok": "^1.0.23", "@pushrocks/smartchok": "^1.0.23",
"@pushrocks/smartcli": "^3.0.7", "@pushrocks/smartcli": "^3.0.14",
"@pushrocks/smartdelay": "^2.0.6", "@pushrocks/smartdelay": "^2.0.13",
"@pushrocks/smartlog": "^2.0.21", "@pushrocks/smartlog": "^2.0.44",
"@pushrocks/smartlog-destination-local": "^8.0.2", "@pushrocks/smartlog-destination-local": "^8.0.8",
"@pushrocks/smartserve": "^1.1.39", "@pushrocks/smartserve": "^2.0.27",
"@pushrocks/smartshell": "^2.0.25", "@pushrocks/smartshell": "^2.0.30",
"@pushrocks/taskbuffer": "^2.1.1", "@pushrocks/taskbuffer": "^3.0.1"
"@types/parcel-bundler": "^1.12.1",
"parcel-bundler": "^1.12.4"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",
"ts_web/**/*", "ts_web/**/*",
"dist/**/*", "dist/**/*",
"dist_web/**/*", "dist_*/**/*",
"dist_ts/**/*",
"dist_ts_web/**/*", "dist_ts_web/**/*",
"assets/**/*", "assets/**/*",
"cli.js", "cli.js",
"npmextra.json", "npmextra.json",
"readme.md" "readme.md"
],
"browserslist": [
"last 1 chrome versions"
] ]
} }

View File

@@ -8,16 +8,24 @@ watch typescript projects during development
* [docs (typedoc)](https://gitzone.gitlab.io/tswatch/) * [docs (typedoc)](https://gitzone.gitlab.io/tswatch/)
## Status for master ## Status for master
[![pipeline status](https://gitlab.com/gitzone/tswatch/badges/master/pipeline.svg)](https://gitlab.com/gitzone/tswatch/commits/master)
[![coverage report](https://gitlab.com/gitzone/tswatch/badges/master/coverage.svg)](https://gitlab.com/gitzone/tswatch/commits/master) Status Category | Status Badge
[![npm downloads per month](https://img.shields.io/npm/dm/@gitzone/tswatch.svg)](https://www.npmjs.com/package/@gitzone/tswatch) -- | --
[![Known Vulnerabilities](https://snyk.io/test/npm/@gitzone/tswatch/badge.svg)](https://snyk.io/test/npm/@gitzone/tswatch) GitLab Pipelines | [![pipeline status](https://gitlab.com/gitzone/tswatch/badges/master/pipeline.svg)](https://lossless.cloud)
[![TypeScript](https://img.shields.io/badge/TypeScript->=%203.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/gitzone/tswatch/badges/master/coverage.svg)](https://lossless.cloud)
[![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) npm | [![npm downloads per month](https://badgen.net/npm/dy/@gitzone/tswatch)](https://lossless.cloud)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-prettier-ff69b4.svg)](https://prettier.io/) Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/gitzone/tswatch)](https://lossless.cloud)
TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud)
node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud)
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@gitzone/tswatch)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@gitzone/tswatch)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@gitzone/tswatch)](https://lossless.cloud)
Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
## Usage ## Usage
Use TypeScript for best in class intellisense
## Contribution ## Contribution

View File

@@ -1,6 +1,6 @@
// tslint:disable-next-line: no-implicit-dependencies // tslint:disable-next-line: no-implicit-dependencies
import { expect, tap } from '@pushrocks/tapbundle'; import { expect, expectAsync, tap } from '@pushrocks/tapbundle';
import * as tswatch from '../ts/index'; import * as tswatch from '../ts/index.js';
let testTsWatchInstance: tswatch.TsWatch; let testTsWatchInstance: tswatch.TsWatch;
@@ -12,7 +12,7 @@ tap.test('should start the tswatch instance', async () => {
await testTsWatchInstance.start(); await testTsWatchInstance.start();
}); });
tap.test('should stop the instance', async tools => { tap.test('should stop the instance', async (tools) => {
tools.delayFor(2000); tools.delayFor(2000);
testTsWatchInstance.stop(); testTsWatchInstance.stop();
}); });

8
ts/00_commitinfo_data.ts Normal file
View File

@@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@gitzone/tswatch',
version: '2.0.1',
description: 'watch typescript projects during development'
}

View File

@@ -1,5 +1,5 @@
import * as early from '@pushrocks/early'; import * as early from '@pushrocks/early';
early.start('tswatch'); early.start('tswatch');
export * from './tswatch.classes.tswatch'; export * from './tswatch.classes.tswatch.js';
import './tswatch.cli'; export * from './tswatch.cli.js';
early.stop(); early.stop();

View File

@@ -1 +1 @@
export * from './interfaces.watchmodes'; export * from './interfaces.watchmodes.js';

View File

@@ -1,37 +0,0 @@
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

@@ -1,13 +1,12 @@
import * as plugins from './tswatch.plugins'; import * as plugins from './tswatch.plugins.js';
import * as paths from './tswatch.paths'; import * as paths from './tswatch.paths.js';
import * as interfaces from './interfaces'; import * as interfaces from './interfaces/index.js';
import { Watcher } from './tswatch.classes.watcher'; import { Watcher } from './tswatch.classes.watcher.js';
import { Parcel } from './tswatch.classes.parcel';
export class TsWatch { export class TsWatch {
public watchmode: interfaces.TWatchModes; public watchmode: interfaces.TWatchModes;
public watcherMap = new plugins.lik.Objectmap<Watcher>(); public watcherMap = new plugins.lik.ObjectMap<Watcher>();
public smartserve: plugins.smartserve.SmartServe; public smartserve: plugins.smartserve.SmartServe;
constructor(watchmodeArg: interfaces.TWatchModes) { constructor(watchmodeArg: interfaces.TWatchModes) {
@@ -18,13 +17,15 @@ export class TsWatch {
* starts the TsWatch instance * starts the TsWatch instance
*/ */
public async start() { public async start() {
const tsbundle = new plugins.tsbundle.TsBundle();
const htmlHandler = new plugins.tsbundle.HtmlHandler();
switch (this.watchmode) { switch (this.watchmode) {
case 'test': case 'test':
this.watcherMap.add( this.watcherMap.add(
new Watcher({ new Watcher({
filePathToWatch: paths.cwd, filePathToWatch: paths.cwd,
commandToExecute: 'npm run test2', commandToExecute: 'npm run test2',
timeout: null timeout: null,
}) })
); );
break; break;
@@ -33,7 +34,7 @@ export class TsWatch {
new Watcher({ new Watcher({
filePathToWatch: paths.cwd, filePathToWatch: paths.cwd,
commandToExecute: 'npm run test', commandToExecute: 'npm run test',
timeout: null timeout: null,
}) })
); );
break; break;
@@ -42,24 +43,87 @@ export class TsWatch {
console.log( console.log(
'bundling TypeScript files to "dist_watch" Note: This is for development only!' 'bundling TypeScript files to "dist_watch" Note: This is for development only!'
); );
const parcel = new Parcel(); const smartserve = new plugins.smartserve.SmartServe({
await parcel.start(); injectReload: true,
serveDir: plugins.path.join(paths.cwd, './dist_watch/'),
port: 3002,
});
const bundleAndReloadElement = async () => {
await tsbundle.build(paths.cwd, './html/index.ts', './dist_watch/bundle.js', {
bundler: 'esbuild'
});
await smartserve.reload();
}
this.watcherMap.add(
new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, './ts_web/'),
functionToCall: async () => {
await bundleAndReloadElement();
},
timeout: null,
})
);
this.watcherMap.add(
new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, './html/'),
functionToCall: async () => {
await htmlHandler.copyHtml(
plugins.path.join(
paths.cwd,
'./html/index.html'
),
plugins.path.join(
paths.cwd,
'./dist_watch/index.html'
)
);
await bundleAndReloadElement();
},
timeout: null,
})
);
await smartserve.start();
break; break;
case 'gitzone_website': case 'gitzone_website':
this.watcherMap.add( this.watcherMap.add(
new Watcher({ new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, './ts/'), filePathToWatch: plugins.path.join(paths.cwd, './ts/'),
commandToExecute: 'npm run startTs', commandToExecute: 'npm run startTs',
timeout: null timeout: null,
}) })
); );
const bundleAndReloadWebsite = async () => {
// client directory await tsbundle.build(paths.cwd, './ts_web/index.ts', './dist_serve/bundle.js', {
bundler: 'esbuild'
});
}
this.watcherMap.add( this.watcherMap.add(
new Watcher({ new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, './ts_web/'), filePathToWatch: plugins.path.join(paths.cwd, './ts_web/'),
commandToExecute: 'npm run build', functionToCall: async () => {
timeout: null await bundleAndReloadWebsite();
},
timeout: null,
})
);
this.watcherMap.add(
new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, './html/'),
functionToCall: async () => {
await htmlHandler.copyHtml(
plugins.path.join(
paths.cwd,
'./html/index.html'
),
plugins.path.join(
paths.cwd,
'./dist_serve/index.html'
)
);
await bundleAndReloadWebsite();
},
timeout: null,
}) })
); );
break; break;
@@ -68,7 +132,7 @@ export class TsWatch {
new Watcher({ new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, './ts/'), filePathToWatch: plugins.path.join(paths.cwd, './ts/'),
commandToExecute: 'npm run startTs', commandToExecute: 'npm run startTs',
timeout: null timeout: null,
}) })
); );
break; break;
@@ -76,14 +140,14 @@ export class TsWatch {
const tsWatchInstanceEchoSomething = new Watcher({ const tsWatchInstanceEchoSomething = new Watcher({
filePathToWatch: plugins.path.join(paths.cwd, './ts'), filePathToWatch: plugins.path.join(paths.cwd, './ts'),
commandToExecute: 'npm -v', commandToExecute: 'npm -v',
timeout: null timeout: null,
}); });
this.watcherMap.add(tsWatchInstanceEchoSomething); this.watcherMap.add(tsWatchInstanceEchoSomething);
break; break;
default: default:
break; break;
} }
this.watcherMap.forEach(async watcher => { this.watcherMap.forEach(async (watcher) => {
await watcher.start(); await watcher.start();
}); });
if (this.smartserve) { if (this.smartserve) {
@@ -98,7 +162,7 @@ export class TsWatch {
if (this.smartserve) { if (this.smartserve) {
await this.smartserve.stop(); await this.smartserve.stop();
} }
this.watcherMap.forEach(async watcher => { this.watcherMap.forEach(async (watcher) => {
await watcher.stop(); await watcher.stop();
}); });
} }

View File

@@ -1,11 +1,10 @@
import * as plugins from './tswatch.plugins'; import * as plugins from './tswatch.plugins.js';
import { logger } from './tswatch.logging'; import { logger } from './tswatch.logging.js';
export type TCommandFunction = () => Promise<void>;
export interface IWatcherConstructorOptions { export interface IWatcherConstructorOptions {
filePathToWatch: string; filePathToWatch: string;
commandToExecute: string | TCommandFunction; commandToExecute?: string;
functionToCall?: () => Promise<any>;
timeout?: number; timeout?: number;
} }
@@ -17,22 +16,7 @@ export class Watcher {
* used to execute shell commands * used to execute shell commands
*/ */
private smartshellInstance = new plugins.smartshell.Smartshell({ private smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash' 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 currentExecution: plugins.smartshell.IExecResultStreaming;
@@ -62,19 +46,23 @@ export class Watcher {
* updates the current execution * updates the current execution
*/ */
private async updateCurrentExecution() { private async updateCurrentExecution() {
if (typeof this.options.commandToExecute === 'string') { if (this.options.commandToExecute) {
if (this.currentExecution) { if (this.currentExecution) {
logger.log('ok', `reexecuting ${this.options.commandToExecute}`); logger.log('ok', `reexecuting ${this.options.commandToExecute}`);
process.kill(-this.currentExecution.childProcess.pid); this.currentExecution.kill();
} else { } else {
logger.log('ok', `executing ${this.options.commandToExecute} for the first time`); logger.log('ok', `executing ${this.options.commandToExecute} for the first time`);
} }
this.currentExecution = await this.smartshellInstance.execStreaming( this.currentExecution = await this.smartshellInstance.execStreaming(
this.options.commandToExecute this.options.commandToExecute
); );
this.currentExecution = null;
} else { } else {
await this.executionTask.trigger(); console.log('no executionCommand set');
}
if (this.options.functionToCall) {
this.options.functionToCall();
} else {
console.log('no functionToCall set.')
} }
} }
@@ -82,21 +70,16 @@ export class Watcher {
* this method sets up a clean exit strategy * this method sets up a clean exit strategy
*/ */
private async setupCleanup() { private async setupCleanup() {
const cleanup = () => {
if (this.currentExecution) {
process.kill(-this.currentExecution.childProcess.pid);
}
};
process.on('exit', () => { process.on('exit', () => {
console.log(''); console.log('');
console.log('now exiting!'); console.log('now exiting!');
cleanup(); this.stop();
process.exit(0); process.exit(0);
}); });
process.on('SIGINT', () => { process.on('SIGINT', () => {
console.log(''); console.log('');
console.log('ok! got SIGINT We are exiting! Just cleaning up to exit neatly :)'); console.log('ok! got SIGINT We are exiting! Just cleaning up to exit neatly :)');
cleanup(); this.stop();
process.exit(0); process.exit(0);
}); });
@@ -104,7 +87,7 @@ export class Watcher {
if (this.options.timeout) { if (this.options.timeout) {
plugins.smartdelay.delayFor(this.options.timeout).then(() => { plugins.smartdelay.delayFor(this.options.timeout).then(() => {
console.log(`timed out afer ${this.options.timeout} milliseconds! exiting!`); console.log(`timed out afer ${this.options.timeout} milliseconds! exiting!`);
cleanup(); this.stop();
process.exit(0); process.exit(0);
}); });
} }
@@ -116,7 +99,7 @@ export class Watcher {
public async stop() { public async stop() {
await this.smartchokWatcher.stop(); await this.smartchokWatcher.stop();
if (this.currentExecution && !this.currentExecution.childProcess.killed) { if (this.currentExecution && !this.currentExecution.childProcess.killed) {
process.kill(-this.currentExecution.childProcess.pid); this.currentExecution.kill();
} }
} }
} }

View File

@@ -1,41 +1,43 @@
import * as plugins from './tswatch.plugins'; import * as plugins from './tswatch.plugins.js';
import * as paths from './tswatch.paths'; import * as paths from './tswatch.paths.js';
import { logger } from './tswatch.logging'; import { logger } from './tswatch.logging.js';
import { TsWatch } from './tswatch.classes.tswatch'; import { TsWatch } from './tswatch.classes.tswatch.js';
const tswatchCli = new plugins.smartcli.Smartcli(); const tswatchCli = new plugins.smartcli.Smartcli();
// standard behaviour will assume gitzone setup // standard behaviour will assume gitzone setup
tswatchCli.addCommand('element').subscribe(async argvArg => { tswatchCli.addCommand('element').subscribe(async (argvArg) => {
logger.log('info', `running watch task for a gitzone element project`); logger.log('info', `running watch task for a gitzone element project`);
const tsWatch = new TsWatch('gitzone_element'); const tsWatch = new TsWatch('gitzone_element');
await tsWatch.start(); await tsWatch.start();
}); });
tswatchCli.addCommand('npm').subscribe(async argvArg => { tswatchCli.addCommand('npm').subscribe(async (argvArg) => {
logger.log('info', `running watch task for a gitzone element project`); logger.log('info', `running watch task for a gitzone element project`);
const tsWatch = new TsWatch('gitzone_npm'); const tsWatch = new TsWatch('gitzone_npm');
await tsWatch.start(); await tsWatch.start();
}); });
tswatchCli.addCommand('service').subscribe(async argvArg => { tswatchCli.addCommand('service').subscribe(async (argvArg) => {
logger.log('info', `running test task`); logger.log('info', `running test task`);
const tsWatch = new TsWatch('gitzone_service'); const tsWatch = new TsWatch('gitzone_service');
await tsWatch.start(); await tsWatch.start();
}); });
tswatchCli.addCommand('test').subscribe(async argvArg => { tswatchCli.addCommand('test').subscribe(async (argvArg) => {
logger.log('info', `running test task`); logger.log('info', `running test task`);
const tsWatch = new TsWatch('test'); const tsWatch = new TsWatch('test');
await tsWatch.start(); await tsWatch.start();
}); });
tswatchCli.addCommand('website').subscribe(async argvArg => { tswatchCli.addCommand('website').subscribe(async (argvArg) => {
logger.log('info', `running watch task for a gitzone website project`); logger.log('info', `running watch task for a gitzone website project`);
const tsWatch = new TsWatch('gitzone_website'); const tsWatch = new TsWatch('gitzone_website');
await tsWatch.start(); await tsWatch.start();
}); });
export const runCli = async () => {
tswatchCli.startParse(); tswatchCli.startParse();
};

View File

@@ -1,4 +1,4 @@
import * as plugins from './tswatch.plugins'; import * as plugins from './tswatch.plugins.js';
export const logger = new plugins.smartlog.Smartlog({ export const logger = new plugins.smartlog.Smartlog({
logContext: { logContext: {
@@ -7,9 +7,9 @@ export const logger = new plugins.smartlog.Smartlog({
containerName: 'Some Containername', containerName: 'Some Containername',
environment: 'local', environment: 'local',
runtime: 'node', runtime: 'node',
zone: 'gitzone' zone: 'gitzone',
}, },
minimumLogLevel: 'silly' minimumLogLevel: 'silly',
}); });
logger.addLogDestination(new plugins.smartlogDestinationLocal.DestinationLocal()); logger.addLogDestination(new plugins.smartlogDestinationLocal.DestinationLocal());

View File

@@ -1,3 +1,3 @@
import * as plugins from './tswatch.plugins'; import * as plugins from './tswatch.plugins.js';
export const cwd = process.cwd(); export const cwd = process.cwd();

View File

@@ -1,6 +1,13 @@
// node native scope
import * as path from 'path'; import * as path from 'path';
export { path }; export { path };
// @gitzone scope
import * as tsbundle from '@gitzone/tsbundle';
export {
tsbundle
}
// @pushrocks scope // @pushrocks scope
import * as lik from '@pushrocks/lik'; import * as lik from '@pushrocks/lik';
import * as smartchok from '@pushrocks/smartchok'; import * as smartchok from '@pushrocks/smartchok';
@@ -21,10 +28,5 @@ export {
smartlogDestinationLocal, smartlogDestinationLocal,
smartserve, smartserve,
smartshell, smartshell,
taskbuffer taskbuffer,
}; };
// third party scope
import parcel from 'parcel-bundler';
export { parcel };

View File

@@ -1,17 +0,0 @@
{
"extends": ["tslint:latest", "tslint-config-prettier"],
"rules": {
"semicolon": [true, "always"],
"no-console": false,
"ordered-imports": false,
"object-literal-sort-keys": false,
"member-ordering": {
"options":{
"order": [
"static-method"
]
}
}
},
"defaultSeverity": "warning"
}