@git.zone/tswatch 2.3.12 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist_ts/00_commitinfo_data.js +2 -2
  2. package/dist_ts/index.d.ts +4 -1
  3. package/dist_ts/index.js +5 -2
  4. package/dist_ts/interfaces/index.d.ts +1 -1
  5. package/dist_ts/interfaces/index.js +2 -2
  6. package/dist_ts/interfaces/interfaces.config.d.ts +58 -0
  7. package/dist_ts/interfaces/interfaces.config.js +2 -0
  8. package/dist_ts/tswatch.classes.confighandler.d.ts +30 -0
  9. package/dist_ts/tswatch.classes.confighandler.js +172 -0
  10. package/dist_ts/tswatch.classes.tswatch.d.ts +28 -3
  11. package/dist_ts/tswatch.classes.tswatch.js +135 -165
  12. package/dist_ts/tswatch.classes.watcher.d.ts +31 -3
  13. package/dist_ts/tswatch.classes.watcher.js +105 -25
  14. package/dist_ts/tswatch.cli.js +39 -28
  15. package/dist_ts/tswatch.init.d.ts +25 -0
  16. package/dist_ts/tswatch.init.js +168 -0
  17. package/dist_ts/tswatch.plugins.d.ts +3 -1
  18. package/dist_ts/tswatch.plugins.js +7 -5
  19. package/npmextra.json +12 -6
  20. package/package.json +22 -16
  21. package/readme.hints.md +88 -46
  22. package/readme.md +284 -149
  23. package/ts/00_commitinfo_data.ts +1 -1
  24. package/ts/index.ts +6 -2
  25. package/ts/interfaces/index.ts +1 -1
  26. package/ts/interfaces/interfaces.config.ts +61 -0
  27. package/ts/tswatch.classes.confighandler.ts +185 -0
  28. package/ts/tswatch.classes.tswatch.ts +161 -197
  29. package/ts/tswatch.classes.watcher.ts +134 -23
  30. package/ts/tswatch.cli.ts +37 -31
  31. package/ts/tswatch.init.ts +199 -0
  32. package/ts/tswatch.plugins.ts +7 -3
  33. package/dist_ts/interfaces/interfaces.watchmodes.d.ts +0 -1
  34. package/dist_ts/interfaces/interfaces.watchmodes.js +0 -2
  35. package/ts/interfaces/interfaces.watchmodes.ts +0 -1
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@git.zone/tswatch',
6
- version: '2.3.12',
6
+ version: '3.0.0',
7
7
  description: 'A development tool for automatically watching and re-compiling TypeScript projects upon detecting file changes, enhancing developer workflows.'
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLGdKQUFnSjtDQUM5SixDQUFBIn0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLGdKQUFnSjtDQUM5SixDQUFBIn0=
@@ -1,3 +1,6 @@
1
1
  export * from './tswatch.classes.tswatch.js';
2
- export * from './tswatch.cli.js';
3
2
  export * from './tswatch.classes.watcher.js';
3
+ export * from './tswatch.classes.confighandler.js';
4
+ export * from './tswatch.cli.js';
5
+ export * from './tswatch.init.js';
6
+ export * from './interfaces/index.js';
package/dist_ts/index.js CHANGED
@@ -1,7 +1,10 @@
1
1
  import * as early from '@push.rocks/early';
2
2
  early.start('tswatch');
3
3
  export * from './tswatch.classes.tswatch.js';
4
+ export * from './tswatch.classes.watcher.js';
5
+ export * from './tswatch.classes.confighandler.js';
4
6
  export * from './tswatch.cli.js';
7
+ export * from './tswatch.init.js';
8
+ export * from './interfaces/index.js';
5
9
  early.stop();
6
- export * from './tswatch.classes.watcher.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkIsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUViLGNBQWMsOEJBQThCLENBQUMifQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFdkIsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDIn0=
@@ -1 +1 @@
1
- export * from './interfaces.watchmodes.js';
1
+ export * from './interfaces.config.js';
@@ -1,2 +1,2 @@
1
- export * from './interfaces.watchmodes.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUMifQ==
1
+ export * from './interfaces.config.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUMifQ==
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Configuration for a single watcher
3
+ */
4
+ export interface IWatcherConfig {
5
+ /** Name for this watcher (used in logging) */
6
+ name: string;
7
+ /** Glob pattern(s) to watch */
8
+ watch: string | string[];
9
+ /** Shell command to execute on changes */
10
+ command?: string;
11
+ /** If true, kill previous process before restarting (default: true) */
12
+ restart?: boolean;
13
+ /** Debounce delay in ms (default: 300) */
14
+ debounce?: number;
15
+ /** If true, run the command immediately on start (default: true) */
16
+ runOnStart?: boolean;
17
+ }
18
+ /**
19
+ * Configuration for the development server
20
+ */
21
+ export interface IServerConfig {
22
+ /** Whether the server is enabled */
23
+ enabled: boolean;
24
+ /** Server port (default: 3002) */
25
+ port?: number;
26
+ /** Directory to serve (default: ./dist_watch/) */
27
+ serveDir?: string;
28
+ /** Whether to inject live reload script (default: true) */
29
+ liveReload?: boolean;
30
+ }
31
+ /**
32
+ * Configuration for a bundle operation
33
+ */
34
+ export interface IBundleConfig {
35
+ /** Name for this bundle (used in logging) */
36
+ name?: string;
37
+ /** Entry point file */
38
+ from: string;
39
+ /** Output file */
40
+ to: string;
41
+ /** Additional patterns to watch that trigger this bundle */
42
+ watchPatterns?: string[];
43
+ /** If true, trigger server reload after bundling (default: true) */
44
+ triggerReload?: boolean;
45
+ }
46
+ /**
47
+ * Main tswatch configuration
48
+ */
49
+ export interface ITswatchConfig {
50
+ /** Array of watcher configurations */
51
+ watchers?: IWatcherConfig[];
52
+ /** Development server configuration */
53
+ server?: IServerConfig;
54
+ /** Bundle configurations */
55
+ bundles?: IBundleConfig[];
56
+ /** Use a preset configuration (overridden by explicit watchers/server/bundles) */
57
+ preset?: 'element' | 'website' | 'npm' | 'service' | 'test';
58
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9pbnRlcmZhY2VzL2ludGVyZmFjZXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,30 @@
1
+ import * as interfaces from './interfaces/index.js';
2
+ /**
3
+ * Handles loading and managing tswatch configuration
4
+ */
5
+ export declare class ConfigHandler {
6
+ private npmextra;
7
+ private cwd;
8
+ constructor(cwdArg?: string);
9
+ /**
10
+ * Check if a tswatch configuration exists
11
+ */
12
+ hasConfig(): boolean;
13
+ /**
14
+ * Load configuration from npmextra.json
15
+ * If a preset is specified, merge preset defaults with user overrides
16
+ */
17
+ loadConfig(): interfaces.ITswatchConfig | null;
18
+ /**
19
+ * Get a preset configuration by name
20
+ */
21
+ getPreset(presetName: string): interfaces.ITswatchConfig | null;
22
+ /**
23
+ * Get all available preset names
24
+ */
25
+ getPresetNames(): string[];
26
+ /**
27
+ * Get the config key for npmextra.json
28
+ */
29
+ getConfigKey(): string;
30
+ }
@@ -0,0 +1,172 @@
1
+ import * as plugins from './tswatch.plugins.js';
2
+ import * as paths from './tswatch.paths.js';
3
+ import * as interfaces from './interfaces/index.js';
4
+ const CONFIG_KEY = '@git.zone/tswatch';
5
+ /**
6
+ * Preset configurations matching legacy watch modes
7
+ */
8
+ const presets = {
9
+ npm: {
10
+ watchers: [
11
+ {
12
+ name: 'npm-test',
13
+ watch: ['./ts/**/*', './test/**/*'],
14
+ command: 'npm run test',
15
+ restart: true,
16
+ debounce: 300,
17
+ runOnStart: true,
18
+ },
19
+ ],
20
+ },
21
+ test: {
22
+ watchers: [
23
+ {
24
+ name: 'test2',
25
+ watch: ['./ts/**/*', './test/**/*'],
26
+ command: 'npm run test2',
27
+ restart: true,
28
+ debounce: 300,
29
+ runOnStart: true,
30
+ },
31
+ ],
32
+ },
33
+ service: {
34
+ watchers: [
35
+ {
36
+ name: 'service',
37
+ watch: './ts/**/*',
38
+ command: 'npm run startTs',
39
+ restart: true,
40
+ debounce: 300,
41
+ runOnStart: true,
42
+ },
43
+ ],
44
+ },
45
+ element: {
46
+ server: {
47
+ enabled: true,
48
+ port: 3002,
49
+ serveDir: './dist_watch/',
50
+ liveReload: true,
51
+ },
52
+ bundles: [
53
+ {
54
+ name: 'element-bundle',
55
+ from: './html/index.ts',
56
+ to: './dist_watch/bundle.js',
57
+ watchPatterns: ['./ts_web/**/*'],
58
+ triggerReload: true,
59
+ },
60
+ {
61
+ name: 'html',
62
+ from: './html/index.html',
63
+ to: './dist_watch/index.html',
64
+ watchPatterns: ['./html/**/*'],
65
+ triggerReload: true,
66
+ },
67
+ ],
68
+ watchers: [
69
+ {
70
+ name: 'ts-build',
71
+ watch: './ts/**/*',
72
+ command: 'npm run build',
73
+ restart: false,
74
+ debounce: 300,
75
+ runOnStart: false,
76
+ },
77
+ ],
78
+ },
79
+ website: {
80
+ bundles: [
81
+ {
82
+ name: 'website-bundle',
83
+ from: './ts_web/index.ts',
84
+ to: './dist_serve/bundle.js',
85
+ watchPatterns: ['./ts_web/**/*'],
86
+ triggerReload: false,
87
+ },
88
+ {
89
+ name: 'html',
90
+ from: './html/index.html',
91
+ to: './dist_serve/index.html',
92
+ watchPatterns: ['./html/**/*'],
93
+ triggerReload: false,
94
+ },
95
+ {
96
+ name: 'assets',
97
+ from: './assets/',
98
+ to: './dist_serve/assets/',
99
+ watchPatterns: ['./assets/**/*'],
100
+ triggerReload: false,
101
+ },
102
+ ],
103
+ watchers: [
104
+ {
105
+ name: 'backend',
106
+ watch: './ts/**/*',
107
+ command: 'npm run startTs',
108
+ restart: true,
109
+ debounce: 300,
110
+ runOnStart: true,
111
+ },
112
+ ],
113
+ },
114
+ };
115
+ /**
116
+ * Handles loading and managing tswatch configuration
117
+ */
118
+ export class ConfigHandler {
119
+ constructor(cwdArg) {
120
+ this.cwd = cwdArg || paths.cwd;
121
+ this.npmextra = new plugins.npmextra.Npmextra(this.cwd);
122
+ }
123
+ /**
124
+ * Check if a tswatch configuration exists
125
+ */
126
+ hasConfig() {
127
+ const config = this.npmextra.dataFor(CONFIG_KEY, null);
128
+ return config !== null;
129
+ }
130
+ /**
131
+ * Load configuration from npmextra.json
132
+ * If a preset is specified, merge preset defaults with user overrides
133
+ */
134
+ loadConfig() {
135
+ const config = this.npmextra.dataFor(CONFIG_KEY, null);
136
+ if (!config) {
137
+ return null;
138
+ }
139
+ // If a preset is specified, merge it with user config
140
+ if (config.preset && presets[config.preset]) {
141
+ const preset = presets[config.preset];
142
+ return {
143
+ ...preset,
144
+ ...config,
145
+ // Merge arrays instead of replacing
146
+ watchers: config.watchers || preset.watchers,
147
+ bundles: config.bundles || preset.bundles,
148
+ server: config.server !== undefined ? config.server : preset.server,
149
+ };
150
+ }
151
+ return config;
152
+ }
153
+ /**
154
+ * Get a preset configuration by name
155
+ */
156
+ getPreset(presetName) {
157
+ return presets[presetName] || null;
158
+ }
159
+ /**
160
+ * Get all available preset names
161
+ */
162
+ getPresetNames() {
163
+ return Object.keys(presets);
164
+ }
165
+ /**
166
+ * Get the config key for npmextra.json
167
+ */
168
+ getConfigKey() {
169
+ return CONFIG_KEY;
170
+ }
171
+ }
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHN3YXRjaC5jbGFzc2VzLmNvbmZpZ2hhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90c3dhdGNoLmNsYXNzZXMuY29uZmlnaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxLQUFLLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxLQUFLLFVBQVUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQztBQUV2Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxHQUE4QztJQUN6RCxHQUFHLEVBQUU7UUFDSCxRQUFRLEVBQUU7WUFDUjtnQkFDRSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQztnQkFDbkMsT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFFBQVEsRUFBRSxHQUFHO2dCQUNiLFVBQVUsRUFBRSxJQUFJO2FBQ2pCO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRTtZQUNSO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixPQUFPLEVBQUUsSUFBSTtnQkFDYixRQUFRLEVBQUUsR0FBRztnQkFDYixVQUFVLEVBQUUsSUFBSTthQUNqQjtTQUNGO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxRQUFRLEVBQUU7WUFDUjtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixLQUFLLEVBQUUsV0FBVztnQkFDbEIsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsUUFBUSxFQUFFLEdBQUc7Z0JBQ2IsVUFBVSxFQUFFLElBQUk7YUFDakI7U0FD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
@@ -1,15 +1,40 @@
1
1
  import * as plugins from './tswatch.plugins.js';
2
2
  import * as interfaces from './interfaces/index.js';
3
3
  import { Watcher } from './tswatch.classes.watcher.js';
4
+ /**
5
+ * TsWatch - Config-driven file watcher
6
+ *
7
+ * Reads configuration from npmextra.json under the key '@git.zone/tswatch'
8
+ * and sets up watchers, bundles, and dev server accordingly.
9
+ */
4
10
  export declare class TsWatch {
5
- watchmode: interfaces.TWatchModes;
11
+ config: interfaces.ITswatchConfig;
6
12
  watcherMap: plugins.lik.ObjectMap<Watcher>;
7
- typedserver: plugins.typedserver.TypedServer;
8
- constructor(watchmodeArg: interfaces.TWatchModes);
13
+ typedserver: plugins.typedserver.TypedServer | null;
14
+ private tsbundle;
15
+ private htmlHandler;
16
+ private assetsHandler;
17
+ constructor(configArg: interfaces.ITswatchConfig);
18
+ /**
19
+ * Create TsWatch from npmextra.json configuration
20
+ */
21
+ static fromConfig(cwdArg?: string): TsWatch | null;
9
22
  /**
10
23
  * starts the TsWatch instance
11
24
  */
12
25
  start(): Promise<void>;
26
+ /**
27
+ * Start the development server
28
+ */
29
+ private startServer;
30
+ /**
31
+ * Setup bundle watchers
32
+ */
33
+ private setupBundles;
34
+ /**
35
+ * Setup watchers from config
36
+ */
37
+ private setupWatchers;
13
38
  /**
14
39
  * stops the execution of any active Watchers
15
40
  */