innetjs 1.12.0 → 2.0.1
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 +144 -68
- package/declaration.d.ts +39 -0
- package/extract.d.ts +1 -0
- package/index.d.ts +6 -2
- package/index.es6.js +165 -91
- package/index.js +143 -67
- package/package.json +17 -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,23 @@ 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 unzipper = require('unzipper');
|
|
25
28
|
var commander = require('commander');
|
|
26
29
|
|
|
27
30
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
28
31
|
|
|
29
|
-
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
|
32
|
+
var path__default = /*#__PURE__*/_interopDefaultLegacy(path$1);
|
|
30
33
|
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
|
31
34
|
var http__default = /*#__PURE__*/_interopDefaultLegacy(http);
|
|
32
35
|
var https__default = /*#__PURE__*/_interopDefaultLegacy(https);
|
|
36
|
+
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
33
37
|
var logger__default = /*#__PURE__*/_interopDefaultLegacy(logger);
|
|
34
38
|
var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
|
|
35
39
|
var rollup__default = /*#__PURE__*/_interopDefaultLegacy(rollup);
|
|
36
40
|
var commonjs__default = /*#__PURE__*/_interopDefaultLegacy(commonjs);
|
|
37
41
|
var typescript__default = /*#__PURE__*/_interopDefaultLegacy(typescript);
|
|
38
|
-
var
|
|
42
|
+
var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
|
|
39
43
|
var autoprefixer__default = /*#__PURE__*/_interopDefaultLegacy(autoprefixer);
|
|
40
44
|
var express__default = /*#__PURE__*/_interopDefaultLegacy(express);
|
|
41
45
|
var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
|
|
@@ -44,8 +48,9 @@ var proxy__default = /*#__PURE__*/_interopDefaultLegacy(proxy);
|
|
|
44
48
|
var selector__default = /*#__PURE__*/_interopDefaultLegacy(selector);
|
|
45
49
|
var jsx__default = /*#__PURE__*/_interopDefaultLegacy(jsx);
|
|
46
50
|
var filesize__default = /*#__PURE__*/_interopDefaultLegacy(filesize);
|
|
51
|
+
var image__default = /*#__PURE__*/_interopDefaultLegacy(image);
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
/******************************************************************************
|
|
49
54
|
Copyright (c) Microsoft Corporation.
|
|
50
55
|
|
|
51
56
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -70,11 +75,54 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
70
75
|
});
|
|
71
76
|
}
|
|
72
77
|
|
|
78
|
+
const Writer = require('fstream').Writer;
|
|
79
|
+
const path = require('path');
|
|
80
|
+
const stream = require('stream');
|
|
81
|
+
const duplexer2 = require('duplexer2');
|
|
82
|
+
const Promise$1 = require('bluebird');
|
|
83
|
+
function Extract(opts, template) {
|
|
84
|
+
const reduceCount = 19 + template.length;
|
|
85
|
+
// make sure path is normalized before using it
|
|
86
|
+
opts.path = path.resolve(path.normalize(opts.path));
|
|
87
|
+
// @ts-ignore
|
|
88
|
+
const parser = new unzipper.Parse(opts);
|
|
89
|
+
const outStream = new stream.Writable({ objectMode: true });
|
|
90
|
+
outStream._write = function (entry, encoding, cb) {
|
|
91
|
+
if (entry.type === 'Directory')
|
|
92
|
+
return cb();
|
|
93
|
+
const extractPath = path.join(opts.path, entry.path.slice(reduceCount));
|
|
94
|
+
if (extractPath.indexOf(opts.path) !== 0) {
|
|
95
|
+
return cb();
|
|
96
|
+
}
|
|
97
|
+
const writer = opts.getWriter ? opts.getWriter({ path: extractPath }) : Writer({ path: extractPath });
|
|
98
|
+
entry.pipe(writer)
|
|
99
|
+
.on('error', cb)
|
|
100
|
+
.on('close', cb);
|
|
101
|
+
};
|
|
102
|
+
const extract = duplexer2(parser, outStream);
|
|
103
|
+
parser.once('crx-header', function (crxHeader) {
|
|
104
|
+
extract.crxHeader = crxHeader;
|
|
105
|
+
});
|
|
106
|
+
parser
|
|
107
|
+
.pipe(outStream)
|
|
108
|
+
.on('finish', function () {
|
|
109
|
+
extract.emit('close');
|
|
110
|
+
});
|
|
111
|
+
extract.promise = function () {
|
|
112
|
+
return new Promise$1(function (resolve, reject) {
|
|
113
|
+
extract.on('close', resolve);
|
|
114
|
+
extract.on('error', reject);
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
return extract;
|
|
118
|
+
}
|
|
119
|
+
|
|
73
120
|
const livereload = require('rollup-plugin-livereload');
|
|
74
121
|
const { string } = require('rollup-plugin-string');
|
|
75
122
|
const { exec, spawn } = require('child_process');
|
|
76
123
|
const readline = require('readline');
|
|
77
124
|
const execAsync = util.promisify(exec);
|
|
125
|
+
const copyFiles = util.promisify(fs__default["default"].copy);
|
|
78
126
|
require('dotenv').config();
|
|
79
127
|
function getFile(file) {
|
|
80
128
|
file = path__default["default"].resolve(file);
|
|
@@ -98,16 +146,49 @@ function getFile(file) {
|
|
|
98
146
|
}
|
|
99
147
|
return file;
|
|
100
148
|
}
|
|
149
|
+
function convertIndexFile(data, version) {
|
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
+
return data
|
|
152
|
+
.toString()
|
|
153
|
+
.replace('</head>', `<script type="module" defer src="index.js${version ? `?v=${version}` : ''}"></script></head>`);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
101
156
|
const reporter = (options, outputOptions, info) => {
|
|
102
157
|
logger__default["default"].log(`${chalk__default["default"].yellow(info.fileName)} ${chalk__default["default"].green(info.bundleSize)} [ gzip: ${chalk__default["default"].green(info.gzipSize)} ]`);
|
|
103
158
|
return '';
|
|
104
159
|
};
|
|
160
|
+
const stringExcludeDom = [
|
|
161
|
+
'**/*.ts',
|
|
162
|
+
'**/*.tsx',
|
|
163
|
+
'**/*.js',
|
|
164
|
+
'**/*.jsx',
|
|
165
|
+
'**/*.json',
|
|
166
|
+
'**/*.css',
|
|
167
|
+
'**/*.scss',
|
|
168
|
+
'**/*.webp',
|
|
169
|
+
'**/*.gif',
|
|
170
|
+
'**/*.png',
|
|
171
|
+
'**/*.jpeg',
|
|
172
|
+
'**/*.jpg',
|
|
173
|
+
'**/*.svg',
|
|
174
|
+
];
|
|
175
|
+
const stringExcludeNode = [
|
|
176
|
+
'**/*.ts',
|
|
177
|
+
'**/*.tsx',
|
|
178
|
+
'**/*.js',
|
|
179
|
+
'**/*.jsx',
|
|
180
|
+
'**/*.json',
|
|
181
|
+
];
|
|
105
182
|
class InnetJS {
|
|
106
|
-
constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER ||
|
|
183
|
+
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
184
|
this.projectFolder = path__default["default"].resolve(projectFolder);
|
|
108
185
|
this.publicFolder = path__default["default"].resolve(publicFolder);
|
|
109
186
|
this.buildFolder = path__default["default"].resolve(buildFolder);
|
|
110
187
|
this.srcFolder = path__default["default"].resolve(srcFolder);
|
|
188
|
+
this.publicIndexFile = path__default["default"].join(publicFolder, 'index.html');
|
|
189
|
+
this.buildIndexFile = path__default["default"].join(buildFolder, 'index.html');
|
|
190
|
+
this.devBuildFolder = path__default["default"].resolve(projectFolder, 'node_modules', '.cache', 'innetjs', 'build');
|
|
191
|
+
this.devBuildIndexFile = path__default["default"].join(this.devBuildFolder, 'index.html');
|
|
111
192
|
this.sourcemap = sourcemap;
|
|
112
193
|
this.cssModules = cssModules;
|
|
113
194
|
this.cssInJs = cssInJs;
|
|
@@ -121,14 +202,18 @@ class InnetJS {
|
|
|
121
202
|
init(appName, { template, force = false } = {}) {
|
|
122
203
|
return __awaiter(this, void 0, void 0, function* () {
|
|
123
204
|
const appPath = path__default["default"].resolve(appName);
|
|
124
|
-
|
|
205
|
+
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'); }));
|
|
206
|
+
const templates = data.map(({ name }) => name).filter(name => name !== 'main');
|
|
207
|
+
if (!template || !templates.includes(template)) {
|
|
125
208
|
logger__default["default"].log(chalk__default["default"].green(`Select one of those templates`));
|
|
126
209
|
const { value } = yield selector__default["default"]({
|
|
127
|
-
values:
|
|
210
|
+
values: templates
|
|
128
211
|
});
|
|
129
212
|
template = value;
|
|
130
213
|
readline.moveCursor(process.stdout, 0, -1);
|
|
131
|
-
|
|
214
|
+
const text = `Selected template: ${chalk__default["default"].white(value)}`;
|
|
215
|
+
logger__default["default"].start(text);
|
|
216
|
+
logger__default["default"].end(text);
|
|
132
217
|
}
|
|
133
218
|
if (!force) {
|
|
134
219
|
yield logger__default["default"].start('Check if app folder is available', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -148,14 +233,16 @@ class InnetJS {
|
|
|
148
233
|
}
|
|
149
234
|
}));
|
|
150
235
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
236
|
+
yield logger__default["default"].start('Download template', () => __awaiter(this, void 0, void 0, function* () {
|
|
237
|
+
const { data } = yield axios__default["default"].get(`https://github.com/d8corp/innetjs-templates/archive/refs/heads/${template}.zip`, {
|
|
238
|
+
responseType: 'stream'
|
|
239
|
+
});
|
|
240
|
+
yield new Promise((resolve, reject) => {
|
|
241
|
+
data.pipe(Extract({
|
|
242
|
+
path: appPath,
|
|
243
|
+
}, template)).on('finish', resolve).on('error', reject);
|
|
244
|
+
});
|
|
157
245
|
}));
|
|
158
|
-
yield logger__default["default"].start('Copy files', () => fs__default["default"].copy(templatePath, appPath));
|
|
159
246
|
yield logger__default["default"].start('Install packages', () => execAsync(`cd ${appPath} && npm i`));
|
|
160
247
|
});
|
|
161
248
|
}
|
|
@@ -166,6 +253,7 @@ class InnetJS {
|
|
|
166
253
|
const pkg = node && (yield this.getPackage());
|
|
167
254
|
const inputOptions = {
|
|
168
255
|
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
256
|
+
preserveEntrySignatures: 'strict',
|
|
169
257
|
plugins: [
|
|
170
258
|
commonjs__default["default"](),
|
|
171
259
|
json__default["default"](),
|
|
@@ -184,33 +272,20 @@ class InnetJS {
|
|
|
184
272
|
moduleDirectories: [path__default["default"].resolve(this.buildFolder, 'node_modules')]
|
|
185
273
|
}), string({
|
|
186
274
|
include: '**/*.*',
|
|
187
|
-
exclude:
|
|
188
|
-
'**/*.ts',
|
|
189
|
-
'**/*.tsx',
|
|
190
|
-
'**/*.js',
|
|
191
|
-
'**/*.jsx',
|
|
192
|
-
'**/*.json',
|
|
193
|
-
]
|
|
275
|
+
exclude: stringExcludeNode,
|
|
194
276
|
}));
|
|
195
277
|
}
|
|
196
278
|
else {
|
|
197
|
-
inputOptions.plugins.push(pluginNodeResolve.nodeResolve(), string({
|
|
279
|
+
inputOptions.plugins.push(pluginNodeResolve.nodeResolve(), image__default["default"](), string({
|
|
198
280
|
include: '**/*.*',
|
|
199
|
-
exclude:
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
'**/*.jsx',
|
|
204
|
-
'**/*.json',
|
|
205
|
-
'**/*.css',
|
|
206
|
-
'**/*.scss',
|
|
207
|
-
]
|
|
208
|
-
}), postcss__default["default"]({
|
|
281
|
+
exclude: stringExcludeDom,
|
|
282
|
+
}), styles__default["default"]({
|
|
283
|
+
mode: this.cssInJs ? 'inject' : 'extract',
|
|
284
|
+
url: true,
|
|
209
285
|
plugins: [autoprefixer__default["default"]()],
|
|
210
|
-
extract: !this.cssInJs,
|
|
211
286
|
modules: this.cssModules,
|
|
212
287
|
sourceMap: this.sourcemap,
|
|
213
|
-
minimize: true
|
|
288
|
+
minimize: true,
|
|
214
289
|
}));
|
|
215
290
|
outputOptions.format = 'es';
|
|
216
291
|
outputOptions.plugins = [
|
|
@@ -224,6 +299,12 @@ class InnetJS {
|
|
|
224
299
|
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
225
300
|
yield bundle.write(outputOptions);
|
|
226
301
|
yield bundle.close();
|
|
302
|
+
if (!node) {
|
|
303
|
+
yield copyFiles(this.publicFolder, this.buildFolder);
|
|
304
|
+
const data = yield fs.promises.readFile(this.publicIndexFile);
|
|
305
|
+
const pkg = yield this.getPackage();
|
|
306
|
+
yield fs.promises.writeFile(this.buildIndexFile, yield convertIndexFile(data, pkg.version));
|
|
307
|
+
}
|
|
227
308
|
}));
|
|
228
309
|
if (pkg) {
|
|
229
310
|
yield logger__default["default"].start('Copy package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -244,12 +325,13 @@ class InnetJS {
|
|
|
244
325
|
start({ node = false, error = false } = {}) {
|
|
245
326
|
return __awaiter(this, void 0, void 0, function* () {
|
|
246
327
|
const indexExtension = yield this.getProjectExtension();
|
|
247
|
-
const pkg =
|
|
248
|
-
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.
|
|
328
|
+
const pkg = yield this.getPackage();
|
|
329
|
+
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.devBuildFolder));
|
|
249
330
|
const options = {
|
|
250
331
|
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
332
|
+
preserveEntrySignatures: 'strict',
|
|
251
333
|
output: {
|
|
252
|
-
dir: this.
|
|
334
|
+
dir: this.devBuildFolder,
|
|
253
335
|
sourcemap: true
|
|
254
336
|
},
|
|
255
337
|
plugins: [
|
|
@@ -272,13 +354,7 @@ class InnetJS {
|
|
|
272
354
|
moduleDirectories: [path__default["default"].resolve(this.srcFolder, 'node_modules')]
|
|
273
355
|
}), string({
|
|
274
356
|
include: '**/*.*',
|
|
275
|
-
exclude:
|
|
276
|
-
'**/*.ts',
|
|
277
|
-
'**/*.tsx',
|
|
278
|
-
'**/*.js',
|
|
279
|
-
'**/*.jsx',
|
|
280
|
-
'**/*.json',
|
|
281
|
-
]
|
|
357
|
+
exclude: stringExcludeNode,
|
|
282
358
|
}), this.createServer(options.external));
|
|
283
359
|
}
|
|
284
360
|
else {
|
|
@@ -293,26 +369,19 @@ class InnetJS {
|
|
|
293
369
|
? fs__default["default"].readFileSync(this.sslCrt)
|
|
294
370
|
: undefined;
|
|
295
371
|
options.output.format = 'es';
|
|
296
|
-
options.plugins.push(pluginNodeResolve.nodeResolve(), string({
|
|
372
|
+
options.plugins.push(pluginNodeResolve.nodeResolve(), image__default["default"](), string({
|
|
297
373
|
include: '**/*.*',
|
|
298
|
-
exclude:
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
'**/*.jsx',
|
|
303
|
-
'**/*.json',
|
|
304
|
-
'**/*.css',
|
|
305
|
-
'**/*.scss',
|
|
306
|
-
]
|
|
307
|
-
}), postcss__default["default"]({
|
|
374
|
+
exclude: stringExcludeDom,
|
|
375
|
+
}), styles__default["default"]({
|
|
376
|
+
mode: this.cssInJs ? 'inject' : 'extract',
|
|
377
|
+
url: true,
|
|
308
378
|
plugins: [autoprefixer__default["default"]()],
|
|
309
379
|
modules: this.cssModules,
|
|
310
380
|
sourceMap: true,
|
|
311
|
-
|
|
312
|
-
}), this.createClient(key, cert), livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
|
|
381
|
+
}), this.createClient(key, cert, pkg), livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
|
|
313
382
|
}
|
|
314
383
|
const watcher = rollup__default["default"].watch(options);
|
|
315
|
-
watcher.on('event', e => {
|
|
384
|
+
watcher.on('event', (e) => __awaiter(this, void 0, void 0, function* () {
|
|
316
385
|
if (e.code == 'ERROR') {
|
|
317
386
|
logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
|
|
318
387
|
}
|
|
@@ -322,7 +391,7 @@ class InnetJS {
|
|
|
322
391
|
else if (e.code === 'BUNDLE_END') {
|
|
323
392
|
logger__default["default"].end('Bundling');
|
|
324
393
|
}
|
|
325
|
-
});
|
|
394
|
+
}));
|
|
326
395
|
});
|
|
327
396
|
}
|
|
328
397
|
run(file) {
|
|
@@ -414,14 +483,21 @@ class InnetJS {
|
|
|
414
483
|
return this.package;
|
|
415
484
|
});
|
|
416
485
|
}
|
|
417
|
-
createClient(key, cert) {
|
|
486
|
+
createClient(key, cert, pkg) {
|
|
418
487
|
let app;
|
|
419
488
|
return {
|
|
420
|
-
writeBundle: () => {
|
|
489
|
+
writeBundle: () => __awaiter(this, void 0, void 0, function* () {
|
|
421
490
|
var _a;
|
|
422
491
|
if (!app) {
|
|
423
|
-
const httpsUsing = !!(cert && key);
|
|
424
492
|
app = express__default["default"]();
|
|
493
|
+
const update = () => __awaiter(this, void 0, void 0, function* () {
|
|
494
|
+
const data = yield fs.promises.readFile(this.publicIndexFile);
|
|
495
|
+
yield fs.promises.writeFile(this.devBuildIndexFile, yield convertIndexFile(data, pkg.version));
|
|
496
|
+
});
|
|
497
|
+
fs__default["default"].watch(this.publicIndexFile, update);
|
|
498
|
+
yield update();
|
|
499
|
+
const httpsUsing = !!(cert && key);
|
|
500
|
+
app.use(express__default["default"].static(this.devBuildFolder));
|
|
425
501
|
app.use(express__default["default"].static(this.publicFolder));
|
|
426
502
|
if ((_a = this.proxy) === null || _a === void 0 ? void 0 : _a.startsWith('http')) {
|
|
427
503
|
app.use(this.api, proxy__default["default"](this.proxy, {
|
|
@@ -430,14 +506,14 @@ class InnetJS {
|
|
|
430
506
|
}));
|
|
431
507
|
}
|
|
432
508
|
app.use(/^[^.]+$/, (req, res) => {
|
|
433
|
-
res.sendFile(this.
|
|
509
|
+
res.sendFile(this.devBuildFolder + '/index.html');
|
|
434
510
|
});
|
|
435
511
|
const server = httpsUsing ? https__default["default"].createServer({ key, cert }, app) : http__default["default"].createServer(app);
|
|
436
512
|
server.listen(this.port, () => {
|
|
437
513
|
console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
|
|
438
514
|
});
|
|
439
515
|
}
|
|
440
|
-
}
|
|
516
|
+
})
|
|
441
517
|
};
|
|
442
518
|
}
|
|
443
519
|
createServer(external) {
|
|
@@ -456,7 +532,7 @@ class InnetJS {
|
|
|
456
532
|
}
|
|
457
533
|
}
|
|
458
534
|
|
|
459
|
-
var version = "
|
|
535
|
+
var version = "2.0.1";
|
|
460
536
|
|
|
461
537
|
require('dotenv').config();
|
|
462
538
|
const innetJS = new InnetJS();
|
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/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>;
|