innetjs 1.12.1 → 2.0.2
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/README.md +0 -3
- package/bin/innet +202 -85
- package/constants.d.ts +3 -0
- package/declaration.d.ts +39 -0
- package/extract.d.ts +1 -0
- package/helpers.d.ts +5 -0
- package/index.d.ts +6 -2
- package/index.es6.js +222 -108
- package/index.js +201 -84
- package/package.json +19 -14
- package/templates/be/.env +0 -1
- package/templates/be/README.md +0 -15
- package/templates/be/package.json +0 -13
- package/templates/be/src/controller/index.tsx +0 -7
- package/templates/be/src/declaration.d.ts +0 -4
- package/templates/be/src/index.tsx +0 -6
- package/templates/be/src/view/App/App.css +0 -12
- package/templates/be/src/view/App/App.tsx +0 -15
- package/templates/be/src/view/App/index.ts +0 -1
- package/templates/be/src/view/Page/Page.css +0 -7
- package/templates/be/src/view/Page/Page.tsx +0 -24
- package/templates/be/src/view/Page/index.ts +0 -1
- package/templates/be/src/view/index.ts +0 -2
- package/templates/be/tsconfig.json +0 -31
- package/templates/fe/.env +0 -1
- package/templates/fe/README.md +0 -84
- package/templates/fe/package.json +0 -16
- package/templates/fe/public/favicon.ico +0 -0
- package/templates/fe/public/index.html +0 -14
- package/templates/fe/src/App.scss +0 -48
- package/templates/fe/src/App.tsx +0 -36
- package/templates/fe/src/componenst/Page/Page.scss +0 -22
- package/templates/fe/src/componenst/Page/Page.tsx +0 -18
- package/templates/fe/src/componenst/Page/index.ts +0 -1
- package/templates/fe/src/declaration.d.ts +0 -9
- package/templates/fe/src/index.tsx +0 -6
- package/templates/fe/src/pages/HomePage/HomePage.scss +0 -25
- package/templates/fe/src/pages/HomePage/HomePage.tsx +0 -24
- package/templates/fe/src/pages/HomePage/index.ts +0 -1
- package/templates/fe/tsconfig.json +0 -30
package/index.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var path = require('path');
|
|
3
|
+
var path$1 = require('path');
|
|
4
4
|
var fs = require('fs-extra');
|
|
5
5
|
var http = require('http');
|
|
6
6
|
var https = require('https');
|
|
7
|
+
var util = require('util');
|
|
8
|
+
var axios = require('axios');
|
|
7
9
|
var logger = require('@cantinc/logger');
|
|
8
10
|
var chalk = require('chalk');
|
|
9
|
-
var util = require('util');
|
|
10
11
|
var rollup = require('rollup');
|
|
11
12
|
var commonjs = require('@rollup/plugin-commonjs');
|
|
12
13
|
var pluginNodeResolve = require('@rollup/plugin-node-resolve');
|
|
13
14
|
var rollupPluginTerser = require('rollup-plugin-terser');
|
|
14
15
|
var typescript = require('rollup-plugin-typescript2');
|
|
15
|
-
var
|
|
16
|
+
var styles = require('rollup-plugin-styles');
|
|
16
17
|
var autoprefixer = require('autoprefixer');
|
|
17
18
|
var express = require('express');
|
|
18
19
|
var json = require('@rollup/plugin-json');
|
|
@@ -21,19 +22,24 @@ var proxy = require('express-http-proxy');
|
|
|
21
22
|
var selector = require('cli-select');
|
|
22
23
|
var jsx = require('rollup-plugin-innet-jsx');
|
|
23
24
|
var filesize = require('rollup-plugin-filesize');
|
|
25
|
+
var image = require('@rollup/plugin-image');
|
|
26
|
+
var eslint = require('@rollup/plugin-eslint');
|
|
27
|
+
var linesAndColumns = require('lines-and-columns');
|
|
28
|
+
var unzipper = require('unzipper');
|
|
24
29
|
|
|
25
30
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
26
31
|
|
|
27
|
-
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
|
32
|
+
var path__default = /*#__PURE__*/_interopDefaultLegacy(path$1);
|
|
28
33
|
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
|
29
34
|
var http__default = /*#__PURE__*/_interopDefaultLegacy(http);
|
|
30
35
|
var https__default = /*#__PURE__*/_interopDefaultLegacy(https);
|
|
36
|
+
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
31
37
|
var logger__default = /*#__PURE__*/_interopDefaultLegacy(logger);
|
|
32
38
|
var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
|
|
33
39
|
var rollup__default = /*#__PURE__*/_interopDefaultLegacy(rollup);
|
|
34
40
|
var commonjs__default = /*#__PURE__*/_interopDefaultLegacy(commonjs);
|
|
35
41
|
var typescript__default = /*#__PURE__*/_interopDefaultLegacy(typescript);
|
|
36
|
-
var
|
|
42
|
+
var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
|
|
37
43
|
var autoprefixer__default = /*#__PURE__*/_interopDefaultLegacy(autoprefixer);
|
|
38
44
|
var express__default = /*#__PURE__*/_interopDefaultLegacy(express);
|
|
39
45
|
var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
|
|
@@ -42,8 +48,10 @@ var proxy__default = /*#__PURE__*/_interopDefaultLegacy(proxy);
|
|
|
42
48
|
var selector__default = /*#__PURE__*/_interopDefaultLegacy(selector);
|
|
43
49
|
var jsx__default = /*#__PURE__*/_interopDefaultLegacy(jsx);
|
|
44
50
|
var filesize__default = /*#__PURE__*/_interopDefaultLegacy(filesize);
|
|
51
|
+
var image__default = /*#__PURE__*/_interopDefaultLegacy(image);
|
|
52
|
+
var eslint__default = /*#__PURE__*/_interopDefaultLegacy(eslint);
|
|
45
53
|
|
|
46
|
-
|
|
54
|
+
/******************************************************************************
|
|
47
55
|
Copyright (c) Microsoft Corporation.
|
|
48
56
|
|
|
49
57
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -68,12 +76,77 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
68
76
|
});
|
|
69
77
|
}
|
|
70
78
|
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
const
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
|
|
79
|
+
const Writer = require('fstream').Writer;
|
|
80
|
+
const path = require('path');
|
|
81
|
+
const stream = require('stream');
|
|
82
|
+
const duplexer2 = require('duplexer2');
|
|
83
|
+
const Promise$1 = require('bluebird');
|
|
84
|
+
function Extract(opts, template) {
|
|
85
|
+
const reduceCount = 19 + template.length;
|
|
86
|
+
// make sure path is normalized before using it
|
|
87
|
+
opts.path = path.resolve(path.normalize(opts.path));
|
|
88
|
+
// @ts-ignore
|
|
89
|
+
const parser = new unzipper.Parse(opts);
|
|
90
|
+
const outStream = new stream.Writable({ objectMode: true });
|
|
91
|
+
outStream._write = function (entry, encoding, cb) {
|
|
92
|
+
if (entry.type === 'Directory')
|
|
93
|
+
return cb();
|
|
94
|
+
const extractPath = path.join(opts.path, entry.path.slice(reduceCount));
|
|
95
|
+
if (extractPath.indexOf(opts.path) !== 0) {
|
|
96
|
+
return cb();
|
|
97
|
+
}
|
|
98
|
+
const writer = opts.getWriter ? opts.getWriter({ path: extractPath }) : Writer({ path: extractPath });
|
|
99
|
+
entry.pipe(writer)
|
|
100
|
+
.on('error', cb)
|
|
101
|
+
.on('close', cb);
|
|
102
|
+
};
|
|
103
|
+
const extract = duplexer2(parser, outStream);
|
|
104
|
+
parser.once('crx-header', function (crxHeader) {
|
|
105
|
+
extract.crxHeader = crxHeader;
|
|
106
|
+
});
|
|
107
|
+
parser
|
|
108
|
+
.pipe(outStream)
|
|
109
|
+
.on('finish', function () {
|
|
110
|
+
extract.emit('close');
|
|
111
|
+
});
|
|
112
|
+
extract.promise = function () {
|
|
113
|
+
return new Promise$1(function (resolve, reject) {
|
|
114
|
+
extract.on('close', resolve);
|
|
115
|
+
extract.on('error', reject);
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
return extract;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const lintIncludeDom = [
|
|
122
|
+
'**/*.ts',
|
|
123
|
+
'**/*.tsx',
|
|
124
|
+
'**/*.js',
|
|
125
|
+
'**/*.jsx',
|
|
126
|
+
];
|
|
127
|
+
const stringExcludeDom = [
|
|
128
|
+
'**/*.ts',
|
|
129
|
+
'**/*.tsx',
|
|
130
|
+
'**/*.js',
|
|
131
|
+
'**/*.jsx',
|
|
132
|
+
'**/*.json',
|
|
133
|
+
'**/*.css',
|
|
134
|
+
'**/*.scss',
|
|
135
|
+
'**/*.webp',
|
|
136
|
+
'**/*.gif',
|
|
137
|
+
'**/*.png',
|
|
138
|
+
'**/*.jpeg',
|
|
139
|
+
'**/*.jpg',
|
|
140
|
+
'**/*.svg',
|
|
141
|
+
];
|
|
142
|
+
const stringExcludeNode = [
|
|
143
|
+
'**/*.ts',
|
|
144
|
+
'**/*.tsx',
|
|
145
|
+
'**/*.js',
|
|
146
|
+
'**/*.jsx',
|
|
147
|
+
'**/*.json',
|
|
148
|
+
];
|
|
149
|
+
|
|
77
150
|
function getFile(file) {
|
|
78
151
|
file = path__default["default"].resolve(file);
|
|
79
152
|
if (!fs__default["default"].existsSync(file)) {
|
|
@@ -96,16 +169,35 @@ function getFile(file) {
|
|
|
96
169
|
}
|
|
97
170
|
return file;
|
|
98
171
|
}
|
|
172
|
+
function convertIndexFile(data, version) {
|
|
173
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
+
return data
|
|
175
|
+
.toString()
|
|
176
|
+
.replace('</head>', `<script type="module" defer src="index.js${version ? `?v=${version}` : ''}"></script></head>`);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
99
179
|
const reporter = (options, outputOptions, info) => {
|
|
100
180
|
logger__default["default"].log(`${chalk__default["default"].yellow(info.fileName)} ${chalk__default["default"].green(info.bundleSize)} [ gzip: ${chalk__default["default"].green(info.gzipSize)} ]`);
|
|
101
181
|
return '';
|
|
102
|
-
};
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
const livereload = require('rollup-plugin-livereload');
|
|
185
|
+
const { string } = require('rollup-plugin-string');
|
|
186
|
+
const { exec, spawn } = require('child_process');
|
|
187
|
+
const readline = require('readline');
|
|
188
|
+
const execAsync = util.promisify(exec);
|
|
189
|
+
const copyFiles = util.promisify(fs__default["default"].copy);
|
|
190
|
+
require('dotenv').config();
|
|
103
191
|
class InnetJS {
|
|
104
|
-
constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER ||
|
|
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 || '*', } = {}) {
|
|
105
193
|
this.projectFolder = path__default["default"].resolve(projectFolder);
|
|
106
194
|
this.publicFolder = path__default["default"].resolve(publicFolder);
|
|
107
195
|
this.buildFolder = path__default["default"].resolve(buildFolder);
|
|
108
196
|
this.srcFolder = path__default["default"].resolve(srcFolder);
|
|
197
|
+
this.publicIndexFile = path__default["default"].join(publicFolder, 'index.html');
|
|
198
|
+
this.buildIndexFile = path__default["default"].join(buildFolder, 'index.html');
|
|
199
|
+
this.devBuildFolder = path__default["default"].resolve(projectFolder, 'node_modules', '.cache', 'innetjs', 'build');
|
|
200
|
+
this.devBuildIndexFile = path__default["default"].join(this.devBuildFolder, 'index.html');
|
|
109
201
|
this.sourcemap = sourcemap;
|
|
110
202
|
this.cssModules = cssModules;
|
|
111
203
|
this.cssInJs = cssInJs;
|
|
@@ -119,14 +211,18 @@ class InnetJS {
|
|
|
119
211
|
init(appName, { template, force = false } = {}) {
|
|
120
212
|
return __awaiter(this, void 0, void 0, function* () {
|
|
121
213
|
const appPath = path__default["default"].resolve(appName);
|
|
122
|
-
|
|
214
|
+
const { data } = yield logger__default["default"].start('Get templates list', () => __awaiter(this, void 0, void 0, function* () { return yield axios__default["default"].get('https://api.github.com/repos/d8corp/innetjs-templates/branches'); }));
|
|
215
|
+
const templates = data.map(({ name }) => name).filter(name => name !== 'main');
|
|
216
|
+
if (!template || !templates.includes(template)) {
|
|
123
217
|
logger__default["default"].log(chalk__default["default"].green(`Select one of those templates`));
|
|
124
218
|
const { value } = yield selector__default["default"]({
|
|
125
|
-
values:
|
|
219
|
+
values: templates
|
|
126
220
|
});
|
|
127
221
|
template = value;
|
|
128
222
|
readline.moveCursor(process.stdout, 0, -1);
|
|
129
|
-
|
|
223
|
+
const text = `Selected template: ${chalk__default["default"].white(value)}`;
|
|
224
|
+
logger__default["default"].start(text);
|
|
225
|
+
logger__default["default"].end(text);
|
|
130
226
|
}
|
|
131
227
|
if (!force) {
|
|
132
228
|
yield logger__default["default"].start('Check if app folder is available', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -146,14 +242,16 @@ class InnetJS {
|
|
|
146
242
|
}
|
|
147
243
|
}));
|
|
148
244
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
245
|
+
yield logger__default["default"].start('Download template', () => __awaiter(this, void 0, void 0, function* () {
|
|
246
|
+
const { data } = yield axios__default["default"].get(`https://github.com/d8corp/innetjs-templates/archive/refs/heads/${template}.zip`, {
|
|
247
|
+
responseType: 'stream'
|
|
248
|
+
});
|
|
249
|
+
yield new Promise((resolve, reject) => {
|
|
250
|
+
data.pipe(Extract({
|
|
251
|
+
path: appPath,
|
|
252
|
+
}, template)).on('finish', resolve).on('error', reject);
|
|
253
|
+
});
|
|
155
254
|
}));
|
|
156
|
-
yield logger__default["default"].start('Copy files', () => fs__default["default"].copy(templatePath, appPath));
|
|
157
255
|
yield logger__default["default"].start('Install packages', () => execAsync(`cd ${appPath} && npm i`));
|
|
158
256
|
});
|
|
159
257
|
}
|
|
@@ -164,6 +262,7 @@ class InnetJS {
|
|
|
164
262
|
const pkg = node && (yield this.getPackage());
|
|
165
263
|
const inputOptions = {
|
|
166
264
|
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
265
|
+
preserveEntrySignatures: 'strict',
|
|
167
266
|
plugins: [
|
|
168
267
|
commonjs__default["default"](),
|
|
169
268
|
json__default["default"](),
|
|
@@ -182,34 +281,30 @@ class InnetJS {
|
|
|
182
281
|
moduleDirectories: [path__default["default"].resolve(this.buildFolder, 'node_modules')]
|
|
183
282
|
}), string({
|
|
184
283
|
include: '**/*.*',
|
|
185
|
-
exclude:
|
|
186
|
-
'**/*.ts',
|
|
187
|
-
'**/*.tsx',
|
|
188
|
-
'**/*.js',
|
|
189
|
-
'**/*.jsx',
|
|
190
|
-
'**/*.json',
|
|
191
|
-
]
|
|
284
|
+
exclude: stringExcludeNode,
|
|
192
285
|
}));
|
|
193
286
|
}
|
|
194
287
|
else {
|
|
195
|
-
inputOptions.plugins
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
'
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
288
|
+
inputOptions.plugins = [
|
|
289
|
+
eslint__default["default"]({
|
|
290
|
+
include: lintIncludeDom,
|
|
291
|
+
}),
|
|
292
|
+
...inputOptions.plugins,
|
|
293
|
+
pluginNodeResolve.nodeResolve(),
|
|
294
|
+
image__default["default"](),
|
|
295
|
+
styles__default["default"]({
|
|
296
|
+
mode: this.cssInJs ? 'inject' : 'extract',
|
|
297
|
+
url: true,
|
|
298
|
+
plugins: [autoprefixer__default["default"]()],
|
|
299
|
+
modules: this.cssModules,
|
|
300
|
+
sourceMap: this.sourcemap,
|
|
301
|
+
minimize: true,
|
|
302
|
+
}),
|
|
303
|
+
string({
|
|
304
|
+
include: '**/*.*',
|
|
305
|
+
exclude: stringExcludeDom,
|
|
306
|
+
}),
|
|
307
|
+
];
|
|
213
308
|
outputOptions.format = 'es';
|
|
214
309
|
outputOptions.plugins = [
|
|
215
310
|
rollupPluginTerser.terser(),
|
|
@@ -222,6 +317,12 @@ class InnetJS {
|
|
|
222
317
|
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
223
318
|
yield bundle.write(outputOptions);
|
|
224
319
|
yield bundle.close();
|
|
320
|
+
if (!node) {
|
|
321
|
+
yield copyFiles(this.publicFolder, this.buildFolder);
|
|
322
|
+
const data = yield fs.promises.readFile(this.publicIndexFile);
|
|
323
|
+
const pkg = yield this.getPackage();
|
|
324
|
+
yield fs.promises.writeFile(this.buildIndexFile, yield convertIndexFile(data, pkg.version));
|
|
325
|
+
}
|
|
225
326
|
}));
|
|
226
327
|
if (pkg) {
|
|
227
328
|
yield logger__default["default"].start('Copy package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -242,12 +343,13 @@ class InnetJS {
|
|
|
242
343
|
start({ node = false, error = false } = {}) {
|
|
243
344
|
return __awaiter(this, void 0, void 0, function* () {
|
|
244
345
|
const indexExtension = yield this.getProjectExtension();
|
|
245
|
-
const pkg =
|
|
246
|
-
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.
|
|
346
|
+
const pkg = yield this.getPackage();
|
|
347
|
+
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.devBuildFolder));
|
|
247
348
|
const options = {
|
|
248
349
|
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
350
|
+
preserveEntrySignatures: 'strict',
|
|
249
351
|
output: {
|
|
250
|
-
dir: this.
|
|
352
|
+
dir: this.devBuildFolder,
|
|
251
353
|
sourcemap: true
|
|
252
354
|
},
|
|
253
355
|
plugins: [
|
|
@@ -270,13 +372,7 @@ class InnetJS {
|
|
|
270
372
|
moduleDirectories: [path__default["default"].resolve(this.srcFolder, 'node_modules')]
|
|
271
373
|
}), string({
|
|
272
374
|
include: '**/*.*',
|
|
273
|
-
exclude:
|
|
274
|
-
'**/*.ts',
|
|
275
|
-
'**/*.tsx',
|
|
276
|
-
'**/*.js',
|
|
277
|
-
'**/*.jsx',
|
|
278
|
-
'**/*.json',
|
|
279
|
-
]
|
|
375
|
+
exclude: stringExcludeNode,
|
|
280
376
|
}), this.createServer(options.external));
|
|
281
377
|
}
|
|
282
378
|
else {
|
|
@@ -291,28 +387,42 @@ class InnetJS {
|
|
|
291
387
|
? fs__default["default"].readFileSync(this.sslCrt)
|
|
292
388
|
: undefined;
|
|
293
389
|
options.output.format = 'es';
|
|
294
|
-
options.plugins
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
'
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
390
|
+
options.plugins = [
|
|
391
|
+
eslint__default["default"]({
|
|
392
|
+
include: lintIncludeDom,
|
|
393
|
+
}),
|
|
394
|
+
...options.plugins,
|
|
395
|
+
pluginNodeResolve.nodeResolve(),
|
|
396
|
+
image__default["default"](),
|
|
397
|
+
styles__default["default"]({
|
|
398
|
+
mode: this.cssInJs ? 'inject' : 'extract',
|
|
399
|
+
url: true,
|
|
400
|
+
plugins: [autoprefixer__default["default"]()],
|
|
401
|
+
modules: this.cssModules,
|
|
402
|
+
sourceMap: true,
|
|
403
|
+
}),
|
|
404
|
+
string({
|
|
405
|
+
include: '**/*.*',
|
|
406
|
+
exclude: stringExcludeDom,
|
|
407
|
+
}),
|
|
408
|
+
this.createClient(key, cert, pkg),
|
|
409
|
+
livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {})))
|
|
410
|
+
];
|
|
311
411
|
}
|
|
312
412
|
const watcher = rollup__default["default"].watch(options);
|
|
313
|
-
watcher.on('event', e => {
|
|
413
|
+
watcher.on('event', (e) => __awaiter(this, void 0, void 0, function* () {
|
|
314
414
|
if (e.code == 'ERROR') {
|
|
315
|
-
|
|
415
|
+
if (e.error.code === 'UNRESOLVED_IMPORT') {
|
|
416
|
+
const [, importer, file] = e.error.message.match(/^Could not resolve '(.+)' from (.+)$/);
|
|
417
|
+
const text = (yield fs__default["default"].readFile(file)).toString();
|
|
418
|
+
const lines = new linesAndColumns.LinesAndColumns(text);
|
|
419
|
+
const { line, column } = lines.locationForIndex(text.indexOf(importer));
|
|
420
|
+
logger__default["default"].end('Bundling', e.error.message);
|
|
421
|
+
console.log(`ERROR in ${file}:${line + 1}:${column + 1}`);
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
|
|
425
|
+
}
|
|
316
426
|
}
|
|
317
427
|
else if (e.code === 'BUNDLE_START') {
|
|
318
428
|
logger__default["default"].start('Bundling');
|
|
@@ -320,7 +430,7 @@ class InnetJS {
|
|
|
320
430
|
else if (e.code === 'BUNDLE_END') {
|
|
321
431
|
logger__default["default"].end('Bundling');
|
|
322
432
|
}
|
|
323
|
-
});
|
|
433
|
+
}));
|
|
324
434
|
});
|
|
325
435
|
}
|
|
326
436
|
run(file) {
|
|
@@ -412,14 +522,21 @@ class InnetJS {
|
|
|
412
522
|
return this.package;
|
|
413
523
|
});
|
|
414
524
|
}
|
|
415
|
-
createClient(key, cert) {
|
|
525
|
+
createClient(key, cert, pkg) {
|
|
416
526
|
let app;
|
|
417
527
|
return {
|
|
418
|
-
writeBundle: () => {
|
|
528
|
+
writeBundle: () => __awaiter(this, void 0, void 0, function* () {
|
|
419
529
|
var _a;
|
|
420
530
|
if (!app) {
|
|
421
|
-
const httpsUsing = !!(cert && key);
|
|
422
531
|
app = express__default["default"]();
|
|
532
|
+
const update = () => __awaiter(this, void 0, void 0, function* () {
|
|
533
|
+
const data = yield fs.promises.readFile(this.publicIndexFile);
|
|
534
|
+
yield fs.promises.writeFile(this.devBuildIndexFile, yield convertIndexFile(data, pkg.version));
|
|
535
|
+
});
|
|
536
|
+
fs__default["default"].watch(this.publicIndexFile, update);
|
|
537
|
+
yield update();
|
|
538
|
+
const httpsUsing = !!(cert && key);
|
|
539
|
+
app.use(express__default["default"].static(this.devBuildFolder));
|
|
423
540
|
app.use(express__default["default"].static(this.publicFolder));
|
|
424
541
|
if ((_a = this.proxy) === null || _a === void 0 ? void 0 : _a.startsWith('http')) {
|
|
425
542
|
app.use(this.api, proxy__default["default"](this.proxy, {
|
|
@@ -428,14 +545,14 @@ class InnetJS {
|
|
|
428
545
|
}));
|
|
429
546
|
}
|
|
430
547
|
app.use(/^[^.]+$/, (req, res) => {
|
|
431
|
-
res.sendFile(this.
|
|
548
|
+
res.sendFile(this.devBuildFolder + '/index.html');
|
|
432
549
|
});
|
|
433
550
|
const server = httpsUsing ? https__default["default"].createServer({ key, cert }, app) : http__default["default"].createServer(app);
|
|
434
551
|
server.listen(this.port, () => {
|
|
435
552
|
console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
|
|
436
553
|
});
|
|
437
554
|
}
|
|
438
|
-
}
|
|
555
|
+
})
|
|
439
556
|
};
|
|
440
557
|
}
|
|
441
558
|
createServer(external) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "innetjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "CLI for innet boilerplate",
|
|
5
5
|
"homepage": "https://github.com/d8corp/innetjs",
|
|
6
6
|
"author": "Mikhail Lysikov <d8corp@mail.ru>",
|
|
@@ -32,28 +32,33 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@cantinc/logger": "^1.1.0",
|
|
35
|
-
"@rollup/plugin-commonjs": "^
|
|
35
|
+
"@rollup/plugin-commonjs": "^22.0.2",
|
|
36
|
+
"@rollup/plugin-eslint": "^8.0.2",
|
|
37
|
+
"@rollup/plugin-image": "^2.1.1",
|
|
36
38
|
"@rollup/plugin-json": "^4.1.0",
|
|
37
|
-
"@rollup/plugin-node-resolve": "^13.
|
|
38
|
-
"autoprefixer": "^10.4.
|
|
39
|
+
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
40
|
+
"autoprefixer": "^10.4.8",
|
|
41
|
+
"axios": "^0.27.2",
|
|
39
42
|
"chalk": "^4.1.2",
|
|
40
43
|
"cli-select": "^1.1.2",
|
|
41
|
-
"commander": "^9.
|
|
42
|
-
"dotenv": "^16.0.
|
|
43
|
-
"express": "^4.
|
|
44
|
+
"commander": "^9.4.0",
|
|
45
|
+
"dotenv": "^16.0.1",
|
|
46
|
+
"express": "^4.18.1",
|
|
44
47
|
"express-http-proxy": "^1.6.3",
|
|
45
|
-
"fs-extra": "^10.0
|
|
48
|
+
"fs-extra": "^10.1.0",
|
|
49
|
+
"lines-and-columns": "^2.0.3",
|
|
46
50
|
"node-sass": "^7.0.1",
|
|
47
|
-
"postcss": "^8.4.
|
|
48
|
-
"rollup": "^2.
|
|
51
|
+
"postcss": "^8.4.16",
|
|
52
|
+
"rollup": "^2.77.2",
|
|
49
53
|
"rollup-plugin-filesize": "^9.1.2",
|
|
50
|
-
"rollup-plugin-innet-jsx": "^1.
|
|
54
|
+
"rollup-plugin-innet-jsx": "^1.3.0",
|
|
51
55
|
"rollup-plugin-livereload": "^2.0.5",
|
|
52
|
-
"rollup-plugin-postcss": "^4.0.2",
|
|
53
56
|
"rollup-plugin-string": "^3.0.0",
|
|
57
|
+
"rollup-plugin-styles": "^4.0.0",
|
|
54
58
|
"rollup-plugin-terser": "^7.0.2",
|
|
55
|
-
"rollup-plugin-typescript2": "^0.
|
|
59
|
+
"rollup-plugin-typescript2": "^0.32.1",
|
|
56
60
|
"tmp": "^0.2.1",
|
|
57
|
-
"typescript": "^4.
|
|
61
|
+
"typescript": "^4.7.4",
|
|
62
|
+
"unzipper": "^0.10.11"
|
|
58
63
|
}
|
|
59
64
|
}
|
package/templates/be/.env
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
BUILD_FOLDER=build
|
package/templates/be/README.md
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Page } from '../Page'
|
|
2
|
-
|
|
3
|
-
import appStyles from './App.css'
|
|
4
|
-
|
|
5
|
-
export function App () {
|
|
6
|
-
return (
|
|
7
|
-
<Page title='innetjs application' styles={appStyles}>
|
|
8
|
-
<div class='root'>
|
|
9
|
-
<h1 class='header'>
|
|
10
|
-
Welcome to the innet application!
|
|
11
|
-
</h1>
|
|
12
|
-
</div>
|
|
13
|
-
</Page>
|
|
14
|
-
)
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './App'
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import pageStyles from './Page.css'
|
|
2
|
-
|
|
3
|
-
export function Page ({ title, styles }, children) {
|
|
4
|
-
return (
|
|
5
|
-
<header name='content-type' value='text/html; charset=utf-8'>
|
|
6
|
-
<html lang='ru'>
|
|
7
|
-
<head>
|
|
8
|
-
<meta charset="UTF-8"/>
|
|
9
|
-
<meta
|
|
10
|
-
name="viewport"
|
|
11
|
-
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
|
|
12
|
-
/>
|
|
13
|
-
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
|
|
14
|
-
<style>{pageStyles}</style>
|
|
15
|
-
<style>{styles}</style>
|
|
16
|
-
<title>{title}</title>
|
|
17
|
-
</head>
|
|
18
|
-
<body>
|
|
19
|
-
{children}
|
|
20
|
-
</body>
|
|
21
|
-
</html>
|
|
22
|
-
</header>
|
|
23
|
-
)
|
|
24
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './Page'
|