@jsenv/core 27.0.0-alpha.94 → 27.0.0-alpha.95

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.
package/dist/main.js CHANGED
@@ -16742,6 +16742,10 @@ const getCorePlugins = ({
16742
16742
  nodeEsmResolution = {};
16743
16743
  }
16744
16744
 
16745
+ if (clientAutoreload === true) {
16746
+ clientAutoreload = {};
16747
+ }
16748
+
16745
16749
  return [jsenvPluginUrlAnalysis({
16746
16750
  rootDirectoryUrl,
16747
16751
  ...urlAnalysis
@@ -16759,7 +16763,7 @@ const getCorePlugins = ({
16759
16763
  ...nodeEsmResolution
16760
16764
  }), jsenvPluginUrlResolution(), jsenvPluginUrlVersion(), jsenvPluginCommonJsGlobals(), jsenvPluginImportMetaScenarios(), jsenvPluginNodeRuntime({
16761
16765
  runtimeCompat
16762
- }), jsenvPluginBundling(bundling), jsenvPluginMinification(minification), jsenvPluginImportMetaHot(), ...(clientAutoreload ? [jsenvPluginAutoreload({
16766
+ }), jsenvPluginBundling(bundling), jsenvPluginMinification(minification), jsenvPluginImportMetaHot(), ...(clientAutoreload ? [jsenvPluginAutoreload({ ...clientAutoreload,
16763
16767
  rootDirectoryUrl,
16764
16768
  urlGraph,
16765
16769
  scenario,
@@ -19268,18 +19272,18 @@ const startDevServer = async ({
19268
19272
  privateKey,
19269
19273
  keepProcessAlive = true,
19270
19274
  rootDirectoryUrl,
19275
+ clientFiles = {
19276
+ "./src/": true,
19277
+ "./tests/": true
19278
+ },
19271
19279
  devServerFiles = {
19272
19280
  "./package.json": true,
19273
19281
  "./jsenv.config.mjs": true
19274
19282
  },
19283
+ clientAutoreload = true,
19284
+ devServerAutoreload = false,
19275
19285
  devServerMainFile = getCallerPosition().url,
19276
- devServerAutoreload = true,
19277
- clientFiles = {
19278
- "./src/": true,
19279
- "./tests/": true
19280
- },
19281
19286
  cooldownBetweenFileEvents,
19282
- clientAutoreload = true,
19283
19287
  sourcemaps = "inline",
19284
19288
  // default runtimeCompat assume dev server will be request by recent browsers
19285
19289
  // Used by "jsenv_plugin_node_runtime.js" to deactivate itself
@@ -19330,70 +19334,74 @@ const startDevServer = async ({
19330
19334
  });
19331
19335
  }
19332
19336
 
19333
- const reloadableWorker = createReloadableWorker(devServerMainFile);
19337
+ let reloadableWorker;
19334
19338
 
19335
- if (devServerAutoreload && reloadableWorker.isPrimary) {
19336
- const devServerFileChangeCallback = ({
19337
- relativeUrl,
19338
- event
19339
- }) => {
19340
- const url = new URL(relativeUrl, rootDirectoryUrl).href;
19341
- logger.info(`file ${event} ${url} -> restarting server...`);
19342
- reloadableWorker.reload();
19343
- };
19339
+ if (devServerAutoreload) {
19340
+ reloadableWorker = createReloadableWorker(devServerMainFile);
19344
19341
 
19345
- const stopWatchingDevServerFiles = registerDirectoryLifecycle(rootDirectoryUrl, {
19346
- watchPatterns: {
19347
- [devServerMainFile]: true,
19348
- ...devServerFiles
19349
- },
19350
- cooldownBetweenFileEvents,
19351
- keepProcessAlive: false,
19352
- recursive: true,
19353
- added: ({
19354
- relativeUrl
19355
- }) => {
19356
- devServerFileChangeCallback({
19357
- relativeUrl,
19358
- event: "added"
19359
- });
19360
- },
19361
- updated: ({
19362
- relativeUrl
19363
- }) => {
19364
- devServerFileChangeCallback({
19365
- relativeUrl,
19366
- event: "modified"
19367
- });
19368
- },
19369
- removed: ({
19370
- relativeUrl
19342
+ if (reloadableWorker.isPrimary) {
19343
+ const devServerFileChangeCallback = ({
19344
+ relativeUrl,
19345
+ event
19371
19346
  }) => {
19372
- devServerFileChangeCallback({
19373
- relativeUrl,
19374
- event: "removed"
19375
- });
19376
- }
19377
- });
19378
- operation.addAbortCallback(() => {
19379
- stopWatchingDevServerFiles();
19380
- reloadableWorker.terminate();
19381
- });
19382
- const worker = await reloadableWorker.load();
19383
- const messagePromise = new Promise(resolve => {
19384
- worker.once("message", resolve);
19385
- });
19386
- await messagePromise; // if (!keepProcessAlive) {
19387
- // worker.unref()
19388
- // }
19347
+ const url = new URL(relativeUrl, rootDirectoryUrl).href;
19348
+ logger.info(`file ${event} ${url} -> restarting server...`);
19349
+ reloadableWorker.reload();
19350
+ };
19389
19351
 
19390
- return {
19391
- origin: `${protocol}://127.0.0.1:${port}`,
19392
- stop: () => {
19352
+ const stopWatchingDevServerFiles = registerDirectoryLifecycle(rootDirectoryUrl, {
19353
+ watchPatterns: { ...devServerFiles.include,
19354
+ [devServerMainFile]: true,
19355
+ ".jsenv/": false
19356
+ },
19357
+ cooldownBetweenFileEvents,
19358
+ keepProcessAlive: false,
19359
+ recursive: true,
19360
+ added: ({
19361
+ relativeUrl
19362
+ }) => {
19363
+ devServerFileChangeCallback({
19364
+ relativeUrl,
19365
+ event: "added"
19366
+ });
19367
+ },
19368
+ updated: ({
19369
+ relativeUrl
19370
+ }) => {
19371
+ devServerFileChangeCallback({
19372
+ relativeUrl,
19373
+ event: "modified"
19374
+ });
19375
+ },
19376
+ removed: ({
19377
+ relativeUrl
19378
+ }) => {
19379
+ devServerFileChangeCallback({
19380
+ relativeUrl,
19381
+ event: "removed"
19382
+ });
19383
+ }
19384
+ });
19385
+ operation.addAbortCallback(() => {
19393
19386
  stopWatchingDevServerFiles();
19394
19387
  reloadableWorker.terminate();
19395
- }
19396
- };
19388
+ });
19389
+ const worker = await reloadableWorker.load();
19390
+ const messagePromise = new Promise(resolve => {
19391
+ worker.once("message", resolve);
19392
+ });
19393
+ await messagePromise; // if (!keepProcessAlive) {
19394
+ // worker.unref()
19395
+ // }
19396
+
19397
+ return {
19398
+ origin: `${protocol}://127.0.0.1:${port}`,
19399
+ stop: () => {
19400
+ stopWatchingDevServerFiles();
19401
+ reloadableWorker.terminate();
19402
+ }
19403
+ };
19404
+ }
19397
19405
  }
19398
19406
 
19399
19407
  const startDevServerTask = createTaskLog("start dev server", {
@@ -19504,7 +19512,7 @@ const startDevServer = async ({
19504
19512
  };
19505
19513
  });
19506
19514
 
19507
- if (reloadableWorker.isWorker) {
19515
+ if (reloadableWorker && reloadableWorker.isWorker) {
19508
19516
  parentPort.postMessage(server.origin);
19509
19517
  }
19510
19518
 
@@ -24772,8 +24780,8 @@ const startBuildServer = async ({
24772
24780
  "./package.json": true,
24773
24781
  "./jsenv.config.mjs": true
24774
24782
  },
24783
+ buildServerAutoreload = false,
24775
24784
  buildServerMainFile = getCallerPosition().url,
24776
- buildServerAutoreload = true,
24777
24785
  cooldownBetweenFileEvents
24778
24786
  }) => {
24779
24787
  const logger = createLogger({
@@ -24815,74 +24823,74 @@ const startBuildServer = async ({
24815
24823
  });
24816
24824
  }
24817
24825
 
24818
- const reloadableWorker = createReloadableWorker(buildServerMainFile);
24826
+ let reloadableWorker;
24819
24827
 
24820
- if (buildServerAutoreload && reloadableWorker.isPrimary) {
24821
- const buildServerFileChangeCallback = ({
24822
- relativeUrl,
24823
- event
24824
- }) => {
24825
- const url = new URL(relativeUrl, rootDirectoryUrl).href;
24828
+ if (buildServerAutoreload) {
24829
+ reloadableWorker = createReloadableWorker(buildServerMainFile);
24826
24830
 
24827
- if (buildServerAutoreload) {
24831
+ if (reloadableWorker.isPrimary) {
24832
+ const buildServerFileChangeCallback = ({
24833
+ relativeUrl,
24834
+ event
24835
+ }) => {
24836
+ const url = new URL(relativeUrl, rootDirectoryUrl).href;
24828
24837
  logger.info(`file ${event} ${url} -> restarting server...`);
24829
24838
  reloadableWorker.reload();
24830
- }
24831
- };
24832
-
24833
- const stopWatchingBuildServerFiles = registerDirectoryLifecycle(rootDirectoryUrl, {
24834
- watchPatterns: {
24835
- [buildServerMainFile]: true,
24836
- ...buildServerFiles,
24837
- ".jsenv/": false
24838
- },
24839
- cooldownBetweenFileEvents,
24840
- keepProcessAlive: false,
24841
- recursive: true,
24842
- added: ({
24843
- relativeUrl
24844
- }) => {
24845
- buildServerFileChangeCallback({
24846
- relativeUrl,
24847
- event: "added"
24848
- });
24849
- },
24850
- updated: ({
24851
- relativeUrl
24852
- }) => {
24853
- buildServerFileChangeCallback({
24854
- relativeUrl,
24855
- event: "modified"
24856
- });
24857
- },
24858
- removed: ({
24859
- relativeUrl
24860
- }) => {
24861
- buildServerFileChangeCallback({
24862
- relativeUrl,
24863
- event: "removed"
24864
- });
24865
- }
24866
- });
24867
- operation.addAbortCallback(() => {
24868
- stopWatchingBuildServerFiles();
24869
- reloadableWorker.terminate();
24870
- });
24871
- const worker = await reloadableWorker.load();
24872
- const messagePromise = new Promise(resolve => {
24873
- worker.once("message", resolve);
24874
- });
24875
- await messagePromise; // if (!keepProcessAlive) {
24876
- // worker.unref()
24877
- // }
24839
+ };
24878
24840
 
24879
- return {
24880
- origin: `${protocol}://127.0.0.1:${port}`,
24881
- stop: () => {
24841
+ const stopWatchingBuildServerFiles = registerDirectoryLifecycle(rootDirectoryUrl, {
24842
+ watchPatterns: { ...buildServerFiles,
24843
+ [buildServerMainFile]: true,
24844
+ ".jsenv/": false
24845
+ },
24846
+ cooldownBetweenFileEvents,
24847
+ keepProcessAlive: false,
24848
+ recursive: true,
24849
+ added: ({
24850
+ relativeUrl
24851
+ }) => {
24852
+ buildServerFileChangeCallback({
24853
+ relativeUrl,
24854
+ event: "added"
24855
+ });
24856
+ },
24857
+ updated: ({
24858
+ relativeUrl
24859
+ }) => {
24860
+ buildServerFileChangeCallback({
24861
+ relativeUrl,
24862
+ event: "modified"
24863
+ });
24864
+ },
24865
+ removed: ({
24866
+ relativeUrl
24867
+ }) => {
24868
+ buildServerFileChangeCallback({
24869
+ relativeUrl,
24870
+ event: "removed"
24871
+ });
24872
+ }
24873
+ });
24874
+ operation.addAbortCallback(() => {
24882
24875
  stopWatchingBuildServerFiles();
24883
24876
  reloadableWorker.terminate();
24884
- }
24885
- };
24877
+ });
24878
+ const worker = await reloadableWorker.load();
24879
+ const messagePromise = new Promise(resolve => {
24880
+ worker.once("message", resolve);
24881
+ });
24882
+ await messagePromise; // if (!keepProcessAlive) {
24883
+ // worker.unref()
24884
+ // }
24885
+
24886
+ return {
24887
+ origin: `${protocol}://127.0.0.1:${port}`,
24888
+ stop: () => {
24889
+ stopWatchingBuildServerFiles();
24890
+ reloadableWorker.terminate();
24891
+ }
24892
+ };
24893
+ }
24886
24894
  }
24887
24895
 
24888
24896
  const startBuildServerTask = createTaskLog("start build server", {
@@ -24931,7 +24939,7 @@ const startBuildServer = async ({
24931
24939
  });
24932
24940
  logger.info(``);
24933
24941
 
24934
- if (reloadableWorker.isWorker) {
24942
+ if (reloadableWorker && reloadableWorker.isWorker) {
24935
24943
  parentPort.postMessage(server.origin);
24936
24944
  }
24937
24945
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/core",
3
- "version": "27.0.0-alpha.94",
3
+ "version": "27.0.0-alpha.95",
4
4
  "description": "Tool to develop, test and build js projects",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -110,4 +110,4 @@
110
110
  "playwright": "1.22.2",
111
111
  "prettier": "2.7.1"
112
112
  }
113
- }
113
+ }
@@ -56,8 +56,8 @@ export const startBuildServer = async ({
56
56
  "./package.json": true,
57
57
  "./jsenv.config.mjs": true,
58
58
  },
59
+ buildServerAutoreload = false,
59
60
  buildServerMainFile = getCallerPosition().url,
60
- buildServerAutoreload = true,
61
61
  cooldownBetweenFileEvents,
62
62
  }) => {
63
63
  const logger = createLogger({ logLevel })
@@ -96,55 +96,56 @@ export const startBuildServer = async ({
96
96
  port = await findFreePort(port, { signal: operation.signal })
97
97
  }
98
98
 
99
- const reloadableWorker = createReloadableWorker(buildServerMainFile)
100
- if (buildServerAutoreload && reloadableWorker.isPrimary) {
101
- const buildServerFileChangeCallback = ({ relativeUrl, event }) => {
102
- const url = new URL(relativeUrl, rootDirectoryUrl).href
103
- if (buildServerAutoreload) {
99
+ let reloadableWorker
100
+ if (buildServerAutoreload) {
101
+ reloadableWorker = createReloadableWorker(buildServerMainFile)
102
+ if (reloadableWorker.isPrimary) {
103
+ const buildServerFileChangeCallback = ({ relativeUrl, event }) => {
104
+ const url = new URL(relativeUrl, rootDirectoryUrl).href
104
105
  logger.info(`file ${event} ${url} -> restarting server...`)
105
106
  reloadableWorker.reload()
106
107
  }
107
- }
108
- const stopWatchingBuildServerFiles = registerDirectoryLifecycle(
109
- rootDirectoryUrl,
110
- {
111
- watchPatterns: {
112
- [buildServerMainFile]: true,
113
- ...buildServerFiles,
114
- ".jsenv/": false,
115
- },
116
- cooldownBetweenFileEvents,
117
- keepProcessAlive: false,
118
- recursive: true,
119
- added: ({ relativeUrl }) => {
120
- buildServerFileChangeCallback({ relativeUrl, event: "added" })
121
- },
122
- updated: ({ relativeUrl }) => {
123
- buildServerFileChangeCallback({ relativeUrl, event: "modified" })
124
- },
125
- removed: ({ relativeUrl }) => {
126
- buildServerFileChangeCallback({ relativeUrl, event: "removed" })
108
+ const stopWatchingBuildServerFiles = registerDirectoryLifecycle(
109
+ rootDirectoryUrl,
110
+ {
111
+ watchPatterns: {
112
+ ...buildServerFiles,
113
+ [buildServerMainFile]: true,
114
+ ".jsenv/": false,
115
+ },
116
+ cooldownBetweenFileEvents,
117
+ keepProcessAlive: false,
118
+ recursive: true,
119
+ added: ({ relativeUrl }) => {
120
+ buildServerFileChangeCallback({ relativeUrl, event: "added" })
121
+ },
122
+ updated: ({ relativeUrl }) => {
123
+ buildServerFileChangeCallback({ relativeUrl, event: "modified" })
124
+ },
125
+ removed: ({ relativeUrl }) => {
126
+ buildServerFileChangeCallback({ relativeUrl, event: "removed" })
127
+ },
127
128
  },
128
- },
129
- )
130
- operation.addAbortCallback(() => {
131
- stopWatchingBuildServerFiles()
132
- reloadableWorker.terminate()
133
- })
134
- const worker = await reloadableWorker.load()
135
- const messagePromise = new Promise((resolve) => {
136
- worker.once("message", resolve)
137
- })
138
- await messagePromise
139
- // if (!keepProcessAlive) {
140
- // worker.unref()
141
- // }
142
- return {
143
- origin: `${protocol}://127.0.0.1:${port}`,
144
- stop: () => {
129
+ )
130
+ operation.addAbortCallback(() => {
145
131
  stopWatchingBuildServerFiles()
146
132
  reloadableWorker.terminate()
147
- },
133
+ })
134
+ const worker = await reloadableWorker.load()
135
+ const messagePromise = new Promise((resolve) => {
136
+ worker.once("message", resolve)
137
+ })
138
+ await messagePromise
139
+ // if (!keepProcessAlive) {
140
+ // worker.unref()
141
+ // }
142
+ return {
143
+ origin: `${protocol}://127.0.0.1:${port}`,
144
+ stop: () => {
145
+ stopWatchingBuildServerFiles()
146
+ reloadableWorker.terminate()
147
+ },
148
+ }
148
149
  }
149
150
  }
150
151
 
@@ -196,7 +197,7 @@ export const startBuildServer = async ({
196
197
  logger.info(`- ${server.origins[key]}`)
197
198
  })
198
199
  logger.info(``)
199
- if (reloadableWorker.isWorker) {
200
+ if (reloadableWorker && reloadableWorker.isWorker) {
200
201
  parentPort.postMessage(server.origin)
201
202
  }
202
203
  return {
@@ -32,18 +32,18 @@ export const startDevServer = async ({
32
32
  privateKey,
33
33
  keepProcessAlive = true,
34
34
  rootDirectoryUrl,
35
+ clientFiles = {
36
+ "./src/": true,
37
+ "./tests/": true,
38
+ },
35
39
  devServerFiles = {
36
40
  "./package.json": true,
37
41
  "./jsenv.config.mjs": true,
38
42
  },
43
+ clientAutoreload = true,
44
+ devServerAutoreload = false,
39
45
  devServerMainFile = getCallerPosition().url,
40
- devServerAutoreload = true,
41
- clientFiles = {
42
- "./src/": true,
43
- "./tests/": true,
44
- },
45
46
  cooldownBetweenFileEvents,
46
- clientAutoreload = true,
47
47
 
48
48
  sourcemaps = "inline",
49
49
  // default runtimeCompat assume dev server will be request by recent browsers
@@ -92,53 +92,57 @@ export const startDevServer = async ({
92
92
  port = await findFreePort(port, { signal: operation.signal })
93
93
  }
94
94
 
95
- const reloadableWorker = createReloadableWorker(devServerMainFile)
96
- if (devServerAutoreload && reloadableWorker.isPrimary) {
97
- const devServerFileChangeCallback = ({ relativeUrl, event }) => {
98
- const url = new URL(relativeUrl, rootDirectoryUrl).href
99
- logger.info(`file ${event} ${url} -> restarting server...`)
100
- reloadableWorker.reload()
101
- }
102
- const stopWatchingDevServerFiles = registerDirectoryLifecycle(
103
- rootDirectoryUrl,
104
- {
105
- watchPatterns: {
106
- [devServerMainFile]: true,
107
- ...devServerFiles,
108
- },
109
- cooldownBetweenFileEvents,
110
- keepProcessAlive: false,
111
- recursive: true,
112
- added: ({ relativeUrl }) => {
113
- devServerFileChangeCallback({ relativeUrl, event: "added" })
114
- },
115
- updated: ({ relativeUrl }) => {
116
- devServerFileChangeCallback({ relativeUrl, event: "modified" })
117
- },
118
- removed: ({ relativeUrl }) => {
119
- devServerFileChangeCallback({ relativeUrl, event: "removed" })
95
+ let reloadableWorker
96
+ if (devServerAutoreload) {
97
+ reloadableWorker = createReloadableWorker(devServerMainFile)
98
+ if (reloadableWorker.isPrimary) {
99
+ const devServerFileChangeCallback = ({ relativeUrl, event }) => {
100
+ const url = new URL(relativeUrl, rootDirectoryUrl).href
101
+ logger.info(`file ${event} ${url} -> restarting server...`)
102
+ reloadableWorker.reload()
103
+ }
104
+ const stopWatchingDevServerFiles = registerDirectoryLifecycle(
105
+ rootDirectoryUrl,
106
+ {
107
+ watchPatterns: {
108
+ ...devServerFiles.include,
109
+ [devServerMainFile]: true,
110
+ ".jsenv/": false,
111
+ },
112
+ cooldownBetweenFileEvents,
113
+ keepProcessAlive: false,
114
+ recursive: true,
115
+ added: ({ relativeUrl }) => {
116
+ devServerFileChangeCallback({ relativeUrl, event: "added" })
117
+ },
118
+ updated: ({ relativeUrl }) => {
119
+ devServerFileChangeCallback({ relativeUrl, event: "modified" })
120
+ },
121
+ removed: ({ relativeUrl }) => {
122
+ devServerFileChangeCallback({ relativeUrl, event: "removed" })
123
+ },
120
124
  },
121
- },
122
- )
123
- operation.addAbortCallback(() => {
124
- stopWatchingDevServerFiles()
125
- reloadableWorker.terminate()
126
- })
127
-
128
- const worker = await reloadableWorker.load()
129
- const messagePromise = new Promise((resolve) => {
130
- worker.once("message", resolve)
131
- })
132
- await messagePromise
133
- // if (!keepProcessAlive) {
134
- // worker.unref()
135
- // }
136
- return {
137
- origin: `${protocol}://127.0.0.1:${port}`,
138
- stop: () => {
125
+ )
126
+ operation.addAbortCallback(() => {
139
127
  stopWatchingDevServerFiles()
140
128
  reloadableWorker.terminate()
141
- },
129
+ })
130
+
131
+ const worker = await reloadableWorker.load()
132
+ const messagePromise = new Promise((resolve) => {
133
+ worker.once("message", resolve)
134
+ })
135
+ await messagePromise
136
+ // if (!keepProcessAlive) {
137
+ // worker.unref()
138
+ // }
139
+ return {
140
+ origin: `${protocol}://127.0.0.1:${port}`,
141
+ stop: () => {
142
+ stopWatchingDevServerFiles()
143
+ reloadableWorker.terminate()
144
+ },
145
+ }
142
146
  }
143
147
  }
144
148
 
@@ -233,7 +237,7 @@ export const startDevServer = async ({
233
237
  kitchen.pluginController.callHooks("destroy", {})
234
238
  }
235
239
  })
236
- if (reloadableWorker.isWorker) {
240
+ if (reloadableWorker && reloadableWorker.isWorker) {
237
241
  parentPort.postMessage(server.origin)
238
242
  }
239
243
  return {
@@ -45,6 +45,9 @@ export const getCorePlugins = ({
45
45
  if (nodeEsmResolution === true) {
46
46
  nodeEsmResolution = {}
47
47
  }
48
+ if (clientAutoreload === true) {
49
+ clientAutoreload = {}
50
+ }
48
51
  return [
49
52
  jsenvPluginUrlAnalysis({ rootDirectoryUrl, ...urlAnalysis }),
50
53
  jsenvPluginTranspilation(transpilation),
@@ -78,6 +81,7 @@ export const getCorePlugins = ({
78
81
  ...(clientAutoreload
79
82
  ? [
80
83
  jsenvPluginAutoreload({
84
+ ...clientAutoreload,
81
85
  rootDirectoryUrl,
82
86
  urlGraph,
83
87
  scenario,