lucy-cli 0.0.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.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
|
}
|