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