innetjs 2.0.2 → 2.0.5

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/bin/innet CHANGED
@@ -21,6 +21,7 @@ var json = require('@rollup/plugin-json');
21
21
  var tmp = require('tmp');
22
22
  var proxy = require('express-http-proxy');
23
23
  var selector = require('cli-select');
24
+ var prompt = require('prompts');
24
25
  var jsx = require('rollup-plugin-innet-jsx');
25
26
  var filesize = require('rollup-plugin-filesize');
26
27
  var image = require('@rollup/plugin-image');
@@ -48,6 +49,7 @@ var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
48
49
  var tmp__default = /*#__PURE__*/_interopDefaultLegacy(tmp);
49
50
  var proxy__default = /*#__PURE__*/_interopDefaultLegacy(proxy);
50
51
  var selector__default = /*#__PURE__*/_interopDefaultLegacy(selector);
52
+ var prompt__default = /*#__PURE__*/_interopDefaultLegacy(prompt);
51
53
  var jsx__default = /*#__PURE__*/_interopDefaultLegacy(jsx);
52
54
  var filesize__default = /*#__PURE__*/_interopDefaultLegacy(filesize);
53
55
  var image__default = /*#__PURE__*/_interopDefaultLegacy(image);
@@ -191,7 +193,7 @@ const execAsync = util.promisify(exec);
191
193
  const copyFiles = util.promisify(fs__default["default"].copy);
192
194
  require('dotenv').config();
193
195
  class InnetJS {
194
- constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || 'build', srcFolder = process.env.SRC_FOLDER || 'src', sourcemap = process.env.SOURCEMAP ? process.env.SOURCEMAP === 'true' : false, cssModules = process.env.CSS_MODULES ? process.env.CSS_MODULES === 'true' : true, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : true, sslKey = process.env.SSL_KEY || 'localhost.key', sslCrt = process.env.SSL_CRT || 'localhost.crt', proxy = process.env.PROXY || '', port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '*', } = {}) {
196
+ constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || 'build', srcFolder = process.env.SRC_FOLDER || 'src', sourcemap = process.env.SOURCEMAP ? process.env.SOURCEMAP === 'true' : false, cssModules = process.env.CSS_MODULES ? process.env.CSS_MODULES === 'true' : true, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : true, sslKey = process.env.SSL_KEY || 'localhost.key', sslCrt = process.env.SSL_CRT || 'localhost.crt', proxy = process.env.PROXY || '', port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '/api/?*', } = {}) {
195
197
  this.projectFolder = path__default["default"].resolve(projectFolder);
196
198
  this.publicFolder = path__default["default"].resolve(publicFolder);
197
199
  this.buildFolder = path__default["default"].resolve(buildFolder);
@@ -408,20 +410,27 @@ class InnetJS {
408
410
  exclude: stringExcludeDom,
409
411
  }),
410
412
  this.createClient(key, cert, pkg),
411
- livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {})))
413
+ livereload(Object.assign({ watch: this.devBuildFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {})))
412
414
  ];
413
415
  }
414
416
  const watcher = rollup__default["default"].watch(options);
415
417
  watcher.on('event', (e) => __awaiter(this, void 0, void 0, function* () {
416
418
  if (e.code == 'ERROR') {
417
419
  if (e.error.code === 'UNRESOLVED_IMPORT') {
418
- const [, importer, file] = e.error.message.match(/^Could not resolve '(.+)' from (.+)$/);
420
+ const [, importer, file] = e.error.message.match(/^Could not resolve '(.+)' from (.+)$/) || [];
419
421
  const text = (yield fs__default["default"].readFile(file)).toString();
420
422
  const lines = new linesAndColumns.LinesAndColumns(text);
421
423
  const { line, column } = lines.locationForIndex(text.indexOf(importer));
422
424
  logger__default["default"].end('Bundling', e.error.message);
423
425
  console.log(`ERROR in ${file}:${line + 1}:${column + 1}`);
424
426
  }
427
+ else if (e.error.code === 'PLUGIN_ERROR' && ['rpt2', 'commonjs'].includes(e.error.plugin)) {
428
+ const [, file, line, column] = e.error.message.match(/^[^(]+(src[^(]+)\((\d+),(\d+)\)/) || [];
429
+ logger__default["default"].end('Bundling', e.error.message);
430
+ if (file) {
431
+ console.log(`ERROR in ${file}:${line}:${column}`);
432
+ }
433
+ }
425
434
  else {
426
435
  logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
427
436
  }
@@ -550,9 +559,28 @@ class InnetJS {
550
559
  res.sendFile(this.devBuildFolder + '/index.html');
551
560
  });
552
561
  const server = httpsUsing ? https__default["default"].createServer({ key, cert }, app) : http__default["default"].createServer(app);
553
- server.listen(this.port, () => {
554
- console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
555
- });
562
+ let port = this.port;
563
+ const listener = () => {
564
+ console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${port}`);
565
+ };
566
+ server.listen(port, listener);
567
+ server.on('error', (e) => __awaiter(this, void 0, void 0, function* () {
568
+ if (e.code === 'EADDRINUSE') {
569
+ port++;
570
+ const { userPort } = yield prompt__default["default"]({
571
+ name: 'userPort',
572
+ type: 'number',
573
+ message: `Port ${e.port} is reserved, please enter another one [${port}]:`
574
+ });
575
+ if (userPort) {
576
+ port = userPort;
577
+ }
578
+ server.listen(port);
579
+ }
580
+ else {
581
+ throw e;
582
+ }
583
+ }));
556
584
  }
557
585
  })
558
586
  };
@@ -573,7 +601,7 @@ class InnetJS {
573
601
  }
574
602
  }
575
603
 
576
- var version = "2.0.2";
604
+ var version = "2.0.5";
577
605
 
578
606
  require('dotenv').config();
579
607
  const innetJS = new InnetJS();
package/index.es6.js CHANGED
@@ -18,6 +18,7 @@ import json from '@rollup/plugin-json';
18
18
  import tmp from 'tmp';
19
19
  import proxy from 'express-http-proxy';
20
20
  import selector from 'cli-select';
21
+ import prompt from 'prompts';
21
22
  import jsx from 'rollup-plugin-innet-jsx';
22
23
  import filesize from 'rollup-plugin-filesize';
23
24
  import image from '@rollup/plugin-image';
@@ -163,7 +164,7 @@ const execAsync = promisify(exec);
163
164
  const copyFiles = promisify(fs.copy);
164
165
  require('dotenv').config();
165
166
  class InnetJS {
166
- constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || 'build', srcFolder = process.env.SRC_FOLDER || 'src', sourcemap = process.env.SOURCEMAP ? process.env.SOURCEMAP === 'true' : false, cssModules = process.env.CSS_MODULES ? process.env.CSS_MODULES === 'true' : true, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : true, sslKey = process.env.SSL_KEY || 'localhost.key', sslCrt = process.env.SSL_CRT || 'localhost.crt', proxy = process.env.PROXY || '', port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '*', } = {}) {
167
+ constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || 'build', srcFolder = process.env.SRC_FOLDER || 'src', sourcemap = process.env.SOURCEMAP ? process.env.SOURCEMAP === 'true' : false, cssModules = process.env.CSS_MODULES ? process.env.CSS_MODULES === 'true' : true, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : true, sslKey = process.env.SSL_KEY || 'localhost.key', sslCrt = process.env.SSL_CRT || 'localhost.crt', proxy = process.env.PROXY || '', port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '/api/?*', } = {}) {
167
168
  this.projectFolder = path$1.resolve(projectFolder);
168
169
  this.publicFolder = path$1.resolve(publicFolder);
169
170
  this.buildFolder = path$1.resolve(buildFolder);
@@ -380,20 +381,27 @@ class InnetJS {
380
381
  exclude: stringExcludeDom,
381
382
  }),
382
383
  this.createClient(key, cert, pkg),
383
- livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {})))
384
+ livereload(Object.assign({ watch: this.devBuildFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {})))
384
385
  ];
385
386
  }
386
387
  const watcher = rollup.watch(options);
387
388
  watcher.on('event', (e) => __awaiter(this, void 0, void 0, function* () {
388
389
  if (e.code == 'ERROR') {
389
390
  if (e.error.code === 'UNRESOLVED_IMPORT') {
390
- const [, importer, file] = e.error.message.match(/^Could not resolve '(.+)' from (.+)$/);
391
+ const [, importer, file] = e.error.message.match(/^Could not resolve '(.+)' from (.+)$/) || [];
391
392
  const text = (yield fs.readFile(file)).toString();
392
393
  const lines = new LinesAndColumns(text);
393
394
  const { line, column } = lines.locationForIndex(text.indexOf(importer));
394
395
  logger.end('Bundling', e.error.message);
395
396
  console.log(`ERROR in ${file}:${line + 1}:${column + 1}`);
396
397
  }
398
+ else if (e.error.code === 'PLUGIN_ERROR' && ['rpt2', 'commonjs'].includes(e.error.plugin)) {
399
+ const [, file, line, column] = e.error.message.match(/^[^(]+(src[^(]+)\((\d+),(\d+)\)/) || [];
400
+ logger.end('Bundling', e.error.message);
401
+ if (file) {
402
+ console.log(`ERROR in ${file}:${line}:${column}`);
403
+ }
404
+ }
397
405
  else {
398
406
  logger.end('Bundling', error ? e.error.stack : e.error.message);
399
407
  }
@@ -522,9 +530,28 @@ class InnetJS {
522
530
  res.sendFile(this.devBuildFolder + '/index.html');
523
531
  });
524
532
  const server = httpsUsing ? https.createServer({ key, cert }, app) : http.createServer(app);
525
- server.listen(this.port, () => {
526
- console.log(`${chalk.green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
527
- });
533
+ let port = this.port;
534
+ const listener = () => {
535
+ console.log(`${chalk.green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${port}`);
536
+ };
537
+ server.listen(port, listener);
538
+ server.on('error', (e) => __awaiter(this, void 0, void 0, function* () {
539
+ if (e.code === 'EADDRINUSE') {
540
+ port++;
541
+ const { userPort } = yield prompt({
542
+ name: 'userPort',
543
+ type: 'number',
544
+ message: `Port ${e.port} is reserved, please enter another one [${port}]:`
545
+ });
546
+ if (userPort) {
547
+ port = userPort;
548
+ }
549
+ server.listen(port);
550
+ }
551
+ else {
552
+ throw e;
553
+ }
554
+ }));
528
555
  }
529
556
  })
530
557
  };
package/index.js CHANGED
@@ -20,6 +20,7 @@ var json = require('@rollup/plugin-json');
20
20
  var tmp = require('tmp');
21
21
  var proxy = require('express-http-proxy');
22
22
  var selector = require('cli-select');
23
+ var prompt = require('prompts');
23
24
  var jsx = require('rollup-plugin-innet-jsx');
24
25
  var filesize = require('rollup-plugin-filesize');
25
26
  var image = require('@rollup/plugin-image');
@@ -46,6 +47,7 @@ var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
46
47
  var tmp__default = /*#__PURE__*/_interopDefaultLegacy(tmp);
47
48
  var proxy__default = /*#__PURE__*/_interopDefaultLegacy(proxy);
48
49
  var selector__default = /*#__PURE__*/_interopDefaultLegacy(selector);
50
+ var prompt__default = /*#__PURE__*/_interopDefaultLegacy(prompt);
49
51
  var jsx__default = /*#__PURE__*/_interopDefaultLegacy(jsx);
50
52
  var filesize__default = /*#__PURE__*/_interopDefaultLegacy(filesize);
51
53
  var image__default = /*#__PURE__*/_interopDefaultLegacy(image);
@@ -189,7 +191,7 @@ const execAsync = util.promisify(exec);
189
191
  const copyFiles = util.promisify(fs__default["default"].copy);
190
192
  require('dotenv').config();
191
193
  class InnetJS {
192
- constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || 'build', srcFolder = process.env.SRC_FOLDER || 'src', sourcemap = process.env.SOURCEMAP ? process.env.SOURCEMAP === 'true' : false, cssModules = process.env.CSS_MODULES ? process.env.CSS_MODULES === 'true' : true, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : true, sslKey = process.env.SSL_KEY || 'localhost.key', sslCrt = process.env.SSL_CRT || 'localhost.crt', proxy = process.env.PROXY || '', port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '*', } = {}) {
194
+ constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || 'build', srcFolder = process.env.SRC_FOLDER || 'src', sourcemap = process.env.SOURCEMAP ? process.env.SOURCEMAP === 'true' : false, cssModules = process.env.CSS_MODULES ? process.env.CSS_MODULES === 'true' : true, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : true, sslKey = process.env.SSL_KEY || 'localhost.key', sslCrt = process.env.SSL_CRT || 'localhost.crt', proxy = process.env.PROXY || '', port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '/api/?*', } = {}) {
193
195
  this.projectFolder = path__default["default"].resolve(projectFolder);
194
196
  this.publicFolder = path__default["default"].resolve(publicFolder);
195
197
  this.buildFolder = path__default["default"].resolve(buildFolder);
@@ -406,20 +408,27 @@ class InnetJS {
406
408
  exclude: stringExcludeDom,
407
409
  }),
408
410
  this.createClient(key, cert, pkg),
409
- livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {})))
411
+ livereload(Object.assign({ watch: this.devBuildFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {})))
410
412
  ];
411
413
  }
412
414
  const watcher = rollup__default["default"].watch(options);
413
415
  watcher.on('event', (e) => __awaiter(this, void 0, void 0, function* () {
414
416
  if (e.code == 'ERROR') {
415
417
  if (e.error.code === 'UNRESOLVED_IMPORT') {
416
- const [, importer, file] = e.error.message.match(/^Could not resolve '(.+)' from (.+)$/);
418
+ const [, importer, file] = e.error.message.match(/^Could not resolve '(.+)' from (.+)$/) || [];
417
419
  const text = (yield fs__default["default"].readFile(file)).toString();
418
420
  const lines = new linesAndColumns.LinesAndColumns(text);
419
421
  const { line, column } = lines.locationForIndex(text.indexOf(importer));
420
422
  logger__default["default"].end('Bundling', e.error.message);
421
423
  console.log(`ERROR in ${file}:${line + 1}:${column + 1}`);
422
424
  }
425
+ else if (e.error.code === 'PLUGIN_ERROR' && ['rpt2', 'commonjs'].includes(e.error.plugin)) {
426
+ const [, file, line, column] = e.error.message.match(/^[^(]+(src[^(]+)\((\d+),(\d+)\)/) || [];
427
+ logger__default["default"].end('Bundling', e.error.message);
428
+ if (file) {
429
+ console.log(`ERROR in ${file}:${line}:${column}`);
430
+ }
431
+ }
423
432
  else {
424
433
  logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
425
434
  }
@@ -548,9 +557,28 @@ class InnetJS {
548
557
  res.sendFile(this.devBuildFolder + '/index.html');
549
558
  });
550
559
  const server = httpsUsing ? https__default["default"].createServer({ key, cert }, app) : http__default["default"].createServer(app);
551
- server.listen(this.port, () => {
552
- console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
553
- });
560
+ let port = this.port;
561
+ const listener = () => {
562
+ console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${port}`);
563
+ };
564
+ server.listen(port, listener);
565
+ server.on('error', (e) => __awaiter(this, void 0, void 0, function* () {
566
+ if (e.code === 'EADDRINUSE') {
567
+ port++;
568
+ const { userPort } = yield prompt__default["default"]({
569
+ name: 'userPort',
570
+ type: 'number',
571
+ message: `Port ${e.port} is reserved, please enter another one [${port}]:`
572
+ });
573
+ if (userPort) {
574
+ port = userPort;
575
+ }
576
+ server.listen(port);
577
+ }
578
+ else {
579
+ throw e;
580
+ }
581
+ }));
554
582
  }
555
583
  })
556
584
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "innetjs",
3
- "version": "2.0.2",
3
+ "version": "2.0.5",
4
4
  "description": "CLI for innet boilerplate",
5
5
  "homepage": "https://github.com/d8corp/innetjs",
6
6
  "author": "Mikhail Lysikov <d8corp@mail.ru>",
@@ -49,6 +49,7 @@
49
49
  "lines-and-columns": "^2.0.3",
50
50
  "node-sass": "^7.0.1",
51
51
  "postcss": "^8.4.16",
52
+ "prompts": "^2.4.2",
52
53
  "rollup": "^2.77.2",
53
54
  "rollup-plugin-filesize": "^9.1.2",
54
55
  "rollup-plugin-innet-jsx": "^1.3.0",