innetjs 1.8.0 → 1.8.3
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 +96 -94
- package/index.es6.js +10 -8
- package/index.js +94 -92
- package/package.json +20 -20
- 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
|
-
});
|
|
150
|
-
yield logger__default[
|
|
151
|
-
yield logger__default[
|
|
151
|
+
}));
|
|
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: [
|
|
@@ -187,8 +189,8 @@ class InnetJS {
|
|
|
187
189
|
outputOptions.format = 'cjs';
|
|
188
190
|
}
|
|
189
191
|
else {
|
|
190
|
-
inputOptions.plugins.push(postcss__default[
|
|
191
|
-
plugins: [autoprefixer__default[
|
|
192
|
+
inputOptions.plugins.push(postcss__default["default"]({
|
|
193
|
+
plugins: [autoprefixer__default["default"]()],
|
|
192
194
|
extract: !this.cssInJs,
|
|
193
195
|
modules: this.cssModules,
|
|
194
196
|
sourceMap: this.sourcemap,
|
|
@@ -197,22 +199,22 @@ class InnetJS {
|
|
|
197
199
|
outputOptions.format = 'es';
|
|
198
200
|
outputOptions.plugins = [rollupPluginTerser.terser()];
|
|
199
201
|
}
|
|
200
|
-
yield logger__default[
|
|
201
|
-
const bundle = yield rollup__default[
|
|
202
|
+
yield logger__default["default"].start('Build production bundle', () => __awaiter(this, void 0, void 0, function* () {
|
|
203
|
+
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
202
204
|
yield bundle.write(outputOptions);
|
|
203
205
|
yield bundle.close();
|
|
204
206
|
}));
|
|
205
207
|
if (pkg) {
|
|
206
|
-
yield logger__default[
|
|
208
|
+
yield logger__default["default"].start('Copy package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
207
209
|
const data = Object.assign({}, pkg);
|
|
208
210
|
delete data.private;
|
|
209
211
|
delete data.devDependencies;
|
|
210
|
-
yield fs__default[
|
|
212
|
+
yield fs__default["default"].writeFile(path__default["default"].resolve(this.buildFolder, 'package.json'), JSON.stringify(data, undefined, 2), 'UTF-8');
|
|
211
213
|
}));
|
|
212
|
-
const pkgLockPath = path__default[
|
|
213
|
-
if (fs__default[
|
|
214
|
-
yield logger__default[
|
|
215
|
-
return fs__default[
|
|
214
|
+
const pkgLockPath = path__default["default"].resolve(this.projectFolder, 'package-lock.json');
|
|
215
|
+
if (fs__default["default"].existsSync(pkgLockPath)) {
|
|
216
|
+
yield logger__default["default"].start('Copy package-lock.json', () => {
|
|
217
|
+
return fs__default["default"].copy(pkgLockPath, path__default["default"].resolve(this.buildFolder, 'package-lock.json'));
|
|
216
218
|
});
|
|
217
219
|
}
|
|
218
220
|
}
|
|
@@ -222,31 +224,31 @@ class InnetJS {
|
|
|
222
224
|
return __awaiter(this, void 0, void 0, function* () {
|
|
223
225
|
const indexExtension = yield this.getProjectExtension();
|
|
224
226
|
const pkg = node && (yield this.getPackage());
|
|
225
|
-
yield logger__default[
|
|
227
|
+
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.buildFolder));
|
|
226
228
|
const options = {
|
|
227
|
-
input: path__default[
|
|
229
|
+
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
228
230
|
output: {
|
|
229
231
|
dir: this.buildFolder,
|
|
230
232
|
sourcemap: true
|
|
231
233
|
},
|
|
232
234
|
plugins: [
|
|
233
|
-
commonjs__default[
|
|
234
|
-
json__default[
|
|
235
|
-
typescript__default[
|
|
235
|
+
commonjs__default["default"](),
|
|
236
|
+
json__default["default"](),
|
|
237
|
+
typescript__default["default"]({
|
|
236
238
|
tsconfigOverride: {
|
|
237
239
|
compilerOptions: {
|
|
238
240
|
sourceMap: true
|
|
239
241
|
}
|
|
240
242
|
}
|
|
241
243
|
}),
|
|
242
|
-
jsx__default[
|
|
244
|
+
jsx__default["default"](),
|
|
243
245
|
],
|
|
244
246
|
};
|
|
245
247
|
if (node) {
|
|
246
248
|
options.output.format = 'cjs';
|
|
247
249
|
options.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
248
250
|
options.plugins.push(pluginNodeResolve.nodeResolve({
|
|
249
|
-
moduleDirectories: [path__default[
|
|
251
|
+
moduleDirectories: [path__default["default"].resolve(this.srcFolder, 'node_modules')]
|
|
250
252
|
}), string({
|
|
251
253
|
include: '**/*.*',
|
|
252
254
|
exclude: [
|
|
@@ -259,15 +261,15 @@ class InnetJS {
|
|
|
259
261
|
}), this.createServer(options.external));
|
|
260
262
|
}
|
|
261
263
|
else {
|
|
262
|
-
const key = path__default[
|
|
264
|
+
const key = path__default["default"].basename(this.sslKey) !== this.sslKey
|
|
263
265
|
? this.sslKey
|
|
264
|
-
: fs__default[
|
|
265
|
-
? fs__default[
|
|
266
|
+
: fs__default["default"].existsSync(this.sslKey)
|
|
267
|
+
? fs__default["default"].readFileSync(this.sslKey)
|
|
266
268
|
: undefined;
|
|
267
|
-
const cert = path__default[
|
|
269
|
+
const cert = path__default["default"].basename(this.sslCrt) !== this.sslCrt
|
|
268
270
|
? this.sslCrt
|
|
269
|
-
: fs__default[
|
|
270
|
-
? fs__default[
|
|
271
|
+
: fs__default["default"].existsSync(this.sslCrt)
|
|
272
|
+
? fs__default["default"].readFileSync(this.sslCrt)
|
|
271
273
|
: undefined;
|
|
272
274
|
options.output.format = 'es';
|
|
273
275
|
options.plugins.push(pluginNodeResolve.nodeResolve(), string({
|
|
@@ -281,32 +283,32 @@ class InnetJS {
|
|
|
281
283
|
'**/*.css',
|
|
282
284
|
'**/*.scss',
|
|
283
285
|
]
|
|
284
|
-
}), postcss__default[
|
|
285
|
-
plugins: [autoprefixer__default[
|
|
286
|
+
}), postcss__default["default"]({
|
|
287
|
+
plugins: [autoprefixer__default["default"]()],
|
|
286
288
|
modules: this.cssModules,
|
|
287
289
|
sourceMap: true,
|
|
288
290
|
extract: !this.cssInJs,
|
|
289
291
|
}), this.createClient(key, cert), livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
|
|
290
292
|
}
|
|
291
|
-
const watcher = rollup__default[
|
|
293
|
+
const watcher = rollup__default["default"].watch(options);
|
|
292
294
|
watcher.on('event', e => {
|
|
293
295
|
if (e.code == 'ERROR') {
|
|
294
|
-
logger__default[
|
|
296
|
+
logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
|
|
295
297
|
}
|
|
296
298
|
else if (e.code === 'BUNDLE_START') {
|
|
297
|
-
logger__default[
|
|
299
|
+
logger__default["default"].start('Bundling');
|
|
298
300
|
}
|
|
299
301
|
else if (e.code === 'BUNDLE_END') {
|
|
300
|
-
logger__default[
|
|
302
|
+
logger__default["default"].end('Bundling');
|
|
301
303
|
}
|
|
302
304
|
});
|
|
303
305
|
});
|
|
304
306
|
}
|
|
305
307
|
run(file) {
|
|
306
308
|
return __awaiter(this, void 0, void 0, function* () {
|
|
307
|
-
const input = yield logger__default[
|
|
309
|
+
const input = yield logger__default["default"].start('Check file', () => getFile(file));
|
|
308
310
|
const folder = yield new Promise((resolve, reject) => {
|
|
309
|
-
tmp__default[
|
|
311
|
+
tmp__default["default"].dir((err, folder) => {
|
|
310
312
|
if (err) {
|
|
311
313
|
reject(err);
|
|
312
314
|
}
|
|
@@ -316,14 +318,14 @@ class InnetJS {
|
|
|
316
318
|
});
|
|
317
319
|
});
|
|
318
320
|
const jsFilePath = `${folder}/index.js`;
|
|
319
|
-
yield logger__default[
|
|
321
|
+
yield logger__default["default"].start('Build bundle', () => __awaiter(this, void 0, void 0, function* () {
|
|
320
322
|
const inputOptions = {
|
|
321
323
|
input,
|
|
322
324
|
plugins: [
|
|
323
|
-
commonjs__default[
|
|
325
|
+
commonjs__default["default"](),
|
|
324
326
|
pluginNodeResolve.nodeResolve(),
|
|
325
|
-
json__default[
|
|
326
|
-
typescript__default[
|
|
327
|
+
json__default["default"](),
|
|
328
|
+
typescript__default["default"]({
|
|
327
329
|
tsconfigOverride: {
|
|
328
330
|
compilerOptions: {
|
|
329
331
|
sourceMap: true
|
|
@@ -337,11 +339,11 @@ class InnetJS {
|
|
|
337
339
|
file: jsFilePath,
|
|
338
340
|
sourcemap: true
|
|
339
341
|
};
|
|
340
|
-
const bundle = yield rollup__default[
|
|
342
|
+
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
341
343
|
yield bundle.write(outputOptions);
|
|
342
344
|
yield bundle.close();
|
|
343
345
|
}));
|
|
344
|
-
yield logger__default[
|
|
346
|
+
yield logger__default["default"].start('Running of the script', () => __awaiter(this, void 0, void 0, function* () {
|
|
345
347
|
spawn('node', ['-r', 'source-map-support/register', jsFilePath], { stdio: 'inherit' });
|
|
346
348
|
}));
|
|
347
349
|
});
|
|
@@ -352,22 +354,22 @@ class InnetJS {
|
|
|
352
354
|
if (this.projectExtension) {
|
|
353
355
|
return this.projectExtension;
|
|
354
356
|
}
|
|
355
|
-
yield logger__default[
|
|
356
|
-
if (!fs__default[
|
|
357
|
+
yield logger__default["default"].start('Check src', () => {
|
|
358
|
+
if (!fs__default["default"].existsSync(this.srcFolder)) {
|
|
357
359
|
throw Error('src folder is missing');
|
|
358
360
|
}
|
|
359
361
|
});
|
|
360
|
-
yield logger__default[
|
|
361
|
-
if (fs__default[
|
|
362
|
+
yield logger__default["default"].start('Detection of index file', () => {
|
|
363
|
+
if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.js'))) {
|
|
362
364
|
this.projectExtension = 'js';
|
|
363
365
|
}
|
|
364
|
-
else if (fs__default[
|
|
366
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.ts'))) {
|
|
365
367
|
this.projectExtension = 'ts';
|
|
366
368
|
}
|
|
367
|
-
else if (fs__default[
|
|
369
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.tsx'))) {
|
|
368
370
|
this.projectExtension = 'tsx';
|
|
369
371
|
}
|
|
370
|
-
else if (fs__default[
|
|
372
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.jsx'))) {
|
|
371
373
|
this.projectExtension = 'jsx';
|
|
372
374
|
}
|
|
373
375
|
else {
|
|
@@ -382,10 +384,10 @@ class InnetJS {
|
|
|
382
384
|
if (this.package) {
|
|
383
385
|
return this.package;
|
|
384
386
|
}
|
|
385
|
-
const packageFolder = path__default[
|
|
386
|
-
yield logger__default[
|
|
387
|
-
if (fs__default[
|
|
388
|
-
this.package = yield fs__default[
|
|
387
|
+
const packageFolder = path__default["default"].resolve(this.projectFolder, 'package.json');
|
|
388
|
+
yield logger__default["default"].start('Check package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
389
|
+
if (fs__default["default"].existsSync(packageFolder)) {
|
|
390
|
+
this.package = yield fs__default["default"].readJson(packageFolder);
|
|
389
391
|
}
|
|
390
392
|
}));
|
|
391
393
|
return this.package;
|
|
@@ -398,10 +400,10 @@ class InnetJS {
|
|
|
398
400
|
var _a;
|
|
399
401
|
if (!app) {
|
|
400
402
|
const httpsUsing = !!(cert && key);
|
|
401
|
-
app = express__default[
|
|
402
|
-
app.use(express__default[
|
|
403
|
+
app = express__default["default"]();
|
|
404
|
+
app.use(express__default["default"].static(this.publicFolder));
|
|
403
405
|
if ((_a = this.proxy) === null || _a === void 0 ? void 0 : _a.startsWith('http')) {
|
|
404
|
-
app.use(this.api, proxy__default[
|
|
406
|
+
app.use(this.api, proxy__default["default"](this.proxy, {
|
|
405
407
|
https: httpsUsing,
|
|
406
408
|
proxyReqPathResolver: req => req.originalUrl
|
|
407
409
|
}));
|
|
@@ -409,9 +411,9 @@ class InnetJS {
|
|
|
409
411
|
app.use(/^[^.]+$/, (req, res) => {
|
|
410
412
|
res.sendFile(this.publicFolder + '/index.html');
|
|
411
413
|
});
|
|
412
|
-
const server = httpsUsing ? https__default[
|
|
414
|
+
const server = httpsUsing ? https__default["default"].createServer({ key, cert }, app) : http__default["default"].createServer(app);
|
|
413
415
|
server.listen(this.port, () => {
|
|
414
|
-
console.log(`${chalk__default[
|
|
416
|
+
console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
|
|
415
417
|
});
|
|
416
418
|
}
|
|
417
419
|
}
|
|
@@ -422,18 +424,18 @@ class InnetJS {
|
|
|
422
424
|
return {
|
|
423
425
|
writeBundle: () => __awaiter(this, void 0, void 0, function* () {
|
|
424
426
|
app === null || app === void 0 ? void 0 : app.kill();
|
|
425
|
-
const filePath = path__default[
|
|
426
|
-
let data = yield fs__default[
|
|
427
|
+
const filePath = path__default["default"].resolve(this.buildFolder, 'index.js');
|
|
428
|
+
let data = yield fs__default["default"].readFile(filePath, 'UTF-8');
|
|
427
429
|
const regExp = new RegExp(`require\\('(${external.join('|')})'\\)`, 'g');
|
|
428
|
-
data = data.replace(regExp, `require('${path__default[
|
|
429
|
-
yield fs__default[
|
|
430
|
+
data = data.replace(regExp, `require('${path__default["default"].resolve(this.projectFolder, 'node_modules', '$1')}')`);
|
|
431
|
+
yield fs__default["default"].writeFile(filePath, data);
|
|
430
432
|
app = spawn('node', ['-r', 'source-map-support/register', filePath], { stdio: 'inherit' });
|
|
431
433
|
})
|
|
432
434
|
};
|
|
433
435
|
}
|
|
434
436
|
}
|
|
435
437
|
|
|
436
|
-
var version = "1.8.
|
|
438
|
+
var version = "1.8.3";
|
|
437
439
|
|
|
438
440
|
require('dotenv').config();
|
|
439
441
|
const innetJS = new InnetJS();
|
|
@@ -443,7 +445,7 @@ commander.program
|
|
|
443
445
|
.command('init <app-name>')
|
|
444
446
|
.description('Create innet boilerplate')
|
|
445
447
|
.option('-e, --error', 'Show error details')
|
|
446
|
-
.option('-t, --template', 'Select template')
|
|
448
|
+
.option('-t, --template <template>', 'Select template fe or be')
|
|
447
449
|
.action((appName, { error, template }) => {
|
|
448
450
|
innetJS.init(appName, { template }).catch(e => {
|
|
449
451
|
if (error) {
|
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
|
}
|
|
@@ -118,11 +120,11 @@ class InnetJS {
|
|
|
118
120
|
}
|
|
119
121
|
const libPath = path.resolve(__dirname, '..');
|
|
120
122
|
const templatePath = path.resolve(libPath, 'templates', template);
|
|
121
|
-
yield logger.start('Check if the template exists', () => {
|
|
123
|
+
yield logger.start('Check if the template exists', () => __awaiter(this, void 0, void 0, function* () {
|
|
122
124
|
if (!fs.existsSync(templatePath)) {
|
|
123
125
|
throw Error(`The template '${template}' is not exist`);
|
|
124
126
|
}
|
|
125
|
-
});
|
|
127
|
+
}));
|
|
126
128
|
yield logger.start('Copy files', () => fs.copy(templatePath, appPath));
|
|
127
129
|
yield logger.start('Install packages', () => execAsync(`cd ${appPath} && npm i`));
|
|
128
130
|
});
|
|
@@ -409,4 +411,4 @@ class InnetJS {
|
|
|
409
411
|
}
|
|
410
412
|
}
|
|
411
413
|
|
|
412
|
-
export default
|
|
414
|
+
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
|
-
});
|
|
148
|
-
yield logger__default[
|
|
149
|
-
yield logger__default[
|
|
149
|
+
}));
|
|
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: [
|
|
@@ -185,8 +187,8 @@ class InnetJS {
|
|
|
185
187
|
outputOptions.format = 'cjs';
|
|
186
188
|
}
|
|
187
189
|
else {
|
|
188
|
-
inputOptions.plugins.push(postcss__default[
|
|
189
|
-
plugins: [autoprefixer__default[
|
|
190
|
+
inputOptions.plugins.push(postcss__default["default"]({
|
|
191
|
+
plugins: [autoprefixer__default["default"]()],
|
|
190
192
|
extract: !this.cssInJs,
|
|
191
193
|
modules: this.cssModules,
|
|
192
194
|
sourceMap: this.sourcemap,
|
|
@@ -195,22 +197,22 @@ class InnetJS {
|
|
|
195
197
|
outputOptions.format = 'es';
|
|
196
198
|
outputOptions.plugins = [rollupPluginTerser.terser()];
|
|
197
199
|
}
|
|
198
|
-
yield logger__default[
|
|
199
|
-
const bundle = yield rollup__default[
|
|
200
|
+
yield logger__default["default"].start('Build production bundle', () => __awaiter(this, void 0, void 0, function* () {
|
|
201
|
+
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
200
202
|
yield bundle.write(outputOptions);
|
|
201
203
|
yield bundle.close();
|
|
202
204
|
}));
|
|
203
205
|
if (pkg) {
|
|
204
|
-
yield logger__default[
|
|
206
|
+
yield logger__default["default"].start('Copy package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
205
207
|
const data = Object.assign({}, pkg);
|
|
206
208
|
delete data.private;
|
|
207
209
|
delete data.devDependencies;
|
|
208
|
-
yield fs__default[
|
|
210
|
+
yield fs__default["default"].writeFile(path__default["default"].resolve(this.buildFolder, 'package.json'), JSON.stringify(data, undefined, 2), 'UTF-8');
|
|
209
211
|
}));
|
|
210
|
-
const pkgLockPath = path__default[
|
|
211
|
-
if (fs__default[
|
|
212
|
-
yield logger__default[
|
|
213
|
-
return fs__default[
|
|
212
|
+
const pkgLockPath = path__default["default"].resolve(this.projectFolder, 'package-lock.json');
|
|
213
|
+
if (fs__default["default"].existsSync(pkgLockPath)) {
|
|
214
|
+
yield logger__default["default"].start('Copy package-lock.json', () => {
|
|
215
|
+
return fs__default["default"].copy(pkgLockPath, path__default["default"].resolve(this.buildFolder, 'package-lock.json'));
|
|
214
216
|
});
|
|
215
217
|
}
|
|
216
218
|
}
|
|
@@ -220,31 +222,31 @@ class InnetJS {
|
|
|
220
222
|
return __awaiter(this, void 0, void 0, function* () {
|
|
221
223
|
const indexExtension = yield this.getProjectExtension();
|
|
222
224
|
const pkg = node && (yield this.getPackage());
|
|
223
|
-
yield logger__default[
|
|
225
|
+
yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.buildFolder));
|
|
224
226
|
const options = {
|
|
225
|
-
input: path__default[
|
|
227
|
+
input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
|
|
226
228
|
output: {
|
|
227
229
|
dir: this.buildFolder,
|
|
228
230
|
sourcemap: true
|
|
229
231
|
},
|
|
230
232
|
plugins: [
|
|
231
|
-
commonjs__default[
|
|
232
|
-
json__default[
|
|
233
|
-
typescript__default[
|
|
233
|
+
commonjs__default["default"](),
|
|
234
|
+
json__default["default"](),
|
|
235
|
+
typescript__default["default"]({
|
|
234
236
|
tsconfigOverride: {
|
|
235
237
|
compilerOptions: {
|
|
236
238
|
sourceMap: true
|
|
237
239
|
}
|
|
238
240
|
}
|
|
239
241
|
}),
|
|
240
|
-
jsx__default[
|
|
242
|
+
jsx__default["default"](),
|
|
241
243
|
],
|
|
242
244
|
};
|
|
243
245
|
if (node) {
|
|
244
246
|
options.output.format = 'cjs';
|
|
245
247
|
options.external = Object.keys((pkg === null || pkg === void 0 ? void 0 : pkg.dependencies) || {});
|
|
246
248
|
options.plugins.push(pluginNodeResolve.nodeResolve({
|
|
247
|
-
moduleDirectories: [path__default[
|
|
249
|
+
moduleDirectories: [path__default["default"].resolve(this.srcFolder, 'node_modules')]
|
|
248
250
|
}), string({
|
|
249
251
|
include: '**/*.*',
|
|
250
252
|
exclude: [
|
|
@@ -257,15 +259,15 @@ class InnetJS {
|
|
|
257
259
|
}), this.createServer(options.external));
|
|
258
260
|
}
|
|
259
261
|
else {
|
|
260
|
-
const key = path__default[
|
|
262
|
+
const key = path__default["default"].basename(this.sslKey) !== this.sslKey
|
|
261
263
|
? this.sslKey
|
|
262
|
-
: fs__default[
|
|
263
|
-
? fs__default[
|
|
264
|
+
: fs__default["default"].existsSync(this.sslKey)
|
|
265
|
+
? fs__default["default"].readFileSync(this.sslKey)
|
|
264
266
|
: undefined;
|
|
265
|
-
const cert = path__default[
|
|
267
|
+
const cert = path__default["default"].basename(this.sslCrt) !== this.sslCrt
|
|
266
268
|
? this.sslCrt
|
|
267
|
-
: fs__default[
|
|
268
|
-
? fs__default[
|
|
269
|
+
: fs__default["default"].existsSync(this.sslCrt)
|
|
270
|
+
? fs__default["default"].readFileSync(this.sslCrt)
|
|
269
271
|
: undefined;
|
|
270
272
|
options.output.format = 'es';
|
|
271
273
|
options.plugins.push(pluginNodeResolve.nodeResolve(), string({
|
|
@@ -279,32 +281,32 @@ class InnetJS {
|
|
|
279
281
|
'**/*.css',
|
|
280
282
|
'**/*.scss',
|
|
281
283
|
]
|
|
282
|
-
}), postcss__default[
|
|
283
|
-
plugins: [autoprefixer__default[
|
|
284
|
+
}), postcss__default["default"]({
|
|
285
|
+
plugins: [autoprefixer__default["default"]()],
|
|
284
286
|
modules: this.cssModules,
|
|
285
287
|
sourceMap: true,
|
|
286
288
|
extract: !this.cssInJs,
|
|
287
289
|
}), this.createClient(key, cert), livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
|
|
288
290
|
}
|
|
289
|
-
const watcher = rollup__default[
|
|
291
|
+
const watcher = rollup__default["default"].watch(options);
|
|
290
292
|
watcher.on('event', e => {
|
|
291
293
|
if (e.code == 'ERROR') {
|
|
292
|
-
logger__default[
|
|
294
|
+
logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
|
|
293
295
|
}
|
|
294
296
|
else if (e.code === 'BUNDLE_START') {
|
|
295
|
-
logger__default[
|
|
297
|
+
logger__default["default"].start('Bundling');
|
|
296
298
|
}
|
|
297
299
|
else if (e.code === 'BUNDLE_END') {
|
|
298
|
-
logger__default[
|
|
300
|
+
logger__default["default"].end('Bundling');
|
|
299
301
|
}
|
|
300
302
|
});
|
|
301
303
|
});
|
|
302
304
|
}
|
|
303
305
|
run(file) {
|
|
304
306
|
return __awaiter(this, void 0, void 0, function* () {
|
|
305
|
-
const input = yield logger__default[
|
|
307
|
+
const input = yield logger__default["default"].start('Check file', () => getFile(file));
|
|
306
308
|
const folder = yield new Promise((resolve, reject) => {
|
|
307
|
-
tmp__default[
|
|
309
|
+
tmp__default["default"].dir((err, folder) => {
|
|
308
310
|
if (err) {
|
|
309
311
|
reject(err);
|
|
310
312
|
}
|
|
@@ -314,14 +316,14 @@ class InnetJS {
|
|
|
314
316
|
});
|
|
315
317
|
});
|
|
316
318
|
const jsFilePath = `${folder}/index.js`;
|
|
317
|
-
yield logger__default[
|
|
319
|
+
yield logger__default["default"].start('Build bundle', () => __awaiter(this, void 0, void 0, function* () {
|
|
318
320
|
const inputOptions = {
|
|
319
321
|
input,
|
|
320
322
|
plugins: [
|
|
321
|
-
commonjs__default[
|
|
323
|
+
commonjs__default["default"](),
|
|
322
324
|
pluginNodeResolve.nodeResolve(),
|
|
323
|
-
json__default[
|
|
324
|
-
typescript__default[
|
|
325
|
+
json__default["default"](),
|
|
326
|
+
typescript__default["default"]({
|
|
325
327
|
tsconfigOverride: {
|
|
326
328
|
compilerOptions: {
|
|
327
329
|
sourceMap: true
|
|
@@ -335,11 +337,11 @@ class InnetJS {
|
|
|
335
337
|
file: jsFilePath,
|
|
336
338
|
sourcemap: true
|
|
337
339
|
};
|
|
338
|
-
const bundle = yield rollup__default[
|
|
340
|
+
const bundle = yield rollup__default["default"].rollup(inputOptions);
|
|
339
341
|
yield bundle.write(outputOptions);
|
|
340
342
|
yield bundle.close();
|
|
341
343
|
}));
|
|
342
|
-
yield logger__default[
|
|
344
|
+
yield logger__default["default"].start('Running of the script', () => __awaiter(this, void 0, void 0, function* () {
|
|
343
345
|
spawn('node', ['-r', 'source-map-support/register', jsFilePath], { stdio: 'inherit' });
|
|
344
346
|
}));
|
|
345
347
|
});
|
|
@@ -350,22 +352,22 @@ class InnetJS {
|
|
|
350
352
|
if (this.projectExtension) {
|
|
351
353
|
return this.projectExtension;
|
|
352
354
|
}
|
|
353
|
-
yield logger__default[
|
|
354
|
-
if (!fs__default[
|
|
355
|
+
yield logger__default["default"].start('Check src', () => {
|
|
356
|
+
if (!fs__default["default"].existsSync(this.srcFolder)) {
|
|
355
357
|
throw Error('src folder is missing');
|
|
356
358
|
}
|
|
357
359
|
});
|
|
358
|
-
yield logger__default[
|
|
359
|
-
if (fs__default[
|
|
360
|
+
yield logger__default["default"].start('Detection of index file', () => {
|
|
361
|
+
if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.js'))) {
|
|
360
362
|
this.projectExtension = 'js';
|
|
361
363
|
}
|
|
362
|
-
else if (fs__default[
|
|
364
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.ts'))) {
|
|
363
365
|
this.projectExtension = 'ts';
|
|
364
366
|
}
|
|
365
|
-
else if (fs__default[
|
|
367
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.tsx'))) {
|
|
366
368
|
this.projectExtension = 'tsx';
|
|
367
369
|
}
|
|
368
|
-
else if (fs__default[
|
|
370
|
+
else if (fs__default["default"].existsSync(path__default["default"].join(this.srcFolder, 'index.jsx'))) {
|
|
369
371
|
this.projectExtension = 'jsx';
|
|
370
372
|
}
|
|
371
373
|
else {
|
|
@@ -380,10 +382,10 @@ class InnetJS {
|
|
|
380
382
|
if (this.package) {
|
|
381
383
|
return this.package;
|
|
382
384
|
}
|
|
383
|
-
const packageFolder = path__default[
|
|
384
|
-
yield logger__default[
|
|
385
|
-
if (fs__default[
|
|
386
|
-
this.package = yield fs__default[
|
|
385
|
+
const packageFolder = path__default["default"].resolve(this.projectFolder, 'package.json');
|
|
386
|
+
yield logger__default["default"].start('Check package.json', () => __awaiter(this, void 0, void 0, function* () {
|
|
387
|
+
if (fs__default["default"].existsSync(packageFolder)) {
|
|
388
|
+
this.package = yield fs__default["default"].readJson(packageFolder);
|
|
387
389
|
}
|
|
388
390
|
}));
|
|
389
391
|
return this.package;
|
|
@@ -396,10 +398,10 @@ class InnetJS {
|
|
|
396
398
|
var _a;
|
|
397
399
|
if (!app) {
|
|
398
400
|
const httpsUsing = !!(cert && key);
|
|
399
|
-
app = express__default[
|
|
400
|
-
app.use(express__default[
|
|
401
|
+
app = express__default["default"]();
|
|
402
|
+
app.use(express__default["default"].static(this.publicFolder));
|
|
401
403
|
if ((_a = this.proxy) === null || _a === void 0 ? void 0 : _a.startsWith('http')) {
|
|
402
|
-
app.use(this.api, proxy__default[
|
|
404
|
+
app.use(this.api, proxy__default["default"](this.proxy, {
|
|
403
405
|
https: httpsUsing,
|
|
404
406
|
proxyReqPathResolver: req => req.originalUrl
|
|
405
407
|
}));
|
|
@@ -407,9 +409,9 @@ class InnetJS {
|
|
|
407
409
|
app.use(/^[^.]+$/, (req, res) => {
|
|
408
410
|
res.sendFile(this.publicFolder + '/index.html');
|
|
409
411
|
});
|
|
410
|
-
const server = httpsUsing ? https__default[
|
|
412
|
+
const server = httpsUsing ? https__default["default"].createServer({ key, cert }, app) : http__default["default"].createServer(app);
|
|
411
413
|
server.listen(this.port, () => {
|
|
412
|
-
console.log(`${chalk__default[
|
|
414
|
+
console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
|
|
413
415
|
});
|
|
414
416
|
}
|
|
415
417
|
}
|
|
@@ -420,11 +422,11 @@ class InnetJS {
|
|
|
420
422
|
return {
|
|
421
423
|
writeBundle: () => __awaiter(this, void 0, void 0, function* () {
|
|
422
424
|
app === null || app === void 0 ? void 0 : app.kill();
|
|
423
|
-
const filePath = path__default[
|
|
424
|
-
let data = yield fs__default[
|
|
425
|
+
const filePath = path__default["default"].resolve(this.buildFolder, 'index.js');
|
|
426
|
+
let data = yield fs__default["default"].readFile(filePath, 'UTF-8');
|
|
425
427
|
const regExp = new RegExp(`require\\('(${external.join('|')})'\\)`, 'g');
|
|
426
|
-
data = data.replace(regExp, `require('${path__default[
|
|
427
|
-
yield fs__default[
|
|
428
|
+
data = data.replace(regExp, `require('${path__default["default"].resolve(this.projectFolder, 'node_modules', '$1')}')`);
|
|
429
|
+
yield fs__default["default"].writeFile(filePath, data);
|
|
428
430
|
app = spawn('node', ['-r', 'source-map-support/register', filePath], { stdio: 'inherit' });
|
|
429
431
|
})
|
|
430
432
|
};
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "innetjs",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.3",
|
|
4
4
|
"description": "CLI for innet boilerplate",
|
|
5
5
|
"homepage": "https://github.com/d8corp/innetjs",
|
|
6
6
|
"author": "Mikhail Lysikov <d8corp@mail.ru>",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"bin": {
|
|
9
|
-
"innetjs": "
|
|
9
|
+
"innetjs": "bin/innet"
|
|
10
10
|
},
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
@@ -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'
|