innetjs 1.8.1 → 1.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/innet +115 -92
- package/index.es6.js +30 -7
- package/index.js +114 -91
- package/package.json +19 -19
- package/templates/be/README.md +1 -1
- package/templates/be/package.json +2 -2
- package/templates/be/src/controller/index.tsx +7 -0
- package/templates/be/src/declaration.d.ts +4 -0
- package/templates/be/src/index.tsx +2 -2
- package/templates/be/src/view/App/App.css +12 -0
- package/templates/be/src/view/App/App.tsx +15 -0
- package/templates/be/src/view/App/index.ts +1 -0
- package/templates/be/src/view/Page/Page.css +7 -0
- package/templates/be/src/view/Page/Page.tsx +24 -0
- package/templates/be/src/view/Page/index.ts +1 -0
- package/templates/be/src/view/index.ts +2 -0
- package/templates/be/tsconfig.json +0 -4
- package/templates/fe/package.json +1 -1
- package/templates/be/src/App.tsx +0 -7
package/bin/innet
CHANGED
|
@@ -75,15 +75,15 @@ const readline = require('readline');
|
|
|
75
75
|
const execAsync = util.promisify(exec);
|
|
76
76
|
require('dotenv').config();
|
|
77
77
|
function getFile(file) {
|
|
78
|
-
file = path__default[
|
|
79
|
-
if (!fs__default[
|
|
78
|
+
file = path__default["default"].resolve(file);
|
|
79
|
+
if (!fs__default["default"].existsSync(file)) {
|
|
80
80
|
throw Error('Cannot find the file: ' + file);
|
|
81
81
|
}
|
|
82
|
-
if (fs__default[
|
|
82
|
+
if (fs__default["default"].lstatSync(file).isDirectory()) {
|
|
83
83
|
let tmpFile = file;
|
|
84
|
-
if (!fs__default[
|
|
85
|
-
!fs__default[
|
|
86
|
-
!fs__default[
|
|
84
|
+
if (!fs__default["default"].existsSync(tmpFile = path__default["default"].join(file, 'index.ts')) &&
|
|
85
|
+
!fs__default["default"].existsSync(tmpFile = path__default["default"].join(file, 'index.tsx')) &&
|
|
86
|
+
!fs__default["default"].existsSync(tmpFile = path__default["default"].join(file, 'index.js'))) {
|
|
87
87
|
throw Error('Cannot find index file in: ' + file);
|
|
88
88
|
}
|
|
89
89
|
file = tmpFile;
|
|
@@ -91,17 +91,17 @@ function getFile(file) {
|
|
|
91
91
|
else if (!file.endsWith('.ts') && !file.endsWith('.tsx') && !file.endsWith('.js')) {
|
|
92
92
|
throw Error('File should has `.ts` or `.tsx` or `.js` extension: ' + file);
|
|
93
93
|
}
|
|
94
|
-
if (!fs__default[
|
|
94
|
+
if (!fs__default["default"].existsSync(file)) {
|
|
95
95
|
throw Error('Cannot find the file: ' + file);
|
|
96
96
|
}
|
|
97
97
|
return file;
|
|
98
98
|
}
|
|
99
99
|
class InnetJS {
|
|
100
|
-
constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || path__default[
|
|
101
|
-
this.projectFolder = path__default[
|
|
102
|
-
this.publicFolder = path__default[
|
|
103
|
-
this.buildFolder = path__default[
|
|
104
|
-
this.srcFolder = path__default[
|
|
100
|
+
constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || path__default["default"].join('public', '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' : false, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : false, 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 || '*', } = {}) {
|
|
101
|
+
this.projectFolder = path__default["default"].resolve(projectFolder);
|
|
102
|
+
this.publicFolder = path__default["default"].resolve(publicFolder);
|
|
103
|
+
this.buildFolder = path__default["default"].resolve(buildFolder);
|
|
104
|
+
this.srcFolder = path__default["default"].resolve(srcFolder);
|
|
105
105
|
this.sourcemap = sourcemap;
|
|
106
106
|
this.cssModules = cssModules;
|
|
107
107
|
this.cssInJs = cssInJs;
|
|
@@ -114,56 +114,58 @@ class InnetJS {
|
|
|
114
114
|
// Methods
|
|
115
115
|
init(appName, { template, force = false } = {}) {
|
|
116
116
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
-
const appPath = path__default[
|
|
117
|
+
const appPath = path__default["default"].resolve(appName);
|
|
118
118
|
if (!template) {
|
|
119
|
-
|
|
120
|
-
const { value } = yield selector__default[
|
|
119
|
+
logger__default["default"].log(chalk__default["default"].green(`Select one of those templates`));
|
|
120
|
+
const { value } = yield selector__default["default"]({
|
|
121
121
|
values: ['fe', 'be']
|
|
122
122
|
});
|
|
123
123
|
template = value;
|
|
124
|
-
readline.moveCursor(process.stdout, 0, -
|
|
124
|
+
readline.moveCursor(process.stdout, 0, -1);
|
|
125
|
+
logger__default["default"].log(`Selected ${value} template`);
|
|
125
126
|
}
|
|
126
127
|
if (!force) {
|
|
127
|
-
yield logger__default[
|
|
128
|
-
if (fs__default[
|
|
129
|
-
|
|
130
|
-
const { id: result } = yield selector__default[
|
|
128
|
+
yield logger__default["default"].start('Check if app folder is available', () => __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
if (fs__default["default"].existsSync(appPath)) {
|
|
130
|
+
logger__default["default"].log(chalk__default["default"].red(`'${appPath}' already exist, what do you want?`));
|
|
131
|
+
const { id: result, value } = yield selector__default["default"]({
|
|
131
132
|
values: ['Stop the process', 'Remove the folder', 'Merge with template']
|
|
132
133
|
});
|
|
133
|
-
readline.moveCursor(process.stdout, 0, -
|
|
134
|
+
readline.moveCursor(process.stdout, 0, -1);
|
|
135
|
+
logger__default["default"].log(`Already exist, selected: ${value}`);
|
|
134
136
|
if (!result) {
|
|
135
137
|
throw Error(`'${appPath}' already exist`);
|
|
136
138
|
}
|
|
137
139
|
if (result === 1) {
|
|
138
|
-
yield fs__default[
|
|
140
|
+
yield fs__default["default"].remove(appPath);
|
|
139
141
|
}
|
|
140
142
|
}
|
|
141
143
|
}));
|
|
142
144
|
}
|
|
143
|
-
const libPath = path__default[
|
|
144
|
-
const templatePath = path__default[
|
|
145
|
-
yield logger__default[
|
|
146
|
-
if (!fs__default[
|
|
145
|
+
const libPath = path__default["default"].resolve(__dirname, '..');
|
|
146
|
+
const templatePath = path__default["default"].resolve(libPath, 'templates', template);
|
|
147
|
+
yield logger__default["default"].start('Check if the template exists', () => __awaiter(this, void 0, void 0, function* () {
|
|
148
|
+
if (!fs__default["default"].existsSync(templatePath)) {
|
|
147
149
|
throw Error(`The template '${template}' is not exist`);
|
|
148
150
|
}
|
|
149
151
|
}));
|
|
150
|
-
yield logger__default[
|
|
151
|
-
yield logger__default[
|
|
152
|
+
yield logger__default["default"].start('Copy files', () => fs__default["default"].copy(templatePath, appPath));
|
|
153
|
+
yield logger__default["default"].start('Install packages', () => execAsync(`cd ${appPath} && npm i`));
|
|
152
154
|
});
|
|
153
155
|
}
|
|
154
156
|
build({ node = false } = {}) {
|
|
155
157
|
return __awaiter(this, void 0, void 0, function* () {
|
|
156
158
|
const indexExtension = yield this.getProjectExtension();
|
|
157
|
-
yield logger__default[
|
|
159
|
+
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.buildFolder));
|
|
158
160
|
const pkg = node && (yield this.getPackage());
|
|
159
161
|
const inputOptions = {
|
|
160
|
-
input: path__default[
|
|
162
|
+
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
161
163
|
plugins: [
|
|
162
|
-
commonjs__default[
|
|
164
|
+
commonjs__default["default"](),
|
|
163
165
|
pluginNodeResolve.nodeResolve(),
|
|
164
|
-
json__default[
|
|
165
|
-
typescript__default[
|
|
166
|
-
jsx__default[
|
|
166
|
+
json__default["default"](),
|
|
167
|
+
typescript__default["default"](),
|
|
168
|
+
jsx__default["default"](),
|
|
167
169
|
string({
|
|
168
170
|
include: '**/*.*',
|
|
169
171
|
exclude: [
|
|
@@ -185,10 +187,31 @@ class InnetJS {
|
|
|
185
187
|
if (node) {
|
|
186
188
|
inputOptions.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
187
189
|
outputOptions.format = 'cjs';
|
|
190
|
+
outputOptions.plugins.push(string({
|
|
191
|
+
include: '**/*.*',
|
|
192
|
+
exclude: [
|
|
193
|
+
'**/*.ts',
|
|
194
|
+
'**/*.tsx',
|
|
195
|
+
'**/*.js',
|
|
196
|
+
'**/*.jsx',
|
|
197
|
+
'**/*.json',
|
|
198
|
+
]
|
|
199
|
+
}));
|
|
188
200
|
}
|
|
189
201
|
else {
|
|
190
|
-
inputOptions.plugins.push(
|
|
191
|
-
|
|
202
|
+
inputOptions.plugins.push(string({
|
|
203
|
+
include: '**/*.*',
|
|
204
|
+
exclude: [
|
|
205
|
+
'**/*.ts',
|
|
206
|
+
'**/*.tsx',
|
|
207
|
+
'**/*.js',
|
|
208
|
+
'**/*.jsx',
|
|
209
|
+
'**/*.json',
|
|
210
|
+
'**/*.css',
|
|
211
|
+
'**/*.scss',
|
|
212
|
+
]
|
|
213
|
+
}), postcss__default["default"]({
|
|
214
|
+
plugins: [autoprefixer__default["default"]()],
|
|
192
215
|
extract: !this.cssInJs,
|
|
193
216
|
modules: this.cssModules,
|
|
194
217
|
sourceMap: this.sourcemap,
|
|
@@ -197,22 +220,22 @@ class InnetJS {
|
|
|
197
220
|
outputOptions.format = 'es';
|
|
198
221
|
outputOptions.plugins = [rollupPluginTerser.terser()];
|
|
199
222
|
}
|
|
200
|
-
yield logger__default[
|
|
201
|
-
const bundle = yield rollup__default[
|
|
223
|
+
yield logger__default["default"].start('Build production bundle', () => __awaiter(this, void 0, void 0, function* () {
|
|
224
|
+
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
202
225
|
yield bundle.write(outputOptions);
|
|
203
226
|
yield bundle.close();
|
|
204
227
|
}));
|
|
205
228
|
if (pkg) {
|
|
206
|
-
yield logger__default[
|
|
229
|
+
yield logger__default["default"].start('Copy package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
207
230
|
const data = Object.assign({}, pkg);
|
|
208
231
|
delete data.private;
|
|
209
232
|
delete data.devDependencies;
|
|
210
|
-
yield fs__default[
|
|
233
|
+
yield fs__default["default"].writeFile(path__default["default"].resolve(this.buildFolder, 'package.json'), JSON.stringify(data, undefined, 2), 'UTF-8');
|
|
211
234
|
}));
|
|
212
|
-
const pkgLockPath = path__default[
|
|
213
|
-
if (fs__default[
|
|
214
|
-
yield logger__default[
|
|
215
|
-
return fs__default[
|
|
235
|
+
const pkgLockPath = path__default["default"].resolve(this.projectFolder, 'package-lock.json');
|
|
236
|
+
if (fs__default["default"].existsSync(pkgLockPath)) {
|
|
237
|
+
yield logger__default["default"].start('Copy package-lock.json', () => {
|
|
238
|
+
return fs__default["default"].copy(pkgLockPath, path__default["default"].resolve(this.buildFolder, 'package-lock.json'));
|
|
216
239
|
});
|
|
217
240
|
}
|
|
218
241
|
}
|
|
@@ -222,31 +245,31 @@ class InnetJS {
|
|
|
222
245
|
return __awaiter(this, void 0, void 0, function* () {
|
|
223
246
|
const indexExtension = yield this.getProjectExtension();
|
|
224
247
|
const pkg = node && (yield this.getPackage());
|
|
225
|
-
yield logger__default[
|
|
248
|
+
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.buildFolder));
|
|
226
249
|
const options = {
|
|
227
|
-
input: path__default[
|
|
250
|
+
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
228
251
|
output: {
|
|
229
252
|
dir: this.buildFolder,
|
|
230
253
|
sourcemap: true
|
|
231
254
|
},
|
|
232
255
|
plugins: [
|
|
233
|
-
commonjs__default[
|
|
234
|
-
json__default[
|
|
235
|
-
typescript__default[
|
|
256
|
+
commonjs__default["default"](),
|
|
257
|
+
json__default["default"](),
|
|
258
|
+
typescript__default["default"]({
|
|
236
259
|
tsconfigOverride: {
|
|
237
260
|
compilerOptions: {
|
|
238
261
|
sourceMap: true
|
|
239
262
|
}
|
|
240
263
|
}
|
|
241
264
|
}),
|
|
242
|
-
jsx__default[
|
|
265
|
+
jsx__default["default"](),
|
|
243
266
|
],
|
|
244
267
|
};
|
|
245
268
|
if (node) {
|
|
246
269
|
options.output.format = 'cjs';
|
|
247
270
|
options.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
248
271
|
options.plugins.push(pluginNodeResolve.nodeResolve({
|
|
249
|
-
moduleDirectories: [path__default[
|
|
272
|
+
moduleDirectories: [path__default["default"].resolve(this.srcFolder, 'node_modules')]
|
|
250
273
|
}), string({
|
|
251
274
|
include: '**/*.*',
|
|
252
275
|
exclude: [
|
|
@@ -259,15 +282,15 @@ class InnetJS {
|
|
|
259
282
|
}), this.createServer(options.external));
|
|
260
283
|
}
|
|
261
284
|
else {
|
|
262
|
-
const key = path__default[
|
|
285
|
+
const key = path__default["default"].basename(this.sslKey) !== this.sslKey
|
|
263
286
|
? this.sslKey
|
|
264
|
-
: fs__default[
|
|
265
|
-
? fs__default[
|
|
287
|
+
: fs__default["default"].existsSync(this.sslKey)
|
|
288
|
+
? fs__default["default"].readFileSync(this.sslKey)
|
|
266
289
|
: undefined;
|
|
267
|
-
const cert = path__default[
|
|
290
|
+
const cert = path__default["default"].basename(this.sslCrt) !== this.sslCrt
|
|
268
291
|
? this.sslCrt
|
|
269
|
-
: fs__default[
|
|
270
|
-
? fs__default[
|
|
292
|
+
: fs__default["default"].existsSync(this.sslCrt)
|
|
293
|
+
? fs__default["default"].readFileSync(this.sslCrt)
|
|
271
294
|
: undefined;
|
|
272
295
|
options.output.format = 'es';
|
|
273
296
|
options.plugins.push(pluginNodeResolve.nodeResolve(), string({
|
|
@@ -281,32 +304,32 @@ class InnetJS {
|
|
|
281
304
|
'**/*.css',
|
|
282
305
|
'**/*.scss',
|
|
283
306
|
]
|
|
284
|
-
}), postcss__default[
|
|
285
|
-
plugins: [autoprefixer__default[
|
|
307
|
+
}), postcss__default["default"]({
|
|
308
|
+
plugins: [autoprefixer__default["default"]()],
|
|
286
309
|
modules: this.cssModules,
|
|
287
310
|
sourceMap: true,
|
|
288
311
|
extract: !this.cssInJs,
|
|
289
312
|
}), this.createClient(key, cert), livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
|
|
290
313
|
}
|
|
291
|
-
const watcher = rollup__default[
|
|
314
|
+
const watcher = rollup__default["default"].watch(options);
|
|
292
315
|
watcher.on('event', e => {
|
|
293
316
|
if (e.code == 'ERROR') {
|
|
294
|
-
logger__default[
|
|
317
|
+
logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
|
|
295
318
|
}
|
|
296
319
|
else if (e.code === 'BUNDLE_START') {
|
|
297
|
-
logger__default[
|
|
320
|
+
logger__default["default"].start('Bundling');
|
|
298
321
|
}
|
|
299
322
|
else if (e.code === 'BUNDLE_END') {
|
|
300
|
-
logger__default[
|
|
323
|
+
logger__default["default"].end('Bundling');
|
|
301
324
|
}
|
|
302
325
|
});
|
|
303
326
|
});
|
|
304
327
|
}
|
|
305
328
|
run(file) {
|
|
306
329
|
return __awaiter(this, void 0, void 0, function* () {
|
|
307
|
-
const input = yield logger__default[
|
|
330
|
+
const input = yield logger__default["default"].start('Check file', () => getFile(file));
|
|
308
331
|
const folder = yield new Promise((resolve, reject) => {
|
|
309
|
-
tmp__default[
|
|
332
|
+
tmp__default["default"].dir((err, folder) => {
|
|
310
333
|
if (err) {
|
|
311
334
|
reject(err);
|
|
312
335
|
}
|
|
@@ -316,14 +339,14 @@ class InnetJS {
|
|
|
316
339
|
});
|
|
317
340
|
});
|
|
318
341
|
const jsFilePath = `${folder}/index.js`;
|
|
319
|
-
yield logger__default[
|
|
342
|
+
yield logger__default["default"].start('Build bundle', () => __awaiter(this, void 0, void 0, function* () {
|
|
320
343
|
const inputOptions = {
|
|
321
344
|
input,
|
|
322
345
|
plugins: [
|
|
323
|
-
commonjs__default[
|
|
346
|
+
commonjs__default["default"](),
|
|
324
347
|
pluginNodeResolve.nodeResolve(),
|
|
325
|
-
json__default[
|
|
326
|
-
typescript__default[
|
|
348
|
+
json__default["default"](),
|
|
349
|
+
typescript__default["default"]({
|
|
327
350
|
tsconfigOverride: {
|
|
328
351
|
compilerOptions: {
|
|
329
352
|
sourceMap: true
|
|
@@ -337,11 +360,11 @@ class InnetJS {
|
|
|
337
360
|
file: jsFilePath,
|
|
338
361
|
sourcemap: true
|
|
339
362
|
};
|
|
340
|
-
const bundle = yield rollup__default[
|
|
363
|
+
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
341
364
|
yield bundle.write(outputOptions);
|
|
342
365
|
yield bundle.close();
|
|
343
366
|
}));
|
|
344
|
-
yield logger__default[
|
|
367
|
+
yield logger__default["default"].start('Running of the script', () => __awaiter(this, void 0, void 0, function* () {
|
|
345
368
|
spawn('node', ['-r', 'source-map-support/register', jsFilePath], { stdio: 'inherit' });
|
|
346
369
|
}));
|
|
347
370
|
});
|
|
@@ -352,22 +375,22 @@ class InnetJS {
|
|
|
352
375
|
if (this.projectExtension) {
|
|
353
376
|
return this.projectExtension;
|
|
354
377
|
}
|
|
355
|
-
yield logger__default[
|
|
356
|
-
if (!fs__default[
|
|
378
|
+
yield logger__default["default"].start('Check src', () => {
|
|
379
|
+
if (!fs__default["default"].existsSync(this.srcFolder)) {
|
|
357
380
|
throw Error('src folder is missing');
|
|
358
381
|
}
|
|
359
382
|
});
|
|
360
|
-
yield logger__default[
|
|
361
|
-
if (fs__default[
|
|
383
|
+
yield logger__default["default"].start('Detection of index file', () => {
|
|
384
|
+
if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.js'))) {
|
|
362
385
|
this.projectExtension = 'js';
|
|
363
386
|
}
|
|
364
|
-
else if (fs__default[
|
|
387
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.ts'))) {
|
|
365
388
|
this.projectExtension = 'ts';
|
|
366
389
|
}
|
|
367
|
-
else if (fs__default[
|
|
390
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.tsx'))) {
|
|
368
391
|
this.projectExtension = 'tsx';
|
|
369
392
|
}
|
|
370
|
-
else if (fs__default[
|
|
393
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.jsx'))) {
|
|
371
394
|
this.projectExtension = 'jsx';
|
|
372
395
|
}
|
|
373
396
|
else {
|
|
@@ -382,10 +405,10 @@ class InnetJS {
|
|
|
382
405
|
if (this.package) {
|
|
383
406
|
return this.package;
|
|
384
407
|
}
|
|
385
|
-
const packageFolder = path__default[
|
|
386
|
-
yield logger__default[
|
|
387
|
-
if (fs__default[
|
|
388
|
-
this.package = yield fs__default[
|
|
408
|
+
const packageFolder = path__default["default"].resolve(this.projectFolder, 'package.json');
|
|
409
|
+
yield logger__default["default"].start('Check package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
410
|
+
if (fs__default["default"].existsSync(packageFolder)) {
|
|
411
|
+
this.package = yield fs__default["default"].readJson(packageFolder);
|
|
389
412
|
}
|
|
390
413
|
}));
|
|
391
414
|
return this.package;
|
|
@@ -398,10 +421,10 @@ class InnetJS {
|
|
|
398
421
|
var _a;
|
|
399
422
|
if (!app) {
|
|
400
423
|
const httpsUsing = !!(cert && key);
|
|
401
|
-
app = express__default[
|
|
402
|
-
app.use(express__default[
|
|
424
|
+
app = express__default["default"]();
|
|
425
|
+
app.use(express__default["default"].static(this.publicFolder));
|
|
403
426
|
if ((_a = this.proxy) === null || _a === void 0 ? void 0 : _a.startsWith('http')) {
|
|
404
|
-
app.use(this.api, proxy__default[
|
|
427
|
+
app.use(this.api, proxy__default["default"](this.proxy, {
|
|
405
428
|
https: httpsUsing,
|
|
406
429
|
proxyReqPathResolver: req => req.originalUrl
|
|
407
430
|
}));
|
|
@@ -409,9 +432,9 @@ class InnetJS {
|
|
|
409
432
|
app.use(/^[^.]+$/, (req, res) => {
|
|
410
433
|
res.sendFile(this.publicFolder + '/index.html');
|
|
411
434
|
});
|
|
412
|
-
const server = httpsUsing ? https__default[
|
|
435
|
+
const server = httpsUsing ? https__default["default"].createServer({ key, cert }, app) : http__default["default"].createServer(app);
|
|
413
436
|
server.listen(this.port, () => {
|
|
414
|
-
console.log(`${chalk__default[
|
|
437
|
+
console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
|
|
415
438
|
});
|
|
416
439
|
}
|
|
417
440
|
}
|
|
@@ -422,18 +445,18 @@ class InnetJS {
|
|
|
422
445
|
return {
|
|
423
446
|
writeBundle: () => __awaiter(this, void 0, void 0, function* () {
|
|
424
447
|
app === null || app === void 0 ? void 0 : app.kill();
|
|
425
|
-
const filePath = path__default[
|
|
426
|
-
let data = yield fs__default[
|
|
448
|
+
const filePath = path__default["default"].resolve(this.buildFolder, 'index.js');
|
|
449
|
+
let data = yield fs__default["default"].readFile(filePath, 'UTF-8');
|
|
427
450
|
const regExp = new RegExp(`require\\('(${external.join('|')})'\\)`, 'g');
|
|
428
|
-
data = data.replace(regExp, `require('${path__default[
|
|
429
|
-
yield fs__default[
|
|
451
|
+
data = data.replace(regExp, `require('${path__default["default"].resolve(this.projectFolder, 'node_modules', '$1')}')`);
|
|
452
|
+
yield fs__default["default"].writeFile(filePath, data);
|
|
430
453
|
app = spawn('node', ['-r', 'source-map-support/register', filePath], { stdio: 'inherit' });
|
|
431
454
|
})
|
|
432
455
|
};
|
|
433
456
|
}
|
|
434
457
|
}
|
|
435
458
|
|
|
436
|
-
var version = "1.8.
|
|
459
|
+
var version = "1.8.4";
|
|
437
460
|
|
|
438
461
|
require('dotenv').config();
|
|
439
462
|
const innetJS = new InnetJS();
|
package/index.es6.js
CHANGED
|
@@ -92,21 +92,23 @@ class InnetJS {
|
|
|
92
92
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
93
|
const appPath = path.resolve(appName);
|
|
94
94
|
if (!template) {
|
|
95
|
-
|
|
95
|
+
logger.log(chalk.green(`Select one of those templates`));
|
|
96
96
|
const { value } = yield selector({
|
|
97
97
|
values: ['fe', 'be']
|
|
98
98
|
});
|
|
99
99
|
template = value;
|
|
100
|
-
readline.moveCursor(process.stdout, 0, -
|
|
100
|
+
readline.moveCursor(process.stdout, 0, -1);
|
|
101
|
+
logger.log(`Selected ${value} template`);
|
|
101
102
|
}
|
|
102
103
|
if (!force) {
|
|
103
104
|
yield logger.start('Check if app folder is available', () => __awaiter(this, void 0, void 0, function* () {
|
|
104
105
|
if (fs.existsSync(appPath)) {
|
|
105
|
-
|
|
106
|
-
const { id: result } = yield selector({
|
|
106
|
+
logger.log(chalk.red(`'${appPath}' already exist, what do you want?`));
|
|
107
|
+
const { id: result, value } = yield selector({
|
|
107
108
|
values: ['Stop the process', 'Remove the folder', 'Merge with template']
|
|
108
109
|
});
|
|
109
|
-
readline.moveCursor(process.stdout, 0, -
|
|
110
|
+
readline.moveCursor(process.stdout, 0, -1);
|
|
111
|
+
logger.log(`Already exist, selected: ${value}`);
|
|
110
112
|
if (!result) {
|
|
111
113
|
throw Error(`'${appPath}' already exist`);
|
|
112
114
|
}
|
|
@@ -161,9 +163,30 @@ class InnetJS {
|
|
|
161
163
|
if (node) {
|
|
162
164
|
inputOptions.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
163
165
|
outputOptions.format = 'cjs';
|
|
166
|
+
outputOptions.plugins.push(string({
|
|
167
|
+
include: '**/*.*',
|
|
168
|
+
exclude: [
|
|
169
|
+
'**/*.ts',
|
|
170
|
+
'**/*.tsx',
|
|
171
|
+
'**/*.js',
|
|
172
|
+
'**/*.jsx',
|
|
173
|
+
'**/*.json',
|
|
174
|
+
]
|
|
175
|
+
}));
|
|
164
176
|
}
|
|
165
177
|
else {
|
|
166
|
-
inputOptions.plugins.push(
|
|
178
|
+
inputOptions.plugins.push(string({
|
|
179
|
+
include: '**/*.*',
|
|
180
|
+
exclude: [
|
|
181
|
+
'**/*.ts',
|
|
182
|
+
'**/*.tsx',
|
|
183
|
+
'**/*.js',
|
|
184
|
+
'**/*.jsx',
|
|
185
|
+
'**/*.json',
|
|
186
|
+
'**/*.css',
|
|
187
|
+
'**/*.scss',
|
|
188
|
+
]
|
|
189
|
+
}), postcss({
|
|
167
190
|
plugins: [autoprefixer()],
|
|
168
191
|
extract: !this.cssInJs,
|
|
169
192
|
modules: this.cssModules,
|
|
@@ -409,4 +432,4 @@ class InnetJS {
|
|
|
409
432
|
}
|
|
410
433
|
}
|
|
411
434
|
|
|
412
|
-
export default
|
|
435
|
+
export { InnetJS as default };
|
package/index.js
CHANGED
|
@@ -73,15 +73,15 @@ const readline = require('readline');
|
|
|
73
73
|
const execAsync = util.promisify(exec);
|
|
74
74
|
require('dotenv').config();
|
|
75
75
|
function getFile(file) {
|
|
76
|
-
file = path__default[
|
|
77
|
-
if (!fs__default[
|
|
76
|
+
file = path__default["default"].resolve(file);
|
|
77
|
+
if (!fs__default["default"].existsSync(file)) {
|
|
78
78
|
throw Error('Cannot find the file: ' + file);
|
|
79
79
|
}
|
|
80
|
-
if (fs__default[
|
|
80
|
+
if (fs__default["default"].lstatSync(file).isDirectory()) {
|
|
81
81
|
let tmpFile = file;
|
|
82
|
-
if (!fs__default[
|
|
83
|
-
!fs__default[
|
|
84
|
-
!fs__default[
|
|
82
|
+
if (!fs__default["default"].existsSync(tmpFile = path__default["default"].join(file, 'index.ts')) &&
|
|
83
|
+
!fs__default["default"].existsSync(tmpFile = path__default["default"].join(file, 'index.tsx')) &&
|
|
84
|
+
!fs__default["default"].existsSync(tmpFile = path__default["default"].join(file, 'index.js'))) {
|
|
85
85
|
throw Error('Cannot find index file in: ' + file);
|
|
86
86
|
}
|
|
87
87
|
file = tmpFile;
|
|
@@ -89,17 +89,17 @@ function getFile(file) {
|
|
|
89
89
|
else if (!file.endsWith('.ts') && !file.endsWith('.tsx') && !file.endsWith('.js')) {
|
|
90
90
|
throw Error('File should has `.ts` or `.tsx` or `.js` extension: ' + file);
|
|
91
91
|
}
|
|
92
|
-
if (!fs__default[
|
|
92
|
+
if (!fs__default["default"].existsSync(file)) {
|
|
93
93
|
throw Error('Cannot find the file: ' + file);
|
|
94
94
|
}
|
|
95
95
|
return file;
|
|
96
96
|
}
|
|
97
97
|
class InnetJS {
|
|
98
|
-
constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || path__default[
|
|
99
|
-
this.projectFolder = path__default[
|
|
100
|
-
this.publicFolder = path__default[
|
|
101
|
-
this.buildFolder = path__default[
|
|
102
|
-
this.srcFolder = path__default[
|
|
98
|
+
constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || path__default["default"].join('public', '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' : false, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : false, 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 || '*', } = {}) {
|
|
99
|
+
this.projectFolder = path__default["default"].resolve(projectFolder);
|
|
100
|
+
this.publicFolder = path__default["default"].resolve(publicFolder);
|
|
101
|
+
this.buildFolder = path__default["default"].resolve(buildFolder);
|
|
102
|
+
this.srcFolder = path__default["default"].resolve(srcFolder);
|
|
103
103
|
this.sourcemap = sourcemap;
|
|
104
104
|
this.cssModules = cssModules;
|
|
105
105
|
this.cssInJs = cssInJs;
|
|
@@ -112,56 +112,58 @@ class InnetJS {
|
|
|
112
112
|
// Methods
|
|
113
113
|
init(appName, { template, force = false } = {}) {
|
|
114
114
|
return __awaiter(this, void 0, void 0, function* () {
|
|
115
|
-
const appPath = path__default[
|
|
115
|
+
const appPath = path__default["default"].resolve(appName);
|
|
116
116
|
if (!template) {
|
|
117
|
-
|
|
118
|
-
const { value } = yield selector__default[
|
|
117
|
+
logger__default["default"].log(chalk__default["default"].green(`Select one of those templates`));
|
|
118
|
+
const { value } = yield selector__default["default"]({
|
|
119
119
|
values: ['fe', 'be']
|
|
120
120
|
});
|
|
121
121
|
template = value;
|
|
122
|
-
readline.moveCursor(process.stdout, 0, -
|
|
122
|
+
readline.moveCursor(process.stdout, 0, -1);
|
|
123
|
+
logger__default["default"].log(`Selected ${value} template`);
|
|
123
124
|
}
|
|
124
125
|
if (!force) {
|
|
125
|
-
yield logger__default[
|
|
126
|
-
if (fs__default[
|
|
127
|
-
|
|
128
|
-
const { id: result } = yield selector__default[
|
|
126
|
+
yield logger__default["default"].start('Check if app folder is available', () => __awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
if (fs__default["default"].existsSync(appPath)) {
|
|
128
|
+
logger__default["default"].log(chalk__default["default"].red(`'${appPath}' already exist, what do you want?`));
|
|
129
|
+
const { id: result, value } = yield selector__default["default"]({
|
|
129
130
|
values: ['Stop the process', 'Remove the folder', 'Merge with template']
|
|
130
131
|
});
|
|
131
|
-
readline.moveCursor(process.stdout, 0, -
|
|
132
|
+
readline.moveCursor(process.stdout, 0, -1);
|
|
133
|
+
logger__default["default"].log(`Already exist, selected: ${value}`);
|
|
132
134
|
if (!result) {
|
|
133
135
|
throw Error(`'${appPath}' already exist`);
|
|
134
136
|
}
|
|
135
137
|
if (result === 1) {
|
|
136
|
-
yield fs__default[
|
|
138
|
+
yield fs__default["default"].remove(appPath);
|
|
137
139
|
}
|
|
138
140
|
}
|
|
139
141
|
}));
|
|
140
142
|
}
|
|
141
|
-
const libPath = path__default[
|
|
142
|
-
const templatePath = path__default[
|
|
143
|
-
yield logger__default[
|
|
144
|
-
if (!fs__default[
|
|
143
|
+
const libPath = path__default["default"].resolve(__dirname, '..');
|
|
144
|
+
const templatePath = path__default["default"].resolve(libPath, 'templates', template);
|
|
145
|
+
yield logger__default["default"].start('Check if the template exists', () => __awaiter(this, void 0, void 0, function* () {
|
|
146
|
+
if (!fs__default["default"].existsSync(templatePath)) {
|
|
145
147
|
throw Error(`The template '${template}' is not exist`);
|
|
146
148
|
}
|
|
147
149
|
}));
|
|
148
|
-
yield logger__default[
|
|
149
|
-
yield logger__default[
|
|
150
|
+
yield logger__default["default"].start('Copy files', () => fs__default["default"].copy(templatePath, appPath));
|
|
151
|
+
yield logger__default["default"].start('Install packages', () => execAsync(`cd ${appPath} && npm i`));
|
|
150
152
|
});
|
|
151
153
|
}
|
|
152
154
|
build({ node = false } = {}) {
|
|
153
155
|
return __awaiter(this, void 0, void 0, function* () {
|
|
154
156
|
const indexExtension = yield this.getProjectExtension();
|
|
155
|
-
yield logger__default[
|
|
157
|
+
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.buildFolder));
|
|
156
158
|
const pkg = node && (yield this.getPackage());
|
|
157
159
|
const inputOptions = {
|
|
158
|
-
input: path__default[
|
|
160
|
+
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
159
161
|
plugins: [
|
|
160
|
-
commonjs__default[
|
|
162
|
+
commonjs__default["default"](),
|
|
161
163
|
pluginNodeResolve.nodeResolve(),
|
|
162
|
-
json__default[
|
|
163
|
-
typescript__default[
|
|
164
|
-
jsx__default[
|
|
164
|
+
json__default["default"](),
|
|
165
|
+
typescript__default["default"](),
|
|
166
|
+
jsx__default["default"](),
|
|
165
167
|
string({
|
|
166
168
|
include: '**/*.*',
|
|
167
169
|
exclude: [
|
|
@@ -183,10 +185,31 @@ class InnetJS {
|
|
|
183
185
|
if (node) {
|
|
184
186
|
inputOptions.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
185
187
|
outputOptions.format = 'cjs';
|
|
188
|
+
outputOptions.plugins.push(string({
|
|
189
|
+
include: '**/*.*',
|
|
190
|
+
exclude: [
|
|
191
|
+
'**/*.ts',
|
|
192
|
+
'**/*.tsx',
|
|
193
|
+
'**/*.js',
|
|
194
|
+
'**/*.jsx',
|
|
195
|
+
'**/*.json',
|
|
196
|
+
]
|
|
197
|
+
}));
|
|
186
198
|
}
|
|
187
199
|
else {
|
|
188
|
-
inputOptions.plugins.push(
|
|
189
|
-
|
|
200
|
+
inputOptions.plugins.push(string({
|
|
201
|
+
include: '**/*.*',
|
|
202
|
+
exclude: [
|
|
203
|
+
'**/*.ts',
|
|
204
|
+
'**/*.tsx',
|
|
205
|
+
'**/*.js',
|
|
206
|
+
'**/*.jsx',
|
|
207
|
+
'**/*.json',
|
|
208
|
+
'**/*.css',
|
|
209
|
+
'**/*.scss',
|
|
210
|
+
]
|
|
211
|
+
}), postcss__default["default"]({
|
|
212
|
+
plugins: [autoprefixer__default["default"]()],
|
|
190
213
|
extract: !this.cssInJs,
|
|
191
214
|
modules: this.cssModules,
|
|
192
215
|
sourceMap: this.sourcemap,
|
|
@@ -195,22 +218,22 @@ class InnetJS {
|
|
|
195
218
|
outputOptions.format = 'es';
|
|
196
219
|
outputOptions.plugins = [rollupPluginTerser.terser()];
|
|
197
220
|
}
|
|
198
|
-
yield logger__default[
|
|
199
|
-
const bundle = yield rollup__default[
|
|
221
|
+
yield logger__default["default"].start('Build production bundle', () => __awaiter(this, void 0, void 0, function* () {
|
|
222
|
+
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
200
223
|
yield bundle.write(outputOptions);
|
|
201
224
|
yield bundle.close();
|
|
202
225
|
}));
|
|
203
226
|
if (pkg) {
|
|
204
|
-
yield logger__default[
|
|
227
|
+
yield logger__default["default"].start('Copy package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
205
228
|
const data = Object.assign({}, pkg);
|
|
206
229
|
delete data.private;
|
|
207
230
|
delete data.devDependencies;
|
|
208
|
-
yield fs__default[
|
|
231
|
+
yield fs__default["default"].writeFile(path__default["default"].resolve(this.buildFolder, 'package.json'), JSON.stringify(data, undefined, 2), 'UTF-8');
|
|
209
232
|
}));
|
|
210
|
-
const pkgLockPath = path__default[
|
|
211
|
-
if (fs__default[
|
|
212
|
-
yield logger__default[
|
|
213
|
-
return fs__default[
|
|
233
|
+
const pkgLockPath = path__default["default"].resolve(this.projectFolder, 'package-lock.json');
|
|
234
|
+
if (fs__default["default"].existsSync(pkgLockPath)) {
|
|
235
|
+
yield logger__default["default"].start('Copy package-lock.json', () => {
|
|
236
|
+
return fs__default["default"].copy(pkgLockPath, path__default["default"].resolve(this.buildFolder, 'package-lock.json'));
|
|
214
237
|
});
|
|
215
238
|
}
|
|
216
239
|
}
|
|
@@ -220,31 +243,31 @@ class InnetJS {
|
|
|
220
243
|
return __awaiter(this, void 0, void 0, function* () {
|
|
221
244
|
const indexExtension = yield this.getProjectExtension();
|
|
222
245
|
const pkg = node && (yield this.getPackage());
|
|
223
|
-
yield logger__default[
|
|
246
|
+
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.buildFolder));
|
|
224
247
|
const options = {
|
|
225
|
-
input: path__default[
|
|
248
|
+
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
226
249
|
output: {
|
|
227
250
|
dir: this.buildFolder,
|
|
228
251
|
sourcemap: true
|
|
229
252
|
},
|
|
230
253
|
plugins: [
|
|
231
|
-
commonjs__default[
|
|
232
|
-
json__default[
|
|
233
|
-
typescript__default[
|
|
254
|
+
commonjs__default["default"](),
|
|
255
|
+
json__default["default"](),
|
|
256
|
+
typescript__default["default"]({
|
|
234
257
|
tsconfigOverride: {
|
|
235
258
|
compilerOptions: {
|
|
236
259
|
sourceMap: true
|
|
237
260
|
}
|
|
238
261
|
}
|
|
239
262
|
}),
|
|
240
|
-
jsx__default[
|
|
263
|
+
jsx__default["default"](),
|
|
241
264
|
],
|
|
242
265
|
};
|
|
243
266
|
if (node) {
|
|
244
267
|
options.output.format = 'cjs';
|
|
245
268
|
options.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
246
269
|
options.plugins.push(pluginNodeResolve.nodeResolve({
|
|
247
|
-
moduleDirectories: [path__default[
|
|
270
|
+
moduleDirectories: [path__default["default"].resolve(this.srcFolder, 'node_modules')]
|
|
248
271
|
}), string({
|
|
249
272
|
include: '**/*.*',
|
|
250
273
|
exclude: [
|
|
@@ -257,15 +280,15 @@ class InnetJS {
|
|
|
257
280
|
}), this.createServer(options.external));
|
|
258
281
|
}
|
|
259
282
|
else {
|
|
260
|
-
const key = path__default[
|
|
283
|
+
const key = path__default["default"].basename(this.sslKey) !== this.sslKey
|
|
261
284
|
? this.sslKey
|
|
262
|
-
: fs__default[
|
|
263
|
-
? fs__default[
|
|
285
|
+
: fs__default["default"].existsSync(this.sslKey)
|
|
286
|
+
? fs__default["default"].readFileSync(this.sslKey)
|
|
264
287
|
: undefined;
|
|
265
|
-
const cert = path__default[
|
|
288
|
+
const cert = path__default["default"].basename(this.sslCrt) !== this.sslCrt
|
|
266
289
|
? this.sslCrt
|
|
267
|
-
: fs__default[
|
|
268
|
-
? fs__default[
|
|
290
|
+
: fs__default["default"].existsSync(this.sslCrt)
|
|
291
|
+
? fs__default["default"].readFileSync(this.sslCrt)
|
|
269
292
|
: undefined;
|
|
270
293
|
options.output.format = 'es';
|
|
271
294
|
options.plugins.push(pluginNodeResolve.nodeResolve(), string({
|
|
@@ -279,32 +302,32 @@ class InnetJS {
|
|
|
279
302
|
'**/*.css',
|
|
280
303
|
'**/*.scss',
|
|
281
304
|
]
|
|
282
|
-
}), postcss__default[
|
|
283
|
-
plugins: [autoprefixer__default[
|
|
305
|
+
}), postcss__default["default"]({
|
|
306
|
+
plugins: [autoprefixer__default["default"]()],
|
|
284
307
|
modules: this.cssModules,
|
|
285
308
|
sourceMap: true,
|
|
286
309
|
extract: !this.cssInJs,
|
|
287
310
|
}), this.createClient(key, cert), livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
|
|
288
311
|
}
|
|
289
|
-
const watcher = rollup__default[
|
|
312
|
+
const watcher = rollup__default["default"].watch(options);
|
|
290
313
|
watcher.on('event', e => {
|
|
291
314
|
if (e.code == 'ERROR') {
|
|
292
|
-
logger__default[
|
|
315
|
+
logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
|
|
293
316
|
}
|
|
294
317
|
else if (e.code === 'BUNDLE_START') {
|
|
295
|
-
logger__default[
|
|
318
|
+
logger__default["default"].start('Bundling');
|
|
296
319
|
}
|
|
297
320
|
else if (e.code === 'BUNDLE_END') {
|
|
298
|
-
logger__default[
|
|
321
|
+
logger__default["default"].end('Bundling');
|
|
299
322
|
}
|
|
300
323
|
});
|
|
301
324
|
});
|
|
302
325
|
}
|
|
303
326
|
run(file) {
|
|
304
327
|
return __awaiter(this, void 0, void 0, function* () {
|
|
305
|
-
const input = yield logger__default[
|
|
328
|
+
const input = yield logger__default["default"].start('Check file', () => getFile(file));
|
|
306
329
|
const folder = yield new Promise((resolve, reject) => {
|
|
307
|
-
tmp__default[
|
|
330
|
+
tmp__default["default"].dir((err, folder) => {
|
|
308
331
|
if (err) {
|
|
309
332
|
reject(err);
|
|
310
333
|
}
|
|
@@ -314,14 +337,14 @@ class InnetJS {
|
|
|
314
337
|
});
|
|
315
338
|
});
|
|
316
339
|
const jsFilePath = `${folder}/index.js`;
|
|
317
|
-
yield logger__default[
|
|
340
|
+
yield logger__default["default"].start('Build bundle', () => __awaiter(this, void 0, void 0, function* () {
|
|
318
341
|
const inputOptions = {
|
|
319
342
|
input,
|
|
320
343
|
plugins: [
|
|
321
|
-
commonjs__default[
|
|
344
|
+
commonjs__default["default"](),
|
|
322
345
|
pluginNodeResolve.nodeResolve(),
|
|
323
|
-
json__default[
|
|
324
|
-
typescript__default[
|
|
346
|
+
json__default["default"](),
|
|
347
|
+
typescript__default["default"]({
|
|
325
348
|
tsconfigOverride: {
|
|
326
349
|
compilerOptions: {
|
|
327
350
|
sourceMap: true
|
|
@@ -335,11 +358,11 @@ class InnetJS {
|
|
|
335
358
|
file: jsFilePath,
|
|
336
359
|
sourcemap: true
|
|
337
360
|
};
|
|
338
|
-
const bundle = yield rollup__default[
|
|
361
|
+
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
339
362
|
yield bundle.write(outputOptions);
|
|
340
363
|
yield bundle.close();
|
|
341
364
|
}));
|
|
342
|
-
yield logger__default[
|
|
365
|
+
yield logger__default["default"].start('Running of the script', () => __awaiter(this, void 0, void 0, function* () {
|
|
343
366
|
spawn('node', ['-r', 'source-map-support/register', jsFilePath], { stdio: 'inherit' });
|
|
344
367
|
}));
|
|
345
368
|
});
|
|
@@ -350,22 +373,22 @@ class InnetJS {
|
|
|
350
373
|
if (this.projectExtension) {
|
|
351
374
|
return this.projectExtension;
|
|
352
375
|
}
|
|
353
|
-
yield logger__default[
|
|
354
|
-
if (!fs__default[
|
|
376
|
+
yield logger__default["default"].start('Check src', () => {
|
|
377
|
+
if (!fs__default["default"].existsSync(this.srcFolder)) {
|
|
355
378
|
throw Error('src folder is missing');
|
|
356
379
|
}
|
|
357
380
|
});
|
|
358
|
-
yield logger__default[
|
|
359
|
-
if (fs__default[
|
|
381
|
+
yield logger__default["default"].start('Detection of index file', () => {
|
|
382
|
+
if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.js'))) {
|
|
360
383
|
this.projectExtension = 'js';
|
|
361
384
|
}
|
|
362
|
-
else if (fs__default[
|
|
385
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.ts'))) {
|
|
363
386
|
this.projectExtension = 'ts';
|
|
364
387
|
}
|
|
365
|
-
else if (fs__default[
|
|
388
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.tsx'))) {
|
|
366
389
|
this.projectExtension = 'tsx';
|
|
367
390
|
}
|
|
368
|
-
else if (fs__default[
|
|
391
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.jsx'))) {
|
|
369
392
|
this.projectExtension = 'jsx';
|
|
370
393
|
}
|
|
371
394
|
else {
|
|
@@ -380,10 +403,10 @@ class InnetJS {
|
|
|
380
403
|
if (this.package) {
|
|
381
404
|
return this.package;
|
|
382
405
|
}
|
|
383
|
-
const packageFolder = path__default[
|
|
384
|
-
yield logger__default[
|
|
385
|
-
if (fs__default[
|
|
386
|
-
this.package = yield fs__default[
|
|
406
|
+
const packageFolder = path__default["default"].resolve(this.projectFolder, 'package.json');
|
|
407
|
+
yield logger__default["default"].start('Check package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
408
|
+
if (fs__default["default"].existsSync(packageFolder)) {
|
|
409
|
+
this.package = yield fs__default["default"].readJson(packageFolder);
|
|
387
410
|
}
|
|
388
411
|
}));
|
|
389
412
|
return this.package;
|
|
@@ -396,10 +419,10 @@ class InnetJS {
|
|
|
396
419
|
var _a;
|
|
397
420
|
if (!app) {
|
|
398
421
|
const httpsUsing = !!(cert && key);
|
|
399
|
-
app = express__default[
|
|
400
|
-
app.use(express__default[
|
|
422
|
+
app = express__default["default"]();
|
|
423
|
+
app.use(express__default["default"].static(this.publicFolder));
|
|
401
424
|
if ((_a = this.proxy) === null || _a === void 0 ? void 0 : _a.startsWith('http')) {
|
|
402
|
-
app.use(this.api, proxy__default[
|
|
425
|
+
app.use(this.api, proxy__default["default"](this.proxy, {
|
|
403
426
|
https: httpsUsing,
|
|
404
427
|
proxyReqPathResolver: req => req.originalUrl
|
|
405
428
|
}));
|
|
@@ -407,9 +430,9 @@ class InnetJS {
|
|
|
407
430
|
app.use(/^[^.]+$/, (req, res) => {
|
|
408
431
|
res.sendFile(this.publicFolder + '/index.html');
|
|
409
432
|
});
|
|
410
|
-
const server = httpsUsing ? https__default[
|
|
433
|
+
const server = httpsUsing ? https__default["default"].createServer({ key, cert }, app) : http__default["default"].createServer(app);
|
|
411
434
|
server.listen(this.port, () => {
|
|
412
|
-
console.log(`${chalk__default[
|
|
435
|
+
console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
|
|
413
436
|
});
|
|
414
437
|
}
|
|
415
438
|
}
|
|
@@ -420,11 +443,11 @@ class InnetJS {
|
|
|
420
443
|
return {
|
|
421
444
|
writeBundle: () => __awaiter(this, void 0, void 0, function* () {
|
|
422
445
|
app === null || app === void 0 ? void 0 : app.kill();
|
|
423
|
-
const filePath = path__default[
|
|
424
|
-
let data = yield fs__default[
|
|
446
|
+
const filePath = path__default["default"].resolve(this.buildFolder, 'index.js');
|
|
447
|
+
let data = yield fs__default["default"].readFile(filePath, 'UTF-8');
|
|
425
448
|
const regExp = new RegExp(`require\\('(${external.join('|')})'\\)`, 'g');
|
|
426
|
-
data = data.replace(regExp, `require('${path__default[
|
|
427
|
-
yield fs__default[
|
|
449
|
+
data = data.replace(regExp, `require('${path__default["default"].resolve(this.projectFolder, 'node_modules', '$1')}')`);
|
|
450
|
+
yield fs__default["default"].writeFile(filePath, data);
|
|
428
451
|
app = spawn('node', ['-r', 'source-map-support/register', filePath], { stdio: 'inherit' });
|
|
429
452
|
})
|
|
430
453
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "innetjs",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.4",
|
|
4
4
|
"description": "CLI for innet boilerplate",
|
|
5
5
|
"homepage": "https://github.com/d8corp/innetjs",
|
|
6
6
|
"author": "Mikhail Lysikov <d8corp@mail.ru>",
|
|
@@ -31,28 +31,28 @@
|
|
|
31
31
|
"url": "https://github.com/d8corp/innetjs/issues"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@cantinc/logger": "^1.0
|
|
35
|
-
"@rollup/plugin-commonjs": "^
|
|
34
|
+
"@cantinc/logger": "^1.1.0",
|
|
35
|
+
"@rollup/plugin-commonjs": "^21.0.2",
|
|
36
36
|
"@rollup/plugin-json": "^4.1.0",
|
|
37
|
-
"@rollup/plugin-node-resolve": "^
|
|
38
|
-
"autoprefixer": "^10.
|
|
39
|
-
"chalk": "^4.1.
|
|
37
|
+
"@rollup/plugin-node-resolve": "^13.1.3",
|
|
38
|
+
"autoprefixer": "^10.4.2",
|
|
39
|
+
"chalk": "^4.1.2",
|
|
40
40
|
"cli-select": "^1.1.2",
|
|
41
|
-
"commander": "^
|
|
42
|
-
"dotenv": "^
|
|
43
|
-
"express": "^4.17.
|
|
44
|
-
"express-http-proxy": "^1.6.
|
|
45
|
-
"fs-extra": "^
|
|
46
|
-
"node-sass": "^
|
|
47
|
-
"postcss": "^8.
|
|
48
|
-
"rollup": "^2.
|
|
49
|
-
"rollup-plugin-innet-jsx": "^1.1.
|
|
50
|
-
"rollup-plugin-livereload": "^2.0.
|
|
51
|
-
"rollup-plugin-postcss": "^4.0.
|
|
41
|
+
"commander": "^9.0.0",
|
|
42
|
+
"dotenv": "^16.0.0",
|
|
43
|
+
"express": "^4.17.3",
|
|
44
|
+
"express-http-proxy": "^1.6.3",
|
|
45
|
+
"fs-extra": "^10.0.1",
|
|
46
|
+
"node-sass": "^7.0.1",
|
|
47
|
+
"postcss": "^8.4.7",
|
|
48
|
+
"rollup": "^2.68.0",
|
|
49
|
+
"rollup-plugin-innet-jsx": "^1.1.3",
|
|
50
|
+
"rollup-plugin-livereload": "^2.0.5",
|
|
51
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
52
52
|
"rollup-plugin-string": "^3.0.0",
|
|
53
53
|
"rollup-plugin-terser": "^7.0.2",
|
|
54
|
-
"rollup-plugin-typescript2": "^0.
|
|
54
|
+
"rollup-plugin-typescript2": "^0.31.2",
|
|
55
55
|
"tmp": "^0.2.1",
|
|
56
|
-
"typescript": "^4.
|
|
56
|
+
"typescript": "^4.6.2"
|
|
57
57
|
}
|
|
58
58
|
}
|
package/templates/be/README.md
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './App'
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Page'
|