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/.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
|
+
}
|