innetjs 2.6.0-alpha.9 → 3.0.0
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/_virtual/_rollup-plugin-process-env.js +1 -1
- package/_virtual/_rollup-plugin-process-env.mjs +1 -1
- package/bin/innet +26 -19
- package/index.d.ts +6 -3
- package/index.js +25 -18
- package/index.mjs +24 -18
- package/package.json +5 -5
package/bin/innet
CHANGED
|
@@ -11,6 +11,7 @@ var json = require('@rollup/plugin-json');
|
|
|
11
11
|
var pluginNodeResolve = require('@rollup/plugin-node-resolve');
|
|
12
12
|
var ts = require('@rollup/plugin-typescript');
|
|
13
13
|
var address = require('address');
|
|
14
|
+
var Zip = require('adm-zip');
|
|
14
15
|
var autoprefixer = require('autoprefixer');
|
|
15
16
|
var axios = require('axios');
|
|
16
17
|
var chalk = require('chalk');
|
|
@@ -22,6 +23,7 @@ var glob = require('glob');
|
|
|
22
23
|
var http = require('node:http');
|
|
23
24
|
var https = require('node:https');
|
|
24
25
|
var linesAndColumns = require('lines-and-columns');
|
|
26
|
+
var node_os = require('node:os');
|
|
25
27
|
var path = require('node:path');
|
|
26
28
|
var prompt = require('prompts');
|
|
27
29
|
var rollup = require('rollup');
|
|
@@ -36,7 +38,6 @@ var styles = require('rollup-plugin-styles');
|
|
|
36
38
|
var rollupPluginTerser = require('rollup-plugin-terser');
|
|
37
39
|
var stream = require('node:stream');
|
|
38
40
|
var tmp = require('tmp');
|
|
39
|
-
var unzipper = require('unzipper');
|
|
40
41
|
var node_util = require('node:util');
|
|
41
42
|
|
|
42
43
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -48,6 +49,7 @@ var image__default = /*#__PURE__*/_interopDefaultLegacy(image);
|
|
|
48
49
|
var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
|
|
49
50
|
var ts__default = /*#__PURE__*/_interopDefaultLegacy(ts);
|
|
50
51
|
var address__default = /*#__PURE__*/_interopDefaultLegacy(address);
|
|
52
|
+
var Zip__default = /*#__PURE__*/_interopDefaultLegacy(Zip);
|
|
51
53
|
var autoprefixer__default = /*#__PURE__*/_interopDefaultLegacy(autoprefixer);
|
|
52
54
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
53
55
|
var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
|
|
@@ -163,7 +165,7 @@ const REG_EXT = /\.([^.]+)$/;
|
|
|
163
165
|
const scriptExtensions = ['ts', 'js', 'tsx', 'jsx'];
|
|
164
166
|
const indexExt = scriptExtensions.join(',');
|
|
165
167
|
class InnetJS {
|
|
166
|
-
constructor({ envPrefix = process.env.INNETJS_ENV_PREFIX || 'INNETJS_', projectFolder = process.env.PROJECT_FOLDER || '', baseUrl = process.env.BASE_URL || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', releaseFolder = process.env.RELEASE_FOLDER || 'release', 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 || '', simulateIP = process.env.IP, port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '/api/?*', } = {}) {
|
|
168
|
+
constructor({ envPrefix = process.env.INNETJS_ENV_PREFIX || 'INNETJS_', projectFolder = process.env.PROJECT_FOLDER || '', baseUrl = process.env.BASE_URL || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', releaseFolder = process.env.RELEASE_FOLDER || 'release', 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 || '', simulateIP = process.env.IP, port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '/api/?*', tsconfig = process.env.TSCONFIG, } = {}) {
|
|
167
169
|
this.projectFolder = path__default["default"].resolve(projectFolder);
|
|
168
170
|
this.publicFolder = path__default["default"].resolve(publicFolder);
|
|
169
171
|
this.releaseFolder = path__default["default"].resolve(releaseFolder);
|
|
@@ -190,6 +192,7 @@ class InnetJS {
|
|
|
190
192
|
this.baseUrl = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
|
|
191
193
|
this.envPrefix = envPrefix;
|
|
192
194
|
this.simulateIP = simulateIP;
|
|
195
|
+
this.tsconfig = tsconfig;
|
|
193
196
|
}
|
|
194
197
|
// Methods
|
|
195
198
|
init(appName, { template, force = false } = {}) {
|
|
@@ -227,26 +230,26 @@ class InnetJS {
|
|
|
227
230
|
}));
|
|
228
231
|
}
|
|
229
232
|
yield logger__default["default"].start('Download template', () => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
const zipPath = `${path__default["default"].join(appPath, 'template.zip')}`;
|
|
233
|
+
const tmpPath = node_os.tmpdir();
|
|
234
|
+
const zipPath = path__default["default"].join(tmpPath, 'template.zip');
|
|
235
|
+
const unzipPath = path__default["default"].join(tmpPath, `innetjs-templates-${template}`);
|
|
234
236
|
const { data } = yield axios__default["default"].get(`https://github.com/d8corp/innetjs-templates/archive/refs/heads/${template}.zip`, {
|
|
235
237
|
responseType: 'stream',
|
|
236
238
|
});
|
|
237
239
|
yield pipeline(data, fs__default["default"].createWriteStream(zipPath));
|
|
240
|
+
const zip = new Zip__default["default"](zipPath);
|
|
238
241
|
yield new Promise((resolve, reject) => {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
.on('error', reject);
|
|
242
|
+
zip.extractAllToAsync(tmpPath, false, false, (error) => {
|
|
243
|
+
if (error) {
|
|
244
|
+
reject(error);
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
resolve(undefined);
|
|
248
|
+
}
|
|
249
|
+
});
|
|
248
250
|
});
|
|
249
251
|
yield fs__default["default"].remove(zipPath);
|
|
252
|
+
yield fs__default["default"].move(unzipPath, appPath, { overwrite: true });
|
|
250
253
|
}));
|
|
251
254
|
yield logger__default["default"].start('Install packages', () => execAsync(`cd ${appPath} && npm i`));
|
|
252
255
|
});
|
|
@@ -348,7 +351,7 @@ class InnetJS {
|
|
|
348
351
|
}
|
|
349
352
|
});
|
|
350
353
|
}
|
|
351
|
-
start({ node = false, inject = false, error = false, index = 'index' } = {}) {
|
|
354
|
+
start({ node = false, inject = false, error = false, index = 'index', } = {}) {
|
|
352
355
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
353
356
|
const pkg = yield this.getPackage();
|
|
354
357
|
const input = glob__default["default"].sync(`src/${index}.{${indexExt}}`);
|
|
@@ -387,8 +390,10 @@ class InnetJS {
|
|
|
387
390
|
warn(warning);
|
|
388
391
|
},
|
|
389
392
|
};
|
|
393
|
+
let preset;
|
|
390
394
|
this.withLint(options);
|
|
391
395
|
if (node) {
|
|
396
|
+
preset = { NODE_ENV: 'dev' };
|
|
392
397
|
// @ts-expect-error
|
|
393
398
|
options.output.format = 'cjs';
|
|
394
399
|
options.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
@@ -429,7 +434,7 @@ class InnetJS {
|
|
|
429
434
|
exclude: stringExcludeDom,
|
|
430
435
|
}), this.createClient(key, cert, pkg, path__default["default"].parse(input[0]).name, inject), livereload(Object.assign({ exts: ['html', 'css', 'js', 'png', 'svg', 'webp', 'gif', 'jpg', 'json'], watch: [this.devBuildFolder, this.publicFolder], verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
|
|
431
436
|
}
|
|
432
|
-
this.withEnv(options, true);
|
|
437
|
+
this.withEnv(options, true, preset);
|
|
433
438
|
const watcher = rollup__default["default"].watch(options);
|
|
434
439
|
watcher.on('event', (e) => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
435
440
|
if (e.code === 'ERROR') {
|
|
@@ -543,6 +548,7 @@ class InnetJS {
|
|
|
543
548
|
plugins: [
|
|
544
549
|
json__default["default"](),
|
|
545
550
|
ts__default["default"]({
|
|
551
|
+
tsconfig: this.tsconfig,
|
|
546
552
|
compilerOptions: {
|
|
547
553
|
sourceMap: false,
|
|
548
554
|
outDir: releaseFolder,
|
|
@@ -651,10 +657,11 @@ class InnetJS {
|
|
|
651
657
|
}));
|
|
652
658
|
}
|
|
653
659
|
}
|
|
654
|
-
withEnv(options, virtual) {
|
|
660
|
+
withEnv(options, virtual, preset) {
|
|
655
661
|
options.plugins.push(env__default["default"](this.envPrefix, {
|
|
656
662
|
include: options.input,
|
|
657
663
|
virtual,
|
|
664
|
+
preset,
|
|
658
665
|
}));
|
|
659
666
|
}
|
|
660
667
|
increaseVersion(release) {
|
|
@@ -778,7 +785,7 @@ class InnetJS {
|
|
|
778
785
|
}
|
|
779
786
|
|
|
780
787
|
(function () {
|
|
781
|
-
const env = {"__INNETJS__PACKAGE_VERSION":"
|
|
788
|
+
const env = {"__INNETJS__PACKAGE_VERSION":"3.0.0"};
|
|
782
789
|
if (typeof process === 'undefined') {
|
|
783
790
|
globalThis.process = { env: env };
|
|
784
791
|
} else if (process.env) {
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import rollup from 'rollup';
|
|
2
|
+
import { EnvValues } from 'rollup-plugin-process-env';
|
|
2
3
|
export interface ReleaseOptions {
|
|
3
4
|
node?: boolean;
|
|
4
5
|
index?: string;
|
|
@@ -33,8 +34,9 @@ export declare class InnetJS {
|
|
|
33
34
|
api: string;
|
|
34
35
|
envPrefix: string;
|
|
35
36
|
simulateIP: string;
|
|
37
|
+
tsconfig: string;
|
|
36
38
|
private package;
|
|
37
|
-
constructor({ envPrefix, projectFolder, baseUrl, publicFolder, releaseFolder, buildFolder, srcFolder, sourcemap, cssModules, cssInJs, sslKey, sslCrt, proxy, simulateIP, port, api, }?: {
|
|
39
|
+
constructor({ envPrefix, projectFolder, baseUrl, publicFolder, releaseFolder, buildFolder, srcFolder, sourcemap, cssModules, cssInJs, sslKey, sslCrt, proxy, simulateIP, port, api, tsconfig, }?: {
|
|
38
40
|
envPrefix?: string;
|
|
39
41
|
projectFolder?: string;
|
|
40
42
|
baseUrl?: string;
|
|
@@ -51,6 +53,7 @@ export declare class InnetJS {
|
|
|
51
53
|
simulateIP?: string;
|
|
52
54
|
port?: number;
|
|
53
55
|
api?: string;
|
|
56
|
+
tsconfig?: string;
|
|
54
57
|
});
|
|
55
58
|
init(appName: string, { template, force }?: any): Promise<void>;
|
|
56
59
|
build({ node, inject, index }?: {
|
|
@@ -58,7 +61,7 @@ export declare class InnetJS {
|
|
|
58
61
|
inject?: boolean;
|
|
59
62
|
index?: string;
|
|
60
63
|
}): Promise<void>;
|
|
61
|
-
start({ node, inject, error, index }?: {
|
|
64
|
+
start({ node, inject, error, index, }?: {
|
|
62
65
|
node?: boolean;
|
|
63
66
|
inject?: boolean;
|
|
64
67
|
error?: boolean;
|
|
@@ -68,7 +71,7 @@ export declare class InnetJS {
|
|
|
68
71
|
release({ index, pub }?: ReleaseOptions): Promise<void>;
|
|
69
72
|
private _lintUsage;
|
|
70
73
|
withLint(options: rollup.RollupOptions, prod?: boolean): void;
|
|
71
|
-
withEnv(options: rollup.RollupOptions, virtual?: boolean): void;
|
|
74
|
+
withEnv(options: rollup.RollupOptions, virtual?: boolean, preset?: EnvValues): void;
|
|
72
75
|
increaseVersion(release: string): Promise<void>;
|
|
73
76
|
getPackage(): Promise<Record<string, any>>;
|
|
74
77
|
createClient(key: any, cert: any, pkg: any, index: string, inject: boolean): rollup.Plugin;
|
package/index.js
CHANGED
|
@@ -12,6 +12,7 @@ var json = require('@rollup/plugin-json');
|
|
|
12
12
|
var pluginNodeResolve = require('@rollup/plugin-node-resolve');
|
|
13
13
|
var ts = require('@rollup/plugin-typescript');
|
|
14
14
|
var address = require('address');
|
|
15
|
+
var Zip = require('adm-zip');
|
|
15
16
|
var autoprefixer = require('autoprefixer');
|
|
16
17
|
var axios = require('axios');
|
|
17
18
|
var chalk = require('chalk');
|
|
@@ -23,6 +24,7 @@ var glob = require('glob');
|
|
|
23
24
|
var http = require('node:http');
|
|
24
25
|
var https = require('node:https');
|
|
25
26
|
var linesAndColumns = require('lines-and-columns');
|
|
27
|
+
var node_os = require('node:os');
|
|
26
28
|
var path = require('node:path');
|
|
27
29
|
var prompt = require('prompts');
|
|
28
30
|
var rollup = require('rollup');
|
|
@@ -37,7 +39,6 @@ var styles = require('rollup-plugin-styles');
|
|
|
37
39
|
var rollupPluginTerser = require('rollup-plugin-terser');
|
|
38
40
|
var stream = require('node:stream');
|
|
39
41
|
var tmp = require('tmp');
|
|
40
|
-
var unzipper = require('unzipper');
|
|
41
42
|
var node_util = require('node:util');
|
|
42
43
|
var constants = require('./constants.js');
|
|
43
44
|
var helpers = require('./helpers.js');
|
|
@@ -52,6 +53,7 @@ var image__default = /*#__PURE__*/_interopDefaultLegacy(image);
|
|
|
52
53
|
var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
|
|
53
54
|
var ts__default = /*#__PURE__*/_interopDefaultLegacy(ts);
|
|
54
55
|
var address__default = /*#__PURE__*/_interopDefaultLegacy(address);
|
|
56
|
+
var Zip__default = /*#__PURE__*/_interopDefaultLegacy(Zip);
|
|
55
57
|
var autoprefixer__default = /*#__PURE__*/_interopDefaultLegacy(autoprefixer);
|
|
56
58
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
57
59
|
var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
|
|
@@ -91,7 +93,7 @@ const REG_EXT = /\.([^.]+)$/;
|
|
|
91
93
|
const scriptExtensions = ['ts', 'js', 'tsx', 'jsx'];
|
|
92
94
|
const indexExt = scriptExtensions.join(',');
|
|
93
95
|
class InnetJS {
|
|
94
|
-
constructor({ envPrefix = process.env.INNETJS_ENV_PREFIX || 'INNETJS_', projectFolder = process.env.PROJECT_FOLDER || '', baseUrl = process.env.BASE_URL || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', releaseFolder = process.env.RELEASE_FOLDER || 'release', 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 || '', simulateIP = process.env.IP, port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '/api/?*', } = {}) {
|
|
96
|
+
constructor({ envPrefix = process.env.INNETJS_ENV_PREFIX || 'INNETJS_', projectFolder = process.env.PROJECT_FOLDER || '', baseUrl = process.env.BASE_URL || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', releaseFolder = process.env.RELEASE_FOLDER || 'release', 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 || '', simulateIP = process.env.IP, port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '/api/?*', tsconfig = process.env.TSCONFIG, } = {}) {
|
|
95
97
|
this.projectFolder = path__default["default"].resolve(projectFolder);
|
|
96
98
|
this.publicFolder = path__default["default"].resolve(publicFolder);
|
|
97
99
|
this.releaseFolder = path__default["default"].resolve(releaseFolder);
|
|
@@ -118,6 +120,7 @@ class InnetJS {
|
|
|
118
120
|
this.baseUrl = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
|
|
119
121
|
this.envPrefix = envPrefix;
|
|
120
122
|
this.simulateIP = simulateIP;
|
|
123
|
+
this.tsconfig = tsconfig;
|
|
121
124
|
}
|
|
122
125
|
// Methods
|
|
123
126
|
init(appName, { template, force = false } = {}) {
|
|
@@ -155,26 +158,26 @@ class InnetJS {
|
|
|
155
158
|
}));
|
|
156
159
|
}
|
|
157
160
|
yield logger__default["default"].start('Download template', () => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
const zipPath = `${path__default["default"].join(appPath, 'template.zip')}`;
|
|
161
|
+
const tmpPath = node_os.tmpdir();
|
|
162
|
+
const zipPath = path__default["default"].join(tmpPath, 'template.zip');
|
|
163
|
+
const unzipPath = path__default["default"].join(tmpPath, `innetjs-templates-${template}`);
|
|
162
164
|
const { data } = yield axios__default["default"].get(`https://github.com/d8corp/innetjs-templates/archive/refs/heads/${template}.zip`, {
|
|
163
165
|
responseType: 'stream',
|
|
164
166
|
});
|
|
165
167
|
yield pipeline(data, fs__default["default"].createWriteStream(zipPath));
|
|
168
|
+
const zip = new Zip__default["default"](zipPath);
|
|
166
169
|
yield new Promise((resolve, reject) => {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
.on('error', reject);
|
|
170
|
+
zip.extractAllToAsync(tmpPath, false, false, (error) => {
|
|
171
|
+
if (error) {
|
|
172
|
+
reject(error);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
resolve(undefined);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
176
178
|
});
|
|
177
179
|
yield fs__default["default"].remove(zipPath);
|
|
180
|
+
yield fs__default["default"].move(unzipPath, appPath, { overwrite: true });
|
|
178
181
|
}));
|
|
179
182
|
yield logger__default["default"].start('Install packages', () => execAsync(`cd ${appPath} && npm i`));
|
|
180
183
|
});
|
|
@@ -276,7 +279,7 @@ class InnetJS {
|
|
|
276
279
|
}
|
|
277
280
|
});
|
|
278
281
|
}
|
|
279
|
-
start({ node = false, inject = false, error = false, index = 'index' } = {}) {
|
|
282
|
+
start({ node = false, inject = false, error = false, index = 'index', } = {}) {
|
|
280
283
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
281
284
|
const pkg = yield this.getPackage();
|
|
282
285
|
const input = glob__default["default"].sync(`src/${index}.{${indexExt}}`);
|
|
@@ -315,8 +318,10 @@ class InnetJS {
|
|
|
315
318
|
warn(warning);
|
|
316
319
|
},
|
|
317
320
|
};
|
|
321
|
+
let preset;
|
|
318
322
|
this.withLint(options);
|
|
319
323
|
if (node) {
|
|
324
|
+
preset = { NODE_ENV: 'dev' };
|
|
320
325
|
// @ts-expect-error
|
|
321
326
|
options.output.format = 'cjs';
|
|
322
327
|
options.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
@@ -357,7 +362,7 @@ class InnetJS {
|
|
|
357
362
|
exclude: constants.stringExcludeDom,
|
|
358
363
|
}), this.createClient(key, cert, pkg, path__default["default"].parse(input[0]).name, inject), livereload(Object.assign({ exts: ['html', 'css', 'js', 'png', 'svg', 'webp', 'gif', 'jpg', 'json'], watch: [this.devBuildFolder, this.publicFolder], verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
|
|
359
364
|
}
|
|
360
|
-
this.withEnv(options, true);
|
|
365
|
+
this.withEnv(options, true, preset);
|
|
361
366
|
const watcher = rollup__default["default"].watch(options);
|
|
362
367
|
watcher.on('event', (e) => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
363
368
|
if (e.code === 'ERROR') {
|
|
@@ -471,6 +476,7 @@ class InnetJS {
|
|
|
471
476
|
plugins: [
|
|
472
477
|
json__default["default"](),
|
|
473
478
|
ts__default["default"]({
|
|
479
|
+
tsconfig: this.tsconfig,
|
|
474
480
|
compilerOptions: {
|
|
475
481
|
sourceMap: false,
|
|
476
482
|
outDir: releaseFolder,
|
|
@@ -579,10 +585,11 @@ class InnetJS {
|
|
|
579
585
|
}));
|
|
580
586
|
}
|
|
581
587
|
}
|
|
582
|
-
withEnv(options, virtual) {
|
|
588
|
+
withEnv(options, virtual, preset) {
|
|
583
589
|
options.plugins.push(env__default["default"](this.envPrefix, {
|
|
584
590
|
include: options.input,
|
|
585
591
|
virtual,
|
|
592
|
+
preset,
|
|
586
593
|
}));
|
|
587
594
|
}
|
|
588
595
|
increaseVersion(release) {
|
package/index.mjs
CHANGED
|
@@ -8,6 +8,7 @@ import json from '@rollup/plugin-json';
|
|
|
8
8
|
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
|
9
9
|
import ts from '@rollup/plugin-typescript';
|
|
10
10
|
import address from 'address';
|
|
11
|
+
import Zip from 'adm-zip';
|
|
11
12
|
import autoprefixer from 'autoprefixer';
|
|
12
13
|
import axios from 'axios';
|
|
13
14
|
import chalk from 'chalk';
|
|
@@ -19,6 +20,7 @@ import glob from 'glob';
|
|
|
19
20
|
import http from 'node:http';
|
|
20
21
|
import https from 'node:https';
|
|
21
22
|
import { LinesAndColumns } from 'lines-and-columns';
|
|
23
|
+
import { tmpdir } from 'node:os';
|
|
22
24
|
import path from 'node:path';
|
|
23
25
|
import prompt from 'prompts';
|
|
24
26
|
import rollup from 'rollup';
|
|
@@ -33,7 +35,6 @@ import styles from 'rollup-plugin-styles';
|
|
|
33
35
|
import { terser } from 'rollup-plugin-terser';
|
|
34
36
|
import stream from 'node:stream';
|
|
35
37
|
import tmp from 'tmp';
|
|
36
|
-
import { Parse } from 'unzipper';
|
|
37
38
|
import { promisify } from 'node:util';
|
|
38
39
|
import { stringExcludeNode, imageInclude, stringExcludeDom, lintInclude } from './constants.mjs';
|
|
39
40
|
import { reporter, convertIndexFile, getFile } from './helpers.mjs';
|
|
@@ -55,7 +56,7 @@ const REG_EXT = /\.([^.]+)$/;
|
|
|
55
56
|
const scriptExtensions = ['ts', 'js', 'tsx', 'jsx'];
|
|
56
57
|
const indexExt = scriptExtensions.join(',');
|
|
57
58
|
class InnetJS {
|
|
58
|
-
constructor({ envPrefix = process.env.INNETJS_ENV_PREFIX || 'INNETJS_', projectFolder = process.env.PROJECT_FOLDER || '', baseUrl = process.env.BASE_URL || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', releaseFolder = process.env.RELEASE_FOLDER || 'release', 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 || '', simulateIP = process.env.IP, port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '/api/?*', } = {}) {
|
|
59
|
+
constructor({ envPrefix = process.env.INNETJS_ENV_PREFIX || 'INNETJS_', projectFolder = process.env.PROJECT_FOLDER || '', baseUrl = process.env.BASE_URL || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', releaseFolder = process.env.RELEASE_FOLDER || 'release', 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 || '', simulateIP = process.env.IP, port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '/api/?*', tsconfig = process.env.TSCONFIG, } = {}) {
|
|
59
60
|
this.projectFolder = path.resolve(projectFolder);
|
|
60
61
|
this.publicFolder = path.resolve(publicFolder);
|
|
61
62
|
this.releaseFolder = path.resolve(releaseFolder);
|
|
@@ -82,6 +83,7 @@ class InnetJS {
|
|
|
82
83
|
this.baseUrl = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
|
|
83
84
|
this.envPrefix = envPrefix;
|
|
84
85
|
this.simulateIP = simulateIP;
|
|
86
|
+
this.tsconfig = tsconfig;
|
|
85
87
|
}
|
|
86
88
|
// Methods
|
|
87
89
|
init(appName, { template, force = false } = {}) {
|
|
@@ -119,26 +121,26 @@ class InnetJS {
|
|
|
119
121
|
}));
|
|
120
122
|
}
|
|
121
123
|
yield logger.start('Download template', () => __awaiter(this, void 0, void 0, function* () {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
const zipPath = `${path.join(appPath, 'template.zip')}`;
|
|
124
|
+
const tmpPath = tmpdir();
|
|
125
|
+
const zipPath = path.join(tmpPath, 'template.zip');
|
|
126
|
+
const unzipPath = path.join(tmpPath, `innetjs-templates-${template}`);
|
|
126
127
|
const { data } = yield axios.get(`https://github.com/d8corp/innetjs-templates/archive/refs/heads/${template}.zip`, {
|
|
127
128
|
responseType: 'stream',
|
|
128
129
|
});
|
|
129
130
|
yield pipeline(data, fs.createWriteStream(zipPath));
|
|
131
|
+
const zip = new Zip(zipPath);
|
|
130
132
|
yield new Promise((resolve, reject) => {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
.on('error', reject);
|
|
133
|
+
zip.extractAllToAsync(tmpPath, false, false, (error) => {
|
|
134
|
+
if (error) {
|
|
135
|
+
reject(error);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
resolve(undefined);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
140
141
|
});
|
|
141
142
|
yield fs.remove(zipPath);
|
|
143
|
+
yield fs.move(unzipPath, appPath, { overwrite: true });
|
|
142
144
|
}));
|
|
143
145
|
yield logger.start('Install packages', () => execAsync(`cd ${appPath} && npm i`));
|
|
144
146
|
});
|
|
@@ -240,7 +242,7 @@ class InnetJS {
|
|
|
240
242
|
}
|
|
241
243
|
});
|
|
242
244
|
}
|
|
243
|
-
start({ node = false, inject = false, error = false, index = 'index' } = {}) {
|
|
245
|
+
start({ node = false, inject = false, error = false, index = 'index', } = {}) {
|
|
244
246
|
return __awaiter(this, void 0, void 0, function* () {
|
|
245
247
|
const pkg = yield this.getPackage();
|
|
246
248
|
const input = glob.sync(`src/${index}.{${indexExt}}`);
|
|
@@ -279,8 +281,10 @@ class InnetJS {
|
|
|
279
281
|
warn(warning);
|
|
280
282
|
},
|
|
281
283
|
};
|
|
284
|
+
let preset;
|
|
282
285
|
this.withLint(options);
|
|
283
286
|
if (node) {
|
|
287
|
+
preset = { NODE_ENV: 'dev' };
|
|
284
288
|
// @ts-expect-error
|
|
285
289
|
options.output.format = 'cjs';
|
|
286
290
|
options.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
@@ -321,7 +325,7 @@ class InnetJS {
|
|
|
321
325
|
exclude: stringExcludeDom,
|
|
322
326
|
}), this.createClient(key, cert, pkg, path.parse(input[0]).name, inject), livereload(Object.assign({ exts: ['html', 'css', 'js', 'png', 'svg', 'webp', 'gif', 'jpg', 'json'], watch: [this.devBuildFolder, this.publicFolder], verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
|
|
323
327
|
}
|
|
324
|
-
this.withEnv(options, true);
|
|
328
|
+
this.withEnv(options, true, preset);
|
|
325
329
|
const watcher = rollup.watch(options);
|
|
326
330
|
watcher.on('event', (e) => __awaiter(this, void 0, void 0, function* () {
|
|
327
331
|
if (e.code === 'ERROR') {
|
|
@@ -435,6 +439,7 @@ class InnetJS {
|
|
|
435
439
|
plugins: [
|
|
436
440
|
json(),
|
|
437
441
|
ts({
|
|
442
|
+
tsconfig: this.tsconfig,
|
|
438
443
|
compilerOptions: {
|
|
439
444
|
sourceMap: false,
|
|
440
445
|
outDir: releaseFolder,
|
|
@@ -543,10 +548,11 @@ class InnetJS {
|
|
|
543
548
|
}));
|
|
544
549
|
}
|
|
545
550
|
}
|
|
546
|
-
withEnv(options, virtual) {
|
|
551
|
+
withEnv(options, virtual, preset) {
|
|
547
552
|
options.plugins.push(env(this.envPrefix, {
|
|
548
553
|
include: options.input,
|
|
549
554
|
virtual,
|
|
555
|
+
preset,
|
|
550
556
|
}));
|
|
551
557
|
}
|
|
552
558
|
increaseVersion(release) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "innetjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "CLI for innet boilerplate",
|
|
5
5
|
"homepage": "https://github.com/d8corp/innetjs",
|
|
6
6
|
"author": "Mikhail Lysikov <d8corp@mail.ru>",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
58
58
|
"@rollup/plugin-typescript": "^11.0.0",
|
|
59
59
|
"address": "^1.2.1",
|
|
60
|
+
"adm-zip": "^0.5.10",
|
|
60
61
|
"autoprefixer": "^10.4.13",
|
|
61
62
|
"axios": "^1.1.3",
|
|
62
63
|
"chalk": "^4.1.2",
|
|
@@ -75,18 +76,17 @@
|
|
|
75
76
|
"rollup-plugin-external-node-modules": "^1.0.1",
|
|
76
77
|
"rollup-plugin-filesize": "^9.1.2",
|
|
77
78
|
"rollup-plugin-import-assets": "^1.1.1",
|
|
78
|
-
"rollup-plugin-innet-jsx": "^
|
|
79
|
+
"rollup-plugin-innet-jsx": "^2.0.0",
|
|
79
80
|
"rollup-plugin-livereload": "^2.0.5",
|
|
80
81
|
"rollup-plugin-node-externals": "^5.0.2",
|
|
81
82
|
"rollup-plugin-polyfill-node": "^0.11.0",
|
|
82
83
|
"rollup-plugin-preserve-shebangs": "^0.2.0",
|
|
83
|
-
"rollup-plugin-process-env": "^1.0.
|
|
84
|
+
"rollup-plugin-process-env": "^1.0.7",
|
|
84
85
|
"rollup-plugin-string": "^3.0.0",
|
|
85
86
|
"rollup-plugin-styles": "^4.0.0",
|
|
86
87
|
"rollup-plugin-terser": "^7.0.2",
|
|
87
88
|
"sass": "^1.55.0",
|
|
88
89
|
"tmp": "^0.2.1",
|
|
89
|
-
"typescript": "^4.8.4"
|
|
90
|
-
"unzipper": "^0.10.11"
|
|
90
|
+
"typescript": "^4.8.4"
|
|
91
91
|
}
|
|
92
92
|
}
|