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/.yarnrc.yml
CHANGED
package/config.json
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"siteUrl":"https://integralsd.editorx.io/development","secret":"SYv3Uv2OO8b6vEEk"}
|
package/dist/Gulpfile.js
CHANGED
@@ -1,27 +1,26 @@
|
|
1
|
-
import chalk from 'chalk';
|
2
1
|
import gulp from 'gulp';
|
3
|
-
import clean from 'gulp-clean';
|
4
2
|
import gulpSass from 'gulp-sass';
|
5
3
|
import shell from 'gulp-shell';
|
6
|
-
import replace from 'gulp-string-replace';
|
7
4
|
import * as os from 'os';
|
8
|
-
import * as path from 'path';
|
9
5
|
import * as dartSass from 'sass';
|
10
6
|
import backendSettings from '../settings/backend-settings.json' assert { type: 'json' };
|
11
7
|
import masterSettings from '../settings/master-settings.json' assert { type: 'json' };
|
12
8
|
import pageSettings from '../settings/page-settings.json' assert { type: 'json' };
|
13
9
|
import publicSettings from '../settings/public-settings.json' assert { type: 'json' };
|
14
10
|
import { buildPublic, buildPublicLib } from './gulp/public.js';
|
15
|
-
import { buildBackend, buildBackendJSW } from './gulp/backend.js';
|
11
|
+
import { buildBackend, buildBackendJSW, buildBackendJSWLib, buildBackendLib } from './gulp/backend.js';
|
16
12
|
import { checkPages, checkTs, checkTsLib } from './gulp/checks.js';
|
17
13
|
import { compileScss } from './gulp/styles.js';
|
18
14
|
import { buildPages } from './gulp/pages.js';
|
19
|
-
import { previewTemplates } from './gulp/templates.js';
|
20
|
-
import { copyFiles } from './gulp/copy.js';
|
21
|
-
import { cleanWix } from './gulp/clean.js';
|
15
|
+
import { previewTemplates, previewTemplatesLib } from './gulp/templates.js';
|
16
|
+
import { copyFiles, copyFilesLib } from './gulp/copy.js';
|
17
|
+
import { cleanSrc, cleanWix } from './gulp/clean.js';
|
22
18
|
import { addTypes, updateWixTypes } from './gulp/types.js';
|
19
|
+
import { setProdConfig } from './gulp/pipeline.js';
|
20
|
+
import { watchAll } from './gulp/watchers.js';
|
21
|
+
import { green, magenta, orange, red } from './index.js';
|
22
|
+
import { testLib, test } from './gulp/test.js';
|
23
23
|
const sass = gulpSass(dartSass);
|
24
|
-
let enableIncrementalBuild = false;
|
25
24
|
const outputDir = './src';
|
26
25
|
const userHomeDir = os.homedir();
|
27
26
|
const replaceOpions = {
|
@@ -30,7 +29,7 @@ const replaceOpions = {
|
|
30
29
|
}
|
31
30
|
};
|
32
31
|
const taskOptions = {
|
33
|
-
enableIncrementalBuild,
|
32
|
+
enableIncrementalBuild: false,
|
34
33
|
outputDir,
|
35
34
|
sass,
|
36
35
|
userHomeDir,
|
@@ -41,128 +40,40 @@ const taskOptions = {
|
|
41
40
|
replaceOpions,
|
42
41
|
cwd: process.cwd(),
|
43
42
|
};
|
44
|
-
gulp.task('check-pages', gulp.parallel(checkPages));
|
45
43
|
gulp.task('check-ts', gulp.parallel(checkTs(), checkTsLib()));
|
46
44
|
gulp.task('scss', gulp.parallel(compileScss(taskOptions)));
|
47
|
-
gulp.task('build-
|
48
|
-
gulp.task('build-backend', gulp.parallel(buildBackend(taskOptions)));
|
45
|
+
gulp.task('build-backend', gulp.parallel(buildBackend(taskOptions), buildBackendLib(taskOptions), buildBackendJSW(taskOptions), buildBackendJSWLib(taskOptions)));
|
49
46
|
gulp.task('build-public', gulp.parallel(buildPublic(taskOptions), buildPublicLib(taskOptions)));
|
50
|
-
gulp.task('
|
51
|
-
gulp.task('
|
52
|
-
gulp.task('
|
53
|
-
gulp.task('clean-wix', gulp.parallel(cleanWix()));
|
47
|
+
gulp.task('preview-templates', gulp.parallel(previewTemplates(), previewTemplatesLib()));
|
48
|
+
gulp.task('copy-files', gulp.parallel(copyFiles(taskOptions), copyFilesLib(taskOptions)));
|
49
|
+
gulp.task('test', gulp.parallel(test(), testLib()));
|
54
50
|
gulp.task('sync-types', shell.task([
|
55
|
-
|
51
|
+
'yarn postinstall',
|
56
52
|
]));
|
57
53
|
gulp.task('fix-wixtypes', gulp.parallel(updateWixTypes(taskOptions)));
|
58
54
|
gulp.task('add-wix-types', function (done) {
|
59
55
|
return addTypes(taskOptions, done);
|
60
56
|
});
|
61
|
-
gulp.task('
|
62
|
-
return gulp.src([`${outputDir}/pages`, `${outputDir}/public`, `${outputDir}/backend`], { read: false, allowEmpty: true })
|
63
|
-
.pipe(clean({ force: true }))
|
64
|
-
.on('error', function () {
|
65
|
-
console.log(chalk.red.underline.bold('Cleaning of output files failed!'));
|
66
|
-
this.emit('end');
|
67
|
-
})
|
68
|
-
.on('end', function () { console.log(chalk.blueBright.underline('Cleaning of output files succeeded!')); });
|
69
|
-
});
|
70
|
-
gulp.task('set-production', function () {
|
71
|
-
const droneTag = process.env.DRONE_TAG || 'development';
|
72
|
-
const regexGit = /gitTag:\s*(.*),/g;
|
73
|
-
const regexDev = /devMode:\s*(.*),/g;
|
74
|
-
return gulp
|
75
|
-
.src(['./typescript/public/constants/config.ts'])
|
76
|
-
.pipe(replace(regexGit, `gitTag: '${droneTag}',`))
|
77
|
-
.pipe(replace(regexDev, `devMode: false,`))
|
78
|
-
.pipe(gulp.dest((file) => {
|
79
|
-
const filePath = file.dirname;
|
80
|
-
const outputDir = path.dirname(filePath);
|
81
|
-
return path.join(`${outputDir}/constants`);
|
82
|
-
}))
|
83
|
-
.on('error', function () {
|
84
|
-
console.log(chalk.red.underline.bold('Setting the git tag failed!'));
|
85
|
-
this.emit('end');
|
86
|
-
})
|
87
|
-
.on('end', function () { console.log(chalk.blueBright.underline('Setting the git tag succeeded!')); });
|
88
|
-
});
|
57
|
+
gulp.task('set-production', gulp.parallel(setProdConfig()));
|
89
58
|
gulp.task('start-wix', shell.task([
|
90
59
|
'yarn wix:dev',
|
91
60
|
]));
|
92
|
-
gulp.task('test-watch', shell.task([
|
93
|
-
'sleep 10; yarn test --watch',
|
94
|
-
]));
|
95
|
-
gulp.task('test', shell.task([
|
96
|
-
'sleep 2; yarn test',
|
97
|
-
]));
|
98
61
|
gulp.task('gen-docs', shell.task([
|
99
62
|
'yarn docs',
|
100
63
|
]));
|
101
|
-
gulp.task('
|
102
|
-
|
103
|
-
|
104
|
-
gulp.task('
|
105
|
-
|
106
|
-
|
107
|
-
});
|
108
|
-
gulp.task('watch-backend', () => {
|
109
|
-
enableIncrementalBuild = true;
|
110
|
-
gulp.watch([
|
111
|
-
'typescript/backend/**/*.ts',
|
112
|
-
'typescript/backend/**/*.tsx',
|
113
|
-
'!typescript/backend/**/*.spec.ts',
|
114
|
-
], gulp.series('check-ts', 'build-backend', 'test'));
|
115
|
-
});
|
116
|
-
gulp.task('watch-public', () => {
|
117
|
-
enableIncrementalBuild = true;
|
118
|
-
gulp.watch([
|
119
|
-
'typescript/public/**/*.ts',
|
120
|
-
'typescript/public/**/*.tsx',
|
121
|
-
'wix-lucy-lib/src/public/**/*.ts',
|
122
|
-
'wix-lucy-lib/src/public/**/*.tsx'
|
123
|
-
], gulp.series('check-ts', 'build-public', 'test'));
|
124
|
-
});
|
125
|
-
gulp.task('watch-templates', () => {
|
126
|
-
gulp.watch([
|
127
|
-
'typescript/backend/templates/**/*.tsx',
|
128
|
-
'typescript/backend/templates/data/*.json',
|
129
|
-
'!typescript/backend/templates/render.ts',
|
130
|
-
], gulp.series('preview-templates'));
|
131
|
-
});
|
132
|
-
gulp.task('watch-pages', () => {
|
133
|
-
enableIncrementalBuild = true;
|
134
|
-
gulp.watch('typescript/pages/**/*.ts', gulp.series('check-ts', 'build-pages', 'test'));
|
135
|
-
});
|
136
|
-
gulp.task('watch-files', () => {
|
137
|
-
enableIncrementalBuild = true;
|
138
|
-
gulp.watch([
|
139
|
-
'typescript/backend/**/*',
|
140
|
-
'typescript/public/**/*',
|
141
|
-
'typescript/pages/**/*',
|
142
|
-
'!typescript/**/*.ts',
|
143
|
-
], gulp.series('copy-files'));
|
144
|
-
});
|
145
|
-
gulp.task('watch-types', () => {
|
146
|
-
enableIncrementalBuild = true;
|
147
|
-
gulp.watch(['./.wix/types/**/*.d.ts', '!./.wix/types/wix-code-types'], gulp.series('fix-wixtypes'));
|
148
|
-
});
|
149
|
-
gulp.task('fix-wix', gulp.series('clean-wix', 'sync-types', 'fix-wixtypes', 'add-wix-types'));
|
150
|
-
gulp.task('clean', gulp.series('clean-src'));
|
151
|
-
gulp.task('watch', gulp.parallel('watch-types', 'watch-jsw', 'watch-backend', 'watch-public', 'watch-pages', 'watch-files', 'watch-scss', 'watch-templates'));
|
152
|
-
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'));
|
153
|
-
gulp.task('build', gulp.series('clean', 'fix-wix', 'check-ts', 'build-jsw', 'build-backend', 'build-public', 'build-pages', 'scss', 'copy-files'));
|
154
|
-
gulp.task('fix-for-test', gulp.series('fix-wixtypes', 'add-wix-types'));
|
155
|
-
gulp.task('build-pipeline', gulp.series('clean', 'set-production', 'build-jsw', 'build-backend', 'build-public', 'build-pages', 'copy-files', 'scss', 'gen-docs'));
|
156
|
-
gulp.task('start-dev-env', gulp.parallel('watch', 'check-pages'));
|
157
|
-
gulp.task('dev', gulp.series('build', 'start-dev-env', 'test-watch'));
|
158
|
-
gulp.task('default', gulp.series('dev'));
|
64
|
+
gulp.task('fix-wix', gulp.series(cleanWix(), 'sync-types', 'fix-wixtypes', 'add-wix-types'));
|
65
|
+
gulp.task('build', gulp.parallel('build-backend', 'build-public', buildPages(taskOptions), compileScss(taskOptions), 'copy-files'));
|
66
|
+
gulp.task('build-pipeline', gulp.series(cleanSrc(taskOptions), 'set-production', 'fix-wixtypes', 'add-wix-types', 'test', 'build'));
|
67
|
+
gulp.task('build-prod', gulp.series((done) => checkPages(true).then(() => done(), (err) => done(err)), cleanSrc(taskOptions), 'set-production', 'fix-wix', 'build-backend', 'build-public', buildPages(taskOptions), 'copy-files', compileScss(taskOptions), 'gen-docs'));
|
68
|
+
gulp.task('start-dev-env', gulp.parallel(watchAll(taskOptions), 'test', 'start-wix', (done) => checkPages(false).then(() => done(), (err) => done(err))));
|
69
|
+
gulp.task('dev', gulp.series(cleanSrc(taskOptions), 'fix-wix', 'build', 'start-dev-env'));
|
159
70
|
async function gulpTaskRunner(task) {
|
160
71
|
return new Promise(function (resolve, reject) {
|
161
72
|
gulp.series(task, (done) => {
|
162
73
|
resolve(true);
|
163
74
|
done();
|
164
75
|
})(function (err) {
|
165
|
-
console.log(
|
76
|
+
console.log((`💩 ${red.underline.bold("=> Error starting tasks =>")} ${orange(err)}`));
|
166
77
|
if (err) {
|
167
78
|
reject(err);
|
168
79
|
}
|
@@ -170,10 +81,8 @@ async function gulpTaskRunner(task) {
|
|
170
81
|
});
|
171
82
|
}
|
172
83
|
export async function runTask(task, cwd) {
|
173
|
-
console.log('runTask', { task, cwd });
|
174
84
|
taskOptions.cwd = cwd;
|
175
|
-
console.log('
|
176
|
-
console.log('start');
|
85
|
+
console.log("🐕" + magenta.underline(' => Starting Task => ' + orange(task)));
|
177
86
|
await gulpTaskRunner(task);
|
178
|
-
console.log('
|
87
|
+
console.log("🐶" + green.underline.bold(' => Task completed: ' + task));
|
179
88
|
}
|
package/dist/dev.d.ts
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
import { ModuleSettings, ProjectSettings } from '.';
|
2
|
+
export declare function dev(moduleSettings: ModuleSettings, projectSettings: ProjectSettings): Promise<void>;
|
package/dist/dev.js
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
import path from 'path';
|
2
2
|
import { fileURLToPath } from 'url';
|
3
|
-
export async function dev(
|
4
|
-
console.log('dev', { cwd, arg });
|
3
|
+
export async function dev(moduleSettings, projectSettings) {
|
5
4
|
// Get the directory name of the current module
|
6
5
|
const __filename = fileURLToPath(import.meta.url);
|
7
6
|
const __dirname = path.dirname(__filename);
|
@@ -10,5 +9,5 @@ export async function dev(cwd, arg) {
|
|
10
9
|
// Dynamically import the Gulpfile
|
11
10
|
const gulpfile = await import(`file://${gulpfilePath}`);
|
12
11
|
// Check if 'dev' task exists
|
13
|
-
gulpfile.runTask('dev',
|
12
|
+
gulpfile.runTask('dev', moduleSettings.targetFolder);
|
14
13
|
}
|
package/dist/gulp/backend.d.ts
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
/// <reference types="node" />
|
2
2
|
import { TaskOptions } from '../Gulpfile';
|
3
3
|
export declare function buildBackend(options: TaskOptions): () => NodeJS.ReadWriteStream;
|
4
|
+
export declare function buildBackendLib(options: TaskOptions): () => NodeJS.ReadWriteStream;
|
4
5
|
export declare function buildBackendJSW(options: TaskOptions): () => NodeJS.ReadWriteStream;
|
6
|
+
export declare function buildBackendJSWLib(options: TaskOptions): () => NodeJS.ReadWriteStream;
|
package/dist/gulp/backend.js
CHANGED
@@ -1,8 +1,8 @@
|
|
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';
|
5
|
+
import { blue, red } from '../index.js';
|
6
6
|
export function buildBackend(options) {
|
7
7
|
const { outputDir, enableIncrementalBuild } = options;
|
8
8
|
const gulpEsbuild = createGulpEsbuild({
|
@@ -12,7 +12,7 @@ export function buildBackend(options) {
|
|
12
12
|
return gulp.src([
|
13
13
|
'typescript/backend/**/*.ts',
|
14
14
|
'typescript/backend/**/*.tsx',
|
15
|
-
'!typescript/backend
|
15
|
+
'!typescript/backend/**/*.jsw.ts',
|
16
16
|
'!typescript/backend/**/*.spec.ts',
|
17
17
|
])
|
18
18
|
.pipe(gulpEsbuild({
|
@@ -20,11 +20,36 @@ export function buildBackend(options) {
|
|
20
20
|
}))
|
21
21
|
.pipe(gulp.dest(path.join(outputDir, 'backend')))
|
22
22
|
.on('error', function () {
|
23
|
-
console.log(
|
23
|
+
console.log("💩" + red.underline.bold(' => Build of Backend TS files failed!'));
|
24
24
|
this.emit('end');
|
25
25
|
})
|
26
26
|
.on('end', function () {
|
27
|
-
console.log(
|
27
|
+
console.log("🐶" + blue.underline(' => Build of Backend TS files succeeded!'));
|
28
|
+
});
|
29
|
+
};
|
30
|
+
}
|
31
|
+
export function buildBackendLib(options) {
|
32
|
+
const { outputDir, enableIncrementalBuild } = options;
|
33
|
+
const gulpEsbuild = createGulpEsbuild({
|
34
|
+
incremental: enableIncrementalBuild,
|
35
|
+
});
|
36
|
+
return () => {
|
37
|
+
return gulp.src([
|
38
|
+
'lucy-lib/backend/**/*.ts',
|
39
|
+
'lucy-lib/backend/**/*.tsx',
|
40
|
+
'!lucy-lib/backend/**/*.jsw.ts',
|
41
|
+
'!lucy-lib/backend/**/*.spec.ts',
|
42
|
+
])
|
43
|
+
.pipe(gulpEsbuild({
|
44
|
+
bundle: false,
|
45
|
+
}))
|
46
|
+
.pipe(gulp.dest(path.join(outputDir, 'backend')))
|
47
|
+
.on('error', function () {
|
48
|
+
console.log("💩" + red.underline.bold(' => Build of Backend TS (LIB) files failed!'));
|
49
|
+
this.emit('end');
|
50
|
+
})
|
51
|
+
.on('end', function () {
|
52
|
+
console.log("🐶" + blue.underline(' => Build of Backend TS (LIB) files succeeded!'));
|
28
53
|
});
|
29
54
|
};
|
30
55
|
}
|
@@ -34,16 +59,35 @@ export function buildBackendJSW(options) {
|
|
34
59
|
incremental: enableIncrementalBuild,
|
35
60
|
});
|
36
61
|
return () => {
|
37
|
-
return gulp.src(['typescript/backend/**/*.jsw.ts'
|
62
|
+
return gulp.src(['typescript/backend/**/*.jsw.ts'])
|
63
|
+
.pipe(gulpEsbuild({
|
64
|
+
bundle: false,
|
65
|
+
}))
|
66
|
+
.pipe(rename({ extname: '' }))
|
67
|
+
.pipe(gulp.dest(path.join(outputDir, 'backend')))
|
68
|
+
.on('error', function () {
|
69
|
+
console.log("💩" + red.underline.bold(' => Build of JSW files failed!'));
|
70
|
+
this.emit('end');
|
71
|
+
})
|
72
|
+
.on('end', function () { console.log("🐶" + blue.underline(' => Build of (JSW) files succeeded!')); });
|
73
|
+
};
|
74
|
+
}
|
75
|
+
export function buildBackendJSWLib(options) {
|
76
|
+
const { outputDir, enableIncrementalBuild } = options;
|
77
|
+
const gulpEsbuild = createGulpEsbuild({
|
78
|
+
incremental: enableIncrementalBuild,
|
79
|
+
});
|
80
|
+
return () => {
|
81
|
+
return gulp.src(['lucy-lib/backend/**/*.jsw.ts'])
|
38
82
|
.pipe(gulpEsbuild({
|
39
83
|
bundle: false,
|
40
84
|
}))
|
41
|
-
.pipe(rename({ extname: '
|
85
|
+
.pipe(rename({ extname: '' }))
|
42
86
|
.pipe(gulp.dest(path.join(outputDir, 'backend')))
|
43
87
|
.on('error', function () {
|
44
|
-
console.log(
|
88
|
+
console.log("💩" + red.underline.bold(' => Build of JSW (LIB) files failed!'));
|
45
89
|
this.emit('end');
|
46
90
|
})
|
47
|
-
.on('end', function () { console.log(
|
91
|
+
.on('end', function () { console.log("🐶" + blue.underline(' => Build of JSW (LIB) files succeeded!')); });
|
48
92
|
};
|
49
93
|
}
|
package/dist/gulp/checks.d.ts
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
export declare function checkPages(): Promise<void>;
|
2
|
-
export declare function checkTs(): () => import("gulp-typescript/release/project").ICompileStream;
|
3
|
-
export declare function checkTsLib(): () => import("gulp-typescript/release/project").ICompileStream;
|
1
|
+
export declare function checkPages(fail: boolean): Promise<void>;
|
2
|
+
export declare function checkTs(): () => import("gulp-typescript/release/project.js").ICompileStream;
|
3
|
+
export declare function checkTsLib(): () => import("gulp-typescript/release/project.js").ICompileStream;
|
package/dist/gulp/checks.js
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
|
* Extracts a match from a file
|
9
9
|
* @param {string} filePath File path
|
@@ -70,50 +70,60 @@ function readFilesInFolder(folderPath, pattern, globPattern) {
|
|
70
70
|
});
|
71
71
|
});
|
72
72
|
}
|
73
|
-
export async function checkPages() {
|
74
|
-
console.log(
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
73
|
+
export async function checkPages(fail) {
|
74
|
+
console.log("🐕" + green.underline.bold(' => Checking pages...'));
|
75
|
+
return new Promise(async (resolve, reject) => {
|
76
|
+
try {
|
77
|
+
const sourcePages = await readFilesInFolder('./.wix/types/', '\\/pages\\/(?<page>.*\\.ts)', '**/*.json');
|
78
|
+
const tsPages = await readFilesInFolder('./typescript/pages', null, '**/*.ts');
|
79
|
+
const sourcePagesSet = new Set(sourcePages);
|
80
|
+
const tsPagesSet = new Set(tsPages);
|
81
|
+
const missingInTs = Array.from(sourcePagesSet).filter((item) => !tsPages.includes(item));
|
82
|
+
const obsoleteInTs = Array.from(tsPagesSet).filter((item) => !sourcePages.includes(item));
|
83
|
+
if (missingInTs.length > 0) {
|
84
|
+
console.log("🦴" + yellow.underline.bold(' => Missing in ts folder: '), '\n', missingInTs);
|
85
|
+
}
|
86
|
+
if (obsoleteInTs.length > 0) {
|
87
|
+
console.log("🦴" + yellow.underline.bold(' => Obsolete in ts folder'), '\n', obsoleteInTs);
|
88
|
+
}
|
89
|
+
if (missingInTs.length === 0 || obsoleteInTs.length === 0) {
|
90
|
+
console.log("🐶" + blue.underline.bold(' => Pages are insync!'));
|
91
|
+
}
|
92
|
+
else if (fail) {
|
93
|
+
process.exit(1);
|
94
|
+
}
|
95
|
+
;
|
96
|
+
}
|
97
|
+
catch (error) {
|
98
|
+
reject(error);
|
99
|
+
}
|
100
|
+
});
|
91
101
|
}
|
92
102
|
export function checkTs() {
|
93
|
-
const tsProject = ts.createProject('./
|
103
|
+
const tsProject = ts.createProject('./lucy-lib/tsconfig.json', { noEmit: true });
|
94
104
|
return () => {
|
95
|
-
return gulp.src(['
|
105
|
+
return gulp.src(['lucy-lib/typescript/**/*.ts', '!lucy-lib/typescript/types/**/*.ts'], { cwd: 'typescript' })
|
96
106
|
.pipe(tsProject(ts.reporter.fullReporter()))
|
97
107
|
.on('error', function () {
|
98
|
-
console.log(
|
108
|
+
console.log("💩" + red.underline.bold(' => Typescript error!'));
|
99
109
|
this.emit('end');
|
100
110
|
})
|
101
111
|
.on('end', function () {
|
102
|
-
console.log(
|
112
|
+
console.log("🐶" + blue.underline(' => Typescriptcheck succeeded!'));
|
103
113
|
});
|
104
114
|
};
|
105
115
|
}
|
106
116
|
export function checkTsLib() {
|
107
|
-
const tsProject = ts.createProject('./
|
117
|
+
const tsProject = ts.createProject('./lucy-lib/tsconfig.json', { noEmit: true });
|
108
118
|
return () => {
|
109
|
-
return gulp.src(['
|
119
|
+
return gulp.src(['lucy-lib/typescript/**/*.ts', '!lucy-lib/typescript/types/**/*.ts'], { cwd: 'typescript' })
|
110
120
|
.pipe(tsProject(ts.reporter.fullReporter()))
|
111
121
|
.on('error', function () {
|
112
|
-
console.log(
|
122
|
+
console.log("💩" + red.underline.bold(' => Typescript (LIB) error!'));
|
113
123
|
this.emit('end');
|
114
124
|
})
|
115
125
|
.on('end', function () {
|
116
|
-
console.log(
|
126
|
+
console.log("🐶" + blue.underline(' => Typescript check (LIB) succeeded!'));
|
117
127
|
});
|
118
128
|
};
|
119
129
|
}
|
package/dist/gulp/clean.d.ts
CHANGED
package/dist/gulp/clean.js
CHANGED
@@ -1,14 +1,26 @@
|
|
1
|
-
import chalk from 'chalk';
|
2
1
|
import gulp from 'gulp';
|
3
2
|
import clean from 'gulp-clean';
|
3
|
+
import { blue, red } from '../index.js';
|
4
4
|
export function cleanWix() {
|
5
5
|
return () => {
|
6
6
|
return gulp.src('./.wix', { read: false, allowEmpty: true })
|
7
7
|
.pipe(clean({ force: true }))
|
8
8
|
.on('error', function () {
|
9
|
-
console.log(
|
9
|
+
console.log("💩" + red.underline.bold(' => Cleaning of .wix failed!'));
|
10
10
|
this.emit('end');
|
11
11
|
})
|
12
|
-
.on('end', function () { console.log(
|
12
|
+
.on('end', function () { console.log("🐶" + blue.underline(' => Cleaning of .wix succeeded!')); });
|
13
|
+
};
|
14
|
+
}
|
15
|
+
export function cleanSrc(options) {
|
16
|
+
const { outputDir } = options;
|
17
|
+
return () => {
|
18
|
+
return gulp.src([`${outputDir}/pages`, `${outputDir}/public`, `${outputDir}/backend`], { read: false, allowEmpty: true })
|
19
|
+
.pipe(clean({ force: true }))
|
20
|
+
.on('error', function () {
|
21
|
+
console.log("💩" + red.underline.bold('Cleaning of output files failed!'));
|
22
|
+
this.emit('end');
|
23
|
+
})
|
24
|
+
.on('end', function () { console.log("🐶" + blue.underline(' => Cleaning of .src succeeded!')); });
|
13
25
|
};
|
14
26
|
}
|
package/dist/gulp/copy.d.ts
CHANGED
package/dist/gulp/copy.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import gulp from 'gulp';
|
2
|
-
import
|
2
|
+
import { blue, red } from '../index.js';
|
3
3
|
export function copyFiles(options) {
|
4
4
|
const { outputDir } = options;
|
5
5
|
return () => {
|
@@ -10,13 +10,33 @@ export function copyFiles(options) {
|
|
10
10
|
'!typescript/**/*.tsx',
|
11
11
|
'!typescript/types/**/**',
|
12
12
|
'!typescript/__mocks__/**/**',
|
13
|
-
'!typescript/
|
13
|
+
'!typescript/styles/**',
|
14
14
|
])
|
15
15
|
.pipe(gulp.dest(outputDir))
|
16
16
|
.on('error', function () {
|
17
|
-
console.log(
|
17
|
+
console.log("💩" + red.underline.bold(' => Copy of files failed!'));
|
18
18
|
this.emit('end');
|
19
19
|
})
|
20
|
-
.on('end', function () { console.log(
|
20
|
+
.on('end', function () { console.log("🐶" + blue.underline(' => Copy of files succeeded!')); });
|
21
|
+
};
|
22
|
+
}
|
23
|
+
export function copyFilesLib(options) {
|
24
|
+
const { outputDir } = options;
|
25
|
+
return () => {
|
26
|
+
return gulp.src([
|
27
|
+
'typescript/**/*',
|
28
|
+
'!typescript/*tsconfig.json',
|
29
|
+
'!typescript/**/*.ts',
|
30
|
+
'!typescript/**/*.tsx',
|
31
|
+
'!typescript/types/**/**',
|
32
|
+
'!typescript/__mocks__/**/**',
|
33
|
+
'!typescript/styles/**',
|
34
|
+
])
|
35
|
+
.pipe(gulp.dest(outputDir))
|
36
|
+
.on('error', function () {
|
37
|
+
console.log("💩" + red.underline.bold(' => Copy of files (LIB) failed!'));
|
38
|
+
this.emit('end');
|
39
|
+
})
|
40
|
+
.on('end', function () { console.log("🐶" + blue.underline(' => Copy of files (LIB) succeeded!')); });
|
21
41
|
};
|
22
42
|
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import gulp from 'gulp';
|
2
|
+
import { blue, red } from '../index.js';
|
3
|
+
import typedoc from 'gulp-typedoc';
|
4
|
+
export function generateDocs() {
|
5
|
+
// path.basename(options.cwd)
|
6
|
+
return gulp.src([
|
7
|
+
'typescript/backend/**/*.ts',
|
8
|
+
'typescript/backend/**/*.tsx',
|
9
|
+
'!typescript/backend/**/*.jsw.ts',
|
10
|
+
'!typescript/backend/**/*.spec.ts',
|
11
|
+
])
|
12
|
+
.pipe(typedoc({
|
13
|
+
out: "docs",
|
14
|
+
plugins: [
|
15
|
+
"typedoc-theme-hierarchy"
|
16
|
+
],
|
17
|
+
theme: "hierarchy",
|
18
|
+
name: "wix-development"
|
19
|
+
}))
|
20
|
+
.on('error', function () {
|
21
|
+
console.log("💩" + red.underline.bold(' => Build of Backend TS files failed!'));
|
22
|
+
this.emit('end');
|
23
|
+
})
|
24
|
+
.on('end', function () {
|
25
|
+
console.log("🐶" + blue.underline(' => Build of Backend TS files succeeded!'));
|
26
|
+
});
|
27
|
+
}
|
package/dist/gulp/pages.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import gulp from 'gulp';
|
2
|
-
import chalk from 'chalk';
|
3
2
|
import { createGulpEsbuild } from 'gulp-esbuild';
|
4
3
|
import * as path from 'path';
|
4
|
+
import { blue, red } from '../index.js';
|
5
5
|
export function buildPages(options) {
|
6
6
|
const { outputDir, enableIncrementalBuild } = options;
|
7
7
|
const gulpEsbuild = createGulpEsbuild({
|
@@ -14,9 +14,9 @@ export function buildPages(options) {
|
|
14
14
|
}))
|
15
15
|
.pipe(gulp.dest(path.join(outputDir, 'pages')))
|
16
16
|
.on('error', function () {
|
17
|
-
console.log(
|
17
|
+
console.log("💩" + red.underline.bold(' => Build of Pages TS files failed!'));
|
18
18
|
this.emit('end');
|
19
19
|
})
|
20
|
-
.on('end', function () { console.log(
|
20
|
+
.on('end', function () { console.log("🐶" + blue.underline(' => Build of Pages TS files succeeded!')); });
|
21
21
|
};
|
22
22
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function setProdConfig(): () => any;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import gulp from 'gulp';
|
2
|
+
import * as path from 'path';
|
3
|
+
import replace from 'gulp-string-replace';
|
4
|
+
import { blue, red } from '../index.js';
|
5
|
+
export function setProdConfig() {
|
6
|
+
const droneTag = process.env.DRONE_TAG || 'development';
|
7
|
+
const regexGit = /gitTag:\s*(.*),/g;
|
8
|
+
const regexDev = /devMode:\s*(.*),/g;
|
9
|
+
return () => {
|
10
|
+
return gulp
|
11
|
+
.src(['./typescript/public/constants/config.ts'])
|
12
|
+
.pipe(replace(regexGit, `gitTag: '${droneTag}',`))
|
13
|
+
.pipe(replace(regexDev, `devMode: false,`))
|
14
|
+
.pipe(gulp.dest((file) => {
|
15
|
+
const filePath = file.dirname;
|
16
|
+
const outputDir = path.dirname(filePath);
|
17
|
+
return path.join(`${outputDir}/constants`);
|
18
|
+
}))
|
19
|
+
.on('error', function () {
|
20
|
+
console.log("💩" + red.underline.bold(' => Setting the git tag failed!'));
|
21
|
+
this.emit('end');
|
22
|
+
})
|
23
|
+
.on('end', function () {
|
24
|
+
console.log("🐶" + blue.underline(' => Setting the git tag succeeded!'));
|
25
|
+
});
|
26
|
+
};
|
27
|
+
}
|