lucy-cli 0.0.4 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.yarnrc.yml +0 -2
- package/config.json +1 -0
- package/dist/Gulpfile.js +24 -115
- package/dist/dev.d.ts +2 -1
- package/dist/dev.js +2 -3
- package/dist/gulp/backend.d.ts +2 -0
- package/dist/gulp/backend.js +52 -8
- package/dist/gulp/checks.d.ts +3 -3
- package/dist/gulp/checks.js +37 -27
- package/dist/gulp/clean.d.ts +2 -0
- package/dist/gulp/clean.js +15 -3
- package/dist/gulp/copy.d.ts +1 -0
- package/dist/gulp/copy.js +24 -4
- package/dist/gulp/docs.d.ts +2 -0
- package/dist/gulp/docs.js +27 -0
- package/dist/gulp/pages.js +3 -3
- package/dist/gulp/pipeline.d.ts +1 -0
- package/dist/gulp/pipeline.js +27 -0
- package/dist/gulp/public.js +13 -7
- package/dist/gulp/styles.js +4 -4
- package/dist/gulp/templates.d.ts +1 -0
- package/dist/gulp/templates.js +21 -3
- package/dist/gulp/test.d.ts +2 -0
- package/dist/gulp/test.js +82 -0
- package/dist/gulp/types.js +7 -8
- package/dist/gulp/watchers.d.ts +17 -0
- package/dist/gulp/watchers.js +94 -0
- package/dist/index.d.ts +23 -1
- package/dist/index.js +46 -46
- package/dist/init.d.ts +2 -1
- package/dist/init.js +27 -55
- package/dist/settings.json +4 -1
- package/dist/sync.d.ts +2 -0
- package/dist/sync.js +5 -0
- package/files/lucy.json +1 -1
- package/files/typedoc.json +2 -2
- package/package.json +9 -3
- package/settings/backend-settings.json +13 -3
- package/settings/master-settings.json +10 -3
- package/settings/page-settings.json +11 -3
- package/settings/public-settings.json +13 -4
- package/src/Gulpfile.ts +75 -145
- package/src/dev.ts +4 -3
- package/src/gulp/backend.ts +57 -9
- package/src/gulp/checks.ts +36 -29
- package/src/gulp/clean.ts +17 -7
- package/src/gulp/copy.ts +27 -5
- package/src/gulp/pages.ts +4 -4
- package/src/gulp/pipeline.ts +30 -0
- package/src/gulp/public.ts +16 -8
- package/src/gulp/styles.ts +6 -5
- package/src/gulp/templates.ts +24 -5
- package/src/gulp/test.ts +82 -0
- package/src/gulp/types.ts +9 -12
- package/src/gulp/watchers.ts +175 -0
- package/src/index.ts +59 -68
- package/src/init.ts +28 -62
- package/src/settings.json +4 -1
- package/src/sync.ts +10 -0
- package/src/types.d.ts +2 -1
- package/.eslintrc.json +0 -3
- package/files/jest.config.ts +0 -28
- package/files/tsconfig.json +0 -51
package/src/Gulpfile.ts
CHANGED
@@ -1,23 +1,7 @@
|
|
1
|
-
import chalk from 'chalk';
|
2
|
-
import * as fs from 'fs';
|
3
|
-
import glob from 'glob';
|
4
1
|
import gulp from 'gulp';
|
5
|
-
import clean from 'gulp-clean';
|
6
|
-
import { createGulpEsbuild } from 'gulp-esbuild';
|
7
|
-
import exec from 'gulp-exec';
|
8
|
-
import foreach from 'gulp-foreach';
|
9
|
-
import * as insert from 'gulp-insert';
|
10
|
-
import jeditor from 'gulp-json-editor';
|
11
|
-
import rename from 'gulp-rename';
|
12
2
|
import gulpSass from 'gulp-sass';
|
13
3
|
import shell from 'gulp-shell';
|
14
|
-
import replace from 'gulp-string-replace';
|
15
|
-
import * as tap from 'gulp-tap';
|
16
|
-
import ts from 'gulp-typescript';
|
17
|
-
import * as wait from 'gulp-wait';
|
18
|
-
import merge from 'merge-stream';
|
19
4
|
import * as os from 'os';
|
20
|
-
import * as path from 'path';
|
21
5
|
import * as dartSass from 'sass';
|
22
6
|
|
23
7
|
import backendSettings from '../settings/backend-settings.json' assert { type: 'json' };
|
@@ -26,14 +10,18 @@ import pageSettings from '../settings/page-settings.json' assert { type: 'json'
|
|
26
10
|
import publicSettings from '../settings/public-settings.json' assert { type: 'json' };
|
27
11
|
|
28
12
|
import { buildPublic, buildPublicLib } from './gulp/public.js';
|
29
|
-
import { buildBackend, buildBackendJSW } from './gulp/backend.js';
|
13
|
+
import { buildBackend, buildBackendJSW, buildBackendJSWLib, buildBackendLib } from './gulp/backend.js';
|
30
14
|
import { checkPages, checkTs, checkTsLib } from './gulp/checks.js';
|
31
15
|
import { compileScss } from './gulp/styles.js';
|
32
16
|
import { buildPages } from './gulp/pages.js';
|
33
|
-
import { previewTemplates } from './gulp/templates.js';
|
34
|
-
import { copyFiles } from './gulp/copy.js';
|
35
|
-
import { cleanWix } from './gulp/clean.js';
|
17
|
+
import { previewTemplates, previewTemplatesLib } from './gulp/templates.js';
|
18
|
+
import { copyFiles, copyFilesLib } from './gulp/copy.js';
|
19
|
+
import { cleanSrc, cleanWix } from './gulp/clean.js';
|
36
20
|
import { addTypes, updateWixTypes } from './gulp/types.js';
|
21
|
+
import { setProdConfig } from './gulp/pipeline.js';
|
22
|
+
import { watchAll } from './gulp/watchers.js';
|
23
|
+
import { green, magenta, orange, red } from './index.js';
|
24
|
+
import { testLib, test } from './gulp/test.js';
|
37
25
|
|
38
26
|
const sass = gulpSass(dartSass);
|
39
27
|
|
@@ -56,7 +44,6 @@ export interface File {
|
|
56
44
|
// other properties...
|
57
45
|
}
|
58
46
|
|
59
|
-
let enableIncrementalBuild = false;
|
60
47
|
const outputDir = './src';
|
61
48
|
const userHomeDir = os.homedir();
|
62
49
|
const replaceOpions = {
|
@@ -66,7 +53,7 @@ const replaceOpions = {
|
|
66
53
|
};
|
67
54
|
|
68
55
|
const taskOptions: TaskOptions = {
|
69
|
-
enableIncrementalBuild,
|
56
|
+
enableIncrementalBuild: false,
|
70
57
|
outputDir,
|
71
58
|
sass,
|
72
59
|
userHomeDir,
|
@@ -78,10 +65,6 @@ const taskOptions: TaskOptions = {
|
|
78
65
|
cwd: process.cwd(),
|
79
66
|
}
|
80
67
|
|
81
|
-
gulp.task('check-pages', gulp.parallel(
|
82
|
-
checkPages
|
83
|
-
));
|
84
|
-
|
85
68
|
gulp.task('check-ts', gulp.parallel(
|
86
69
|
checkTs(),
|
87
70
|
checkTsLib(),
|
@@ -91,12 +74,11 @@ gulp.task('scss', gulp.parallel(
|
|
91
74
|
compileScss(taskOptions),
|
92
75
|
));
|
93
76
|
|
94
|
-
gulp.task('build-jsw', gulp.parallel(
|
95
|
-
buildBackendJSW(taskOptions),
|
96
|
-
));
|
97
|
-
|
98
77
|
gulp.task('build-backend', gulp.parallel(
|
99
78
|
buildBackend(taskOptions),
|
79
|
+
buildBackendLib(taskOptions),
|
80
|
+
buildBackendJSW(taskOptions),
|
81
|
+
buildBackendJSWLib(taskOptions),
|
100
82
|
));
|
101
83
|
|
102
84
|
gulp.task('build-public', gulp.parallel(
|
@@ -104,24 +86,23 @@ gulp.task('build-public', gulp.parallel(
|
|
104
86
|
buildPublicLib(taskOptions),
|
105
87
|
));
|
106
88
|
|
107
|
-
gulp.task('build-pages', gulp.parallel(
|
108
|
-
buildPages(taskOptions),
|
109
|
-
));
|
110
|
-
|
111
89
|
gulp.task('preview-templates', gulp.parallel(
|
112
|
-
previewTemplates()
|
90
|
+
previewTemplates(),
|
91
|
+
previewTemplatesLib()
|
113
92
|
));
|
114
93
|
|
115
94
|
gulp.task('copy-files', gulp.parallel(
|
116
|
-
copyFiles(taskOptions)
|
95
|
+
copyFiles(taskOptions),
|
96
|
+
copyFilesLib(taskOptions)
|
117
97
|
));
|
118
98
|
|
119
|
-
gulp.task('
|
120
|
-
|
99
|
+
gulp.task('test', gulp.parallel(
|
100
|
+
test(),
|
101
|
+
testLib(),
|
121
102
|
));
|
122
103
|
|
123
104
|
gulp.task('sync-types', shell.task([
|
124
|
-
|
105
|
+
'yarn postinstall',
|
125
106
|
]));
|
126
107
|
|
127
108
|
gulp.task('fix-wixtypes', gulp.parallel(
|
@@ -132,120 +113,71 @@ gulp.task('add-wix-types', function(done: gulp.TaskFunctionCallback) {
|
|
132
113
|
return addTypes(taskOptions, done);
|
133
114
|
});
|
134
115
|
|
135
|
-
gulp.task('
|
136
|
-
|
137
|
-
|
138
|
-
.on('error', function () {
|
139
|
-
console.log(chalk.red.underline.bold('Cleaning of output files failed!'));
|
140
|
-
this.emit('end');
|
141
|
-
})
|
142
|
-
.on('end', function() { console.log(chalk.blueBright.underline('Cleaning of output files succeeded!')); });
|
143
|
-
});
|
144
|
-
|
145
|
-
gulp.task('set-production', function () {
|
146
|
-
const droneTag = process.env.DRONE_TAG || 'development';
|
147
|
-
const regexGit = /gitTag:\s*(.*),/g;
|
148
|
-
const regexDev = /devMode:\s*(.*),/g;
|
149
|
-
|
150
|
-
return gulp
|
151
|
-
.src(['./typescript/public/constants/config.ts'])
|
152
|
-
.pipe(replace(regexGit, `gitTag: '${droneTag}',`))
|
153
|
-
.pipe(replace(regexDev, `devMode: false,`))
|
154
|
-
.pipe(gulp.dest((file: File) => {
|
155
|
-
const filePath = file.dirname;
|
156
|
-
const outputDir = path.dirname(filePath);
|
157
|
-
|
158
|
-
return path.join(`${outputDir}/constants`);
|
159
|
-
}))
|
160
|
-
.on('error', function () {
|
161
|
-
console.log(chalk.red.underline.bold('Setting the git tag failed!'));
|
162
|
-
this.emit('end');
|
163
|
-
})
|
164
|
-
.on('end', function() { console.log(chalk.blueBright.underline('Setting the git tag succeeded!')); });
|
165
|
-
});
|
116
|
+
gulp.task('set-production', gulp.parallel(
|
117
|
+
setProdConfig()
|
118
|
+
));
|
166
119
|
|
167
120
|
gulp.task('start-wix', shell.task([
|
168
121
|
'yarn wix:dev',
|
169
122
|
]));
|
170
123
|
|
171
|
-
gulp.task('test-watch', shell.task([
|
172
|
-
'sleep 10; yarn test --watch',
|
173
|
-
]));
|
174
|
-
|
175
|
-
gulp.task('test', shell.task([
|
176
|
-
'sleep 2; yarn test',
|
177
|
-
]));
|
178
|
-
|
179
124
|
gulp.task('gen-docs', shell.task([
|
180
125
|
'yarn docs',
|
181
126
|
]));
|
182
127
|
|
183
|
-
gulp.task('
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
gulp.watch(['typescript/backend/**/frontend.*.ts', 'wix-lucy-lib/backend/**/frontend.*.ts'], gulp.series('check-ts', 'build-jsw', 'test'));
|
190
|
-
});
|
191
|
-
gulp.task('watch-backend', () => {
|
192
|
-
enableIncrementalBuild = true;
|
193
|
-
gulp.watch([
|
194
|
-
'typescript/backend/**/*.ts',
|
195
|
-
'typescript/backend/**/*.tsx',
|
196
|
-
'!typescript/backend/**/*.spec.ts',
|
197
|
-
], gulp.series('check-ts', 'build-backend', 'test'));
|
198
|
-
});
|
199
|
-
gulp.task('watch-public', () => {
|
200
|
-
enableIncrementalBuild = true;
|
201
|
-
gulp.watch([
|
202
|
-
'typescript/public/**/*.ts',
|
203
|
-
'typescript/public/**/*.tsx',
|
204
|
-
'wix-lucy-lib/src/public/**/*.ts',
|
205
|
-
'wix-lucy-lib/src/public/**/*.tsx'
|
206
|
-
], gulp.series('check-ts', 'build-public', 'test'));
|
207
|
-
});
|
208
|
-
gulp.task('watch-templates', () => {
|
209
|
-
gulp.watch([
|
210
|
-
'typescript/backend/templates/**/*.tsx',
|
211
|
-
'typescript/backend/templates/data/*.json',
|
212
|
-
'!typescript/backend/templates/render.ts',
|
213
|
-
], gulp.series('preview-templates'));
|
214
|
-
});
|
215
|
-
|
216
|
-
gulp.task('watch-pages', () => {
|
217
|
-
enableIncrementalBuild = true;
|
218
|
-
gulp.watch('typescript/pages/**/*.ts', gulp.series('check-ts', 'build-pages', 'test'));
|
219
|
-
});
|
220
|
-
|
221
|
-
gulp.task('watch-files', () => {
|
222
|
-
enableIncrementalBuild = true;
|
223
|
-
gulp.watch([
|
224
|
-
'typescript/backend/**/*',
|
225
|
-
'typescript/public/**/*',
|
226
|
-
'typescript/pages/**/*',
|
227
|
-
'!typescript/**/*.ts',
|
228
|
-
], gulp.series('copy-files'));
|
229
|
-
});
|
128
|
+
gulp.task('fix-wix', gulp.series(
|
129
|
+
cleanWix(),
|
130
|
+
'sync-types',
|
131
|
+
'fix-wixtypes',
|
132
|
+
'add-wix-types'
|
133
|
+
));
|
230
134
|
|
231
|
-
gulp.task('
|
232
|
-
|
233
|
-
|
234
|
-
|
135
|
+
gulp.task('build', gulp.parallel(
|
136
|
+
'build-backend',
|
137
|
+
'build-public',
|
138
|
+
buildPages(taskOptions),
|
139
|
+
compileScss(taskOptions),
|
140
|
+
'copy-files'
|
141
|
+
)
|
142
|
+
);
|
143
|
+
|
144
|
+
gulp.task('build-pipeline', gulp.series(
|
145
|
+
cleanSrc(taskOptions),
|
146
|
+
'set-production',
|
147
|
+
'fix-wixtypes',
|
148
|
+
'add-wix-types',
|
149
|
+
'test',
|
150
|
+
'build',
|
151
|
+
));
|
235
152
|
|
236
|
-
gulp.task('
|
237
|
-
|
153
|
+
gulp.task('build-prod', gulp.series(
|
154
|
+
(done) => checkPages(true).then(() => done(), (err) => done(err)),
|
155
|
+
cleanSrc(taskOptions),
|
156
|
+
'set-production',
|
157
|
+
'fix-wix',
|
158
|
+
'build-backend',
|
159
|
+
'build-public',
|
160
|
+
buildPages(taskOptions),
|
161
|
+
'copy-files',
|
162
|
+
compileScss(taskOptions),
|
163
|
+
'gen-docs'
|
164
|
+
));
|
238
165
|
|
239
|
-
gulp.task('watch', gulp.parallel('watch-types', 'watch-jsw', 'watch-backend', 'watch-public', 'watch-pages', 'watch-files', 'watch-scss', 'watch-templates'));
|
240
|
-
gulp.task('build-prod', gulp.series('clean', 'set-production', 'fix-wix', 'check-pages', 'build-jsw', 'build-backend', 'build-public', 'build-pages', 'copy-files', 'scss', 'gen-docs'));
|
241
|
-
gulp.task('build', gulp.series('clean', 'fix-wix', 'check-ts', 'build-jsw', 'build-backend', 'build-public', 'build-pages', 'scss', 'copy-files'));
|
242
166
|
|
243
|
-
gulp.task('
|
244
|
-
|
167
|
+
gulp.task('start-dev-env', gulp.parallel(
|
168
|
+
watchAll(taskOptions),
|
169
|
+
'test',
|
170
|
+
'start-wix',
|
171
|
+
(done) => checkPages(false).then(() => done(), (err) => done(err)),
|
172
|
+
));
|
245
173
|
|
246
|
-
gulp.task('
|
247
|
-
|
248
|
-
|
174
|
+
gulp.task('dev', gulp.series(
|
175
|
+
cleanSrc(taskOptions),
|
176
|
+
'fix-wix',
|
177
|
+
'build',
|
178
|
+
'start-dev-env',
|
179
|
+
)
|
180
|
+
);
|
249
181
|
|
250
182
|
async function gulpTaskRunner(task: string) {
|
251
183
|
return new Promise(function (resolve, reject) {
|
@@ -253,7 +185,7 @@ async function gulpTaskRunner(task: string) {
|
|
253
185
|
resolve(true);
|
254
186
|
done();
|
255
187
|
})(function (err) {
|
256
|
-
console.log(
|
188
|
+
console.log((`💩 ${red.underline.bold("=> Error starting tasks =>")} ${orange(err)}`));
|
257
189
|
if (err) {
|
258
190
|
reject(err);
|
259
191
|
}
|
@@ -262,10 +194,8 @@ async function gulpTaskRunner(task: string) {
|
|
262
194
|
}
|
263
195
|
|
264
196
|
export async function runTask(task: string, cwd: string) {
|
265
|
-
console.log('runTask', {task, cwd});
|
266
197
|
taskOptions.cwd = cwd;
|
267
|
-
console.log('
|
268
|
-
console.log('start');
|
198
|
+
console.log("🐕" + magenta.underline(' => Starting Task => ' + orange(task)));
|
269
199
|
await gulpTaskRunner(task);
|
270
|
-
console.log('
|
271
|
-
}
|
200
|
+
console.log("🐶" + green.underline.bold(' => Task completed: ' + task));
|
201
|
+
}
|
package/src/dev.ts
CHANGED
@@ -2,9 +2,10 @@
|
|
2
2
|
import gulp from 'gulp';
|
3
3
|
import path from 'path';
|
4
4
|
import { fileURLToPath } from 'url';
|
5
|
+
import { ModuleSettings, ProjectSettings } from '.';
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
|
8
|
+
export async function dev(moduleSettings: ModuleSettings, projectSettings: ProjectSettings) {
|
8
9
|
// Get the directory name of the current module
|
9
10
|
const __filename = fileURLToPath(import.meta.url);
|
10
11
|
const __dirname = path.dirname(__filename);
|
@@ -16,5 +17,5 @@ export async function dev(cwd: string, arg: string[]) {
|
|
16
17
|
const gulpfile = await import(`file://${gulpfilePath}`);
|
17
18
|
|
18
19
|
// Check if 'dev' task exists
|
19
|
-
gulpfile.runTask('dev',
|
20
|
+
gulpfile.runTask('dev', moduleSettings.targetFolder)
|
20
21
|
}
|
package/src/gulp/backend.ts
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
import chalk from 'chalk';
|
2
1
|
import gulp from 'gulp';
|
3
2
|
import { createGulpEsbuild } from 'gulp-esbuild';
|
4
3
|
import rename from 'gulp-rename';
|
5
4
|
import * as path from 'path';
|
6
5
|
import { TaskOptions } from '../Gulpfile';
|
7
|
-
|
6
|
+
import { blue, red } from '../index.js';
|
8
7
|
|
9
8
|
export function buildBackend(options: TaskOptions) {
|
10
9
|
const { outputDir, enableIncrementalBuild } = options;
|
11
10
|
const gulpEsbuild = createGulpEsbuild({
|
12
11
|
incremental: enableIncrementalBuild,
|
13
12
|
});
|
13
|
+
|
14
14
|
return () => {
|
15
15
|
return gulp.src([
|
16
16
|
'typescript/backend/**/*.ts',
|
17
17
|
'typescript/backend/**/*.tsx',
|
18
|
-
'!typescript/backend
|
18
|
+
'!typescript/backend/**/*.jsw.ts',
|
19
19
|
'!typescript/backend/**/*.spec.ts',
|
20
20
|
])
|
21
21
|
.pipe(gulpEsbuild({
|
@@ -23,10 +23,36 @@ export function buildBackend(options: TaskOptions) {
|
|
23
23
|
}))
|
24
24
|
.pipe(gulp.dest(path.join(outputDir, 'backend')))
|
25
25
|
.on('error', function () {
|
26
|
-
console.log(
|
26
|
+
console.log("💩" + red.underline.bold(' => Build of Backend TS files failed!'));
|
27
|
+
this.emit('end');
|
28
|
+
})
|
29
|
+
.on('end', function() { console.log("🐶" + blue.underline(' => Build of Backend TS files succeeded!'));
|
30
|
+
}
|
31
|
+
)}
|
32
|
+
}
|
33
|
+
|
34
|
+
export function buildBackendLib(options: TaskOptions) {
|
35
|
+
const { outputDir, enableIncrementalBuild } = options;
|
36
|
+
const gulpEsbuild = createGulpEsbuild({
|
37
|
+
incremental: enableIncrementalBuild,
|
38
|
+
});
|
39
|
+
|
40
|
+
return () => {
|
41
|
+
return gulp.src([
|
42
|
+
'lucy-lib/backend/**/*.ts',
|
43
|
+
'lucy-lib/backend/**/*.tsx',
|
44
|
+
'!lucy-lib/backend/**/*.jsw.ts',
|
45
|
+
'!lucy-lib/backend/**/*.spec.ts',
|
46
|
+
])
|
47
|
+
.pipe(gulpEsbuild({
|
48
|
+
bundle: false,
|
49
|
+
}))
|
50
|
+
.pipe(gulp.dest(path.join(outputDir, 'backend')))
|
51
|
+
.on('error', function () {
|
52
|
+
console.log("💩" + red.underline.bold(' => Build of Backend TS (LIB) files failed!'));
|
27
53
|
this.emit('end');
|
28
54
|
})
|
29
|
-
.on('end', function() { console.log(
|
55
|
+
.on('end', function() { console.log("🐶" + blue.underline(' => Build of Backend TS (LIB) files succeeded!'));
|
30
56
|
}
|
31
57
|
)}
|
32
58
|
}
|
@@ -36,17 +62,39 @@ export function buildBackendJSW(options: TaskOptions) {
|
|
36
62
|
const gulpEsbuild = createGulpEsbuild({
|
37
63
|
incremental: enableIncrementalBuild,
|
38
64
|
});
|
65
|
+
|
66
|
+
return () => {
|
67
|
+
return gulp.src(['typescript/backend/**/*.jsw.ts'])
|
68
|
+
.pipe(gulpEsbuild({
|
69
|
+
bundle: false,
|
70
|
+
}))
|
71
|
+
.pipe(rename({ extname: '' }))
|
72
|
+
.pipe(gulp.dest(path.join(outputDir, 'backend')))
|
73
|
+
.on('error', function () {
|
74
|
+
console.log("💩" + red.underline.bold(' => Build of JSW files failed!'));
|
75
|
+
this.emit('end');
|
76
|
+
})
|
77
|
+
.on('end', function() { console.log("🐶" + blue.underline(' => Build of (JSW) files succeeded!'))})
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
export function buildBackendJSWLib(options: TaskOptions) {
|
82
|
+
const { outputDir, enableIncrementalBuild } = options;
|
83
|
+
const gulpEsbuild = createGulpEsbuild({
|
84
|
+
incremental: enableIncrementalBuild,
|
85
|
+
});
|
86
|
+
|
39
87
|
return () => {
|
40
|
-
return gulp.src(['
|
88
|
+
return gulp.src(['lucy-lib/backend/**/*.jsw.ts'])
|
41
89
|
.pipe(gulpEsbuild({
|
42
90
|
bundle: false,
|
43
91
|
}))
|
44
|
-
.pipe(rename({ extname: '
|
92
|
+
.pipe(rename({ extname: '' }))
|
45
93
|
.pipe(gulp.dest(path.join(outputDir, 'backend')))
|
46
94
|
.on('error', function () {
|
47
|
-
console.log(
|
95
|
+
console.log("💩" + red.underline.bold(' => Build of JSW (LIB) files failed!'));
|
48
96
|
this.emit('end');
|
49
97
|
})
|
50
|
-
|
98
|
+
.on('end', function() { console.log("🐶" + blue.underline(' => Build of JSW (LIB) files succeeded!'))})
|
51
99
|
}
|
52
100
|
}
|
package/src/gulp/checks.ts
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
import chalk from 'chalk';
|
2
1
|
import * as fs from 'fs';
|
3
2
|
import glob from 'glob';
|
4
3
|
import * as path from 'path';
|
5
4
|
import gulp from 'gulp';
|
6
5
|
import ts from 'gulp-typescript';
|
6
|
+
import { blue, green, red, yellow } from '../index.js';
|
7
7
|
|
8
8
|
/**
|
9
9
|
* Extracts a match from a file
|
@@ -74,54 +74,61 @@ function readFilesInFolder(folderPath: string, pattern: string | null, globPatte
|
|
74
74
|
});
|
75
75
|
}
|
76
76
|
|
77
|
-
export async function checkPages() {
|
78
|
-
console.log(
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
77
|
+
export async function checkPages(fail: boolean) {
|
78
|
+
console.log("🐕" + green.underline.bold(' => Checking pages...'));
|
79
|
+
return new Promise<void>(async (resolve, reject) => {
|
80
|
+
try {
|
81
|
+
const sourcePages = await readFilesInFolder('./.wix/types/', '\\/pages\\/(?<page>.*\\.ts)', '**/*.json',) as string[];
|
82
|
+
const tsPages = await readFilesInFolder('./typescript/pages', null, '**/*.ts',) as string[];
|
83
|
+
|
84
|
+
const sourcePagesSet = new Set(sourcePages);
|
85
|
+
const tsPagesSet = new Set(tsPages);
|
86
|
+
const missingInTs = Array.from(sourcePagesSet).filter((item: string) => !tsPages.includes(item));
|
87
|
+
const obsoleteInTs = Array.from(tsPagesSet).filter((item: string) => !sourcePages.includes(item));
|
88
|
+
if (missingInTs.length > 0){
|
89
|
+
console.log("🦴" + yellow.underline.bold(' => Missing in ts folder: '), '\n', missingInTs);
|
90
|
+
}
|
91
|
+
if (obsoleteInTs.length > 0){
|
92
|
+
console.log("🦴" + yellow.underline.bold(' => Obsolete in ts folder'), '\n', obsoleteInTs);
|
93
|
+
}
|
94
|
+
if (missingInTs.length === 0 || obsoleteInTs.length === 0) {
|
95
|
+
console.log("🐶" + blue.underline.bold(' => Pages are insync!'))
|
96
|
+
} else if(fail){
|
97
|
+
process.exit(1);
|
98
|
+
};
|
99
|
+
} catch (error) {
|
100
|
+
reject(error);
|
101
|
+
}
|
102
|
+
});
|
95
103
|
}
|
96
104
|
|
97
105
|
export function checkTs() {
|
98
|
-
const tsProject = ts.createProject('./
|
99
|
-
|
106
|
+
const tsProject = ts.createProject('./lucy-lib/tsconfig.json', { noEmit: true });
|
100
107
|
return () => {
|
101
|
-
return gulp.src(['
|
108
|
+
return gulp.src(['lucy-lib/typescript/**/*.ts', '!lucy-lib/typescript/types/**/*.ts'], { cwd: 'typescript' })
|
102
109
|
.pipe(tsProject(ts.reporter.fullReporter()))
|
103
110
|
.on('error', function () {
|
104
|
-
console.log(
|
111
|
+
console.log("💩" + red.underline.bold(' => Typescript error!'));
|
105
112
|
this.emit('end');
|
106
113
|
})
|
107
114
|
.on('end', function () {
|
108
|
-
console.log(
|
115
|
+
console.log("🐶" + blue.underline(' => Typescriptcheck succeeded!'));
|
109
116
|
});
|
110
117
|
};
|
111
118
|
}
|
112
119
|
|
113
120
|
export function checkTsLib() {
|
114
|
-
const tsProject = ts.createProject('./
|
115
|
-
|
121
|
+
const tsProject = ts.createProject('./lucy-lib/tsconfig.json', { noEmit: true });
|
122
|
+
|
116
123
|
return () => {
|
117
|
-
return gulp.src(['
|
124
|
+
return gulp.src(['lucy-lib/typescript/**/*.ts', '!lucy-lib/typescript/types/**/*.ts'], { cwd: 'typescript' })
|
118
125
|
.pipe(tsProject(ts.reporter.fullReporter()))
|
119
126
|
.on('error', function () {
|
120
|
-
console.log(
|
127
|
+
console.log("💩" + red.underline.bold(' => Typescript (LIB) error!'));
|
121
128
|
this.emit('end');
|
122
129
|
})
|
123
130
|
.on('end', function () {
|
124
|
-
console.log(
|
131
|
+
console.log("🐶" + blue.underline(' => Typescript check (LIB) succeeded!'));
|
125
132
|
});
|
126
133
|
};
|
127
134
|
}
|
package/src/gulp/clean.ts
CHANGED
@@ -1,21 +1,31 @@
|
|
1
1
|
import chalk from 'chalk';
|
2
2
|
import gulp from 'gulp';
|
3
|
-
import { createGulpEsbuild } from 'gulp-esbuild';
|
4
|
-
import rename from 'gulp-rename';
|
5
|
-
import * as path from 'path';
|
6
3
|
import { TaskOptions } from '../Gulpfile';
|
7
4
|
import clean from 'gulp-clean';
|
5
|
+
import { blue, red } from '../index.js';
|
8
6
|
|
9
|
-
|
10
|
-
export function cleanWix() {
|
7
|
+
export function cleanWix() {
|
11
8
|
return () => {
|
12
9
|
return gulp.src('./.wix', { read: false, allowEmpty: true })
|
13
10
|
.pipe(clean({ force: true }))
|
14
11
|
.on('error', function () {
|
15
|
-
console.log(
|
12
|
+
console.log("💩" + red.underline.bold(' => Cleaning of .wix failed!'));
|
16
13
|
this.emit('end');
|
17
14
|
})
|
18
|
-
.on('end', function() { console.log(
|
15
|
+
.on('end', function() { console.log("🐶" + blue.underline(' => Cleaning of .wix succeeded!')); });
|
19
16
|
}
|
20
17
|
}
|
21
18
|
|
19
|
+
export function cleanSrc(options: TaskOptions) {
|
20
|
+
const { outputDir } = options;
|
21
|
+
|
22
|
+
return () => {
|
23
|
+
return gulp.src([`${outputDir}/pages`, `${outputDir}/public`, `${outputDir}/backend`], { read: false, allowEmpty: true })
|
24
|
+
.pipe(clean({ force: true }))
|
25
|
+
.on('error', function () {
|
26
|
+
console.log("💩" + red.underline.bold('Cleaning of output files failed!'));
|
27
|
+
this.emit('end');
|
28
|
+
})
|
29
|
+
.on('end', function() { console.log("🐶" + blue.underline(' => Cleaning of .src succeeded!')); });
|
30
|
+
}
|
31
|
+
}
|
package/src/gulp/copy.ts
CHANGED
@@ -1,11 +1,33 @@
|
|
1
1
|
import gulp from 'gulp';
|
2
2
|
import chalk from 'chalk';
|
3
3
|
import { TaskOptions } from '../Gulpfile';
|
4
|
-
import {
|
5
|
-
import * as path from 'path';
|
4
|
+
import { blue, red } from '../index.js';
|
6
5
|
|
7
6
|
export function copyFiles(options: TaskOptions) {
|
8
7
|
const { outputDir} = options;
|
8
|
+
|
9
|
+
return () => {
|
10
|
+
return gulp.src([
|
11
|
+
'typescript/**/*',
|
12
|
+
'!typescript/*tsconfig.json',
|
13
|
+
'!typescript/**/*.ts',
|
14
|
+
'!typescript/**/*.tsx',
|
15
|
+
'!typescript/types/**/**',
|
16
|
+
'!typescript/__mocks__/**/**',
|
17
|
+
'!typescript/styles/**',
|
18
|
+
])
|
19
|
+
.pipe(gulp.dest(outputDir))
|
20
|
+
.on('error', function () {
|
21
|
+
console.log("💩" + red.underline.bold(' => Copy of files failed!'));
|
22
|
+
this.emit('end');
|
23
|
+
})
|
24
|
+
.on('end', function() { console.log("🐶" + blue.underline(' => Copy of files succeeded!')); });
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
export function copyFilesLib(options: TaskOptions) {
|
29
|
+
const { outputDir} = options;
|
30
|
+
|
9
31
|
return () => {
|
10
32
|
return gulp.src([
|
11
33
|
'typescript/**/*',
|
@@ -14,13 +36,13 @@ export function copyFiles(options: TaskOptions) {
|
|
14
36
|
'!typescript/**/*.tsx',
|
15
37
|
'!typescript/types/**/**',
|
16
38
|
'!typescript/__mocks__/**/**',
|
17
|
-
'!typescript/
|
39
|
+
'!typescript/styles/**',
|
18
40
|
])
|
19
41
|
.pipe(gulp.dest(outputDir))
|
20
42
|
.on('error', function () {
|
21
|
-
console.log(
|
43
|
+
console.log("💩" + red.underline.bold(' => Copy of files (LIB) failed!'));
|
22
44
|
this.emit('end');
|
23
45
|
})
|
24
|
-
.on('end', function() { console.log(
|
46
|
+
.on('end', function() { console.log("🐶" + blue.underline(' => Copy of files (LIB) succeeded!')); });
|
25
47
|
}
|
26
48
|
}
|
package/src/gulp/pages.ts
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
import gulp from 'gulp';
|
2
|
-
import chalk from 'chalk';
|
3
2
|
import { TaskOptions } from '../Gulpfile';
|
4
3
|
import { createGulpEsbuild } from 'gulp-esbuild';
|
5
4
|
import * as path from 'path';
|
5
|
+
import { blue, red } from '../index.js';
|
6
6
|
|
7
7
|
export function buildPages(options: TaskOptions) {
|
8
8
|
const { outputDir, enableIncrementalBuild} = options;
|
9
9
|
const gulpEsbuild = createGulpEsbuild({
|
10
10
|
incremental: enableIncrementalBuild, // enables the esbuild's incremental build
|
11
11
|
});
|
12
|
-
|
12
|
+
|
13
13
|
return () => {
|
14
14
|
return gulp.src('typescript/pages/*.ts')
|
15
15
|
.pipe(gulpEsbuild({
|
@@ -17,9 +17,9 @@ export function buildPages(options: TaskOptions) {
|
|
17
17
|
}))
|
18
18
|
.pipe(gulp.dest(path.join(outputDir, 'pages')))
|
19
19
|
.on('error', function () {
|
20
|
-
console.log(
|
20
|
+
console.log("💩" + red.underline.bold(' => Build of Pages TS files failed!'));
|
21
21
|
this.emit('end');
|
22
22
|
})
|
23
|
-
.on('end', function() { console.log(
|
23
|
+
.on('end', function() { console.log("🐶" + blue.underline(' => Build of Pages TS files succeeded!')); });
|
24
24
|
};
|
25
25
|
}
|