lucy-cli 0.9.3 → 0.9.5
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/README.md +1 -1
- package/dist/Gulpfile.js +12 -5
- package/dist/gulp/templates.js +1 -1
- package/dist/gulp/test.js +55 -33
- package/dist/gulp/watchers.js +3 -5
- package/dist/settings.json +10 -6
- package/files/vitest.config.ts +17 -0
- package/package.json +3 -3
- package/src/Gulpfile.ts +8 -3
- package/src/gulp/templates.ts +1 -1
- package/src/gulp/test.ts +58 -34
- package/src/gulp/watchers.ts +1 -4
- package/src/settings.json +10 -6
package/README.md
CHANGED
@@ -44,7 +44,7 @@ Lucy-CLI is designed to streamline the setup and management of TypeScript within
|
|
44
44
|
8. **Wix NPM Package Installation**
|
45
45
|
- Lucy-CLI can install Wix npm packages from the `lucy.json` file in the project directory.
|
46
46
|
|
47
|
-
9. **Teting with
|
47
|
+
9. **Teting with Vitest(Not working)**
|
48
48
|
- Lucy-CLI can run tests with Jest.
|
49
49
|
- It runs tests located backend folder with the file name ending with `.spec.ts`.
|
50
50
|
- it creates a code coverage report in the coverage folder in the lib folders and typescript folders.
|
package/dist/Gulpfile.js
CHANGED
@@ -19,7 +19,6 @@ import { addTypes, updateWixTypes } from './gulp/types.js';
|
|
19
19
|
import { setProdConfig } from './gulp/pipeline.js';
|
20
20
|
import { watchAll } from './gulp/watchers.js';
|
21
21
|
import { green, magenta, orange, red } from './index.js';
|
22
|
-
import { test } from './gulp/test.js';
|
23
22
|
import { getModulesSync } from './gulp/helpers.js';
|
24
23
|
const sass = gulpSass(dartSass);
|
25
24
|
const outputDir = './src';
|
@@ -48,7 +47,11 @@ gulp.task('build-backend', gulp.parallel(buildBackend(taskOptions), buildBackend
|
|
48
47
|
gulp.task('build-public', gulp.parallel(buildPublic(taskOptions)));
|
49
48
|
gulp.task('preview-templates', gulp.parallel(previewTemplates(taskOptions)));
|
50
49
|
gulp.task('copy-files', gulp.parallel(copyFiles(taskOptions)));
|
51
|
-
gulp.task('test', gulp.parallel(
|
50
|
+
gulp.task('test', gulp.parallel(
|
51
|
+
// test(taskOptions),
|
52
|
+
shell.task([
|
53
|
+
'sleep 2; yarn test',
|
54
|
+
])));
|
52
55
|
gulp.task('sync-types', shell.task([
|
53
56
|
'yarn postinstall',
|
54
57
|
]));
|
@@ -64,10 +67,14 @@ gulp.task('gen-docs', shell.task([
|
|
64
67
|
'yarn docs',
|
65
68
|
]));
|
66
69
|
gulp.task('fix-wix', gulp.series(cleanWix(), 'sync-types', 'fix-wixtypes', 'add-wix-types'));
|
67
|
-
gulp.task('build', gulp.parallel('build-backend', 'build-public', buildPages(taskOptions), compileScss(taskOptions), 'copy-files'));
|
68
|
-
gulp.task('build-pipeline', gulp.series(cleanSrc(taskOptions), 'set-production', 'fix-wixtypes', 'add-wix-types',
|
70
|
+
gulp.task('build', gulp.parallel('build-backend', 'build-public', 'preview-templates', buildPages(taskOptions), compileScss(taskOptions), 'copy-files'));
|
71
|
+
gulp.task('build-pipeline', gulp.series(cleanSrc(taskOptions), 'set-production', 'fix-wixtypes', 'add-wix-types',
|
72
|
+
// 'test',
|
73
|
+
'build'));
|
69
74
|
gulp.task('build-prod', gulp.series((done) => checkPages(true, false).then(() => done(), (err) => done(err)), cleanSrc(taskOptions), 'set-production', 'fix-wix', 'build-backend', 'build-public', buildPages(taskOptions), 'copy-files', compileScss(taskOptions), 'gen-docs'));
|
70
|
-
gulp.task('start-dev-env', gulp.parallel(watchAll(taskOptions),
|
75
|
+
gulp.task('start-dev-env', gulp.parallel(watchAll(taskOptions),
|
76
|
+
// 'test',
|
77
|
+
'start-wix', (done) => checkPages(false, taskOptions.moduleSettings?.force ?? false).then(() => done(), (err) => done(err))));
|
71
78
|
gulp.task('dev', gulp.series(cleanSrc(taskOptions), 'fix-wix', 'build', 'start-dev-env'));
|
72
79
|
async function gulpTaskRunner(task) {
|
73
80
|
return new Promise(function (resolve, reject) {
|
package/dist/gulp/templates.js
CHANGED
@@ -19,7 +19,7 @@ export function previewTemplates(options) {
|
|
19
19
|
`${folder}/backend/templates/data/*.json`,
|
20
20
|
`!${folder}/backend/templates/render.ts`,
|
21
21
|
])
|
22
|
-
.pipe(exec((file) => `npx
|
22
|
+
.pipe(exec((file) => `npx tsx --tsconfig ${file.dirname}/../../local.tsconfig.json ${file.path}`, taskOpt))
|
23
23
|
.on('error', function (e) {
|
24
24
|
console.log("💩" + red.underline.bold(` => Render of Template for ${orange(folder)} failed!`));
|
25
25
|
console.log("💩" + red.underline.bold(` => Error: ${orange(e.message)}`));
|
package/dist/gulp/test.js
CHANGED
@@ -2,51 +2,30 @@ import gulp from 'gulp';
|
|
2
2
|
import { blue, orange, red } from '../index.js';
|
3
3
|
import gulpJest from 'gulp-jest';
|
4
4
|
const jest = gulpJest.default;
|
5
|
+
const taskOpt = {
|
6
|
+
continueOnError: true,
|
7
|
+
};
|
5
8
|
export function test(options) {
|
6
9
|
const folders = ['typescript'];
|
7
|
-
if (options.modulesSync)
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
}
|
10
|
+
// if (options.modulesSync){
|
11
|
+
// for (const module of Object.keys(options.modulesSync)) {
|
12
|
+
// folders.push(module);
|
13
|
+
// }
|
14
|
+
// }
|
12
15
|
// Create tasks for each folder
|
13
16
|
const tasks = folders.map((folder) => {
|
14
|
-
const taskName = `tests-${folder}`; // Create a unique name for each task
|
17
|
+
const taskName = `tests-coverage-${folder}`; // Create a unique name for each task
|
15
18
|
const task = () => gulp.src([
|
16
19
|
`${folder}/backend/**/*.spec.ts`,
|
17
20
|
])
|
18
|
-
.pipe(
|
19
|
-
verbose: true,
|
20
|
-
extensionsToTreatAsEsm: ['.ts'],
|
21
|
-
transform: {
|
22
|
-
'^.+\\.tsx?$': [
|
23
|
-
'ts-jest',
|
24
|
-
{
|
25
|
-
tsconfig: `./${folder}/tsconfig.json`,
|
26
|
-
usESM: true,
|
27
|
-
},
|
28
|
-
],
|
29
|
-
},
|
30
|
-
preset: 'ts-jest',
|
31
|
-
setupFilesAfterEnv: [],
|
32
|
-
testEnvironment: 'node',
|
33
|
-
collectCoverage: true,
|
34
|
-
coverageDirectory: './coverage',
|
35
|
-
coverageReporters: ['clover', 'json', 'lcov', 'text'],
|
36
|
-
rootDir: `./${folder}`,
|
37
|
-
testMatch: ['**/*.spec.ts'],
|
38
|
-
passWithNoTests: true,
|
39
|
-
moduleNameMapper: {
|
40
|
-
'public/(.*)': '<rootDir>/public/$1'
|
41
|
-
}
|
42
|
-
}))
|
21
|
+
.pipe(exec((file) => `yarn coverage`, taskOpt))
|
43
22
|
.on('error', function (e) {
|
44
|
-
console.log("💩" + red.underline.bold(` =>
|
23
|
+
console.log("💩" + red.underline.bold(` => Failed to generate coverage for ${orange(folder)} failed!`));
|
45
24
|
console.log("💩" + red.underline.bold(` => Error: ${orange(e.message)}`));
|
46
25
|
this.emit('end');
|
47
26
|
})
|
48
27
|
.on('end', function () {
|
49
|
-
console.log("🐶" + blue.underline(` =>
|
28
|
+
console.log("🐶" + blue.underline(` => Coverage for ${orange(folder)} succeeded!`));
|
50
29
|
});
|
51
30
|
// Register the task with Gulp
|
52
31
|
Object.defineProperty(task, 'name', { value: taskName }); // Set a unique name for debugging
|
@@ -54,4 +33,47 @@ export function test(options) {
|
|
54
33
|
});
|
55
34
|
// Run all tasks in parallel
|
56
35
|
return gulp.parallel(...tasks);
|
36
|
+
// return () => {
|
37
|
+
// return gulp.src([
|
38
|
+
// ...folders.map(folder => `${folder}/backend/**/*.spec.ts`)
|
39
|
+
// ])
|
40
|
+
// .pipe(jest({
|
41
|
+
// verbose: true,
|
42
|
+
// extensionsToTreatAsEsm: ['.ts'],
|
43
|
+
// transform: {
|
44
|
+
// '^.+\\.tsx?$': [
|
45
|
+
// 'ts-jest',
|
46
|
+
// {
|
47
|
+
// tsconfig: `./typescript/tsconfig.json`,
|
48
|
+
// usESM: true,
|
49
|
+
// },
|
50
|
+
// ],
|
51
|
+
// },
|
52
|
+
// preset: 'ts-jest',
|
53
|
+
// setupFilesAfterEnv: [],
|
54
|
+
// testEnvironment: 'node',
|
55
|
+
// collectCoverage: true,
|
56
|
+
// coverageDirectory: './coverage',
|
57
|
+
// coverageReporters: ['clover', 'json', 'lcov', 'text'],
|
58
|
+
// rootDir: `./typescript`,
|
59
|
+
// roots: [`.`],
|
60
|
+
// testMatch: ['**/*.spec.ts'],
|
61
|
+
// passWithNoTests: true,
|
62
|
+
// moduleNameMapper: {
|
63
|
+
// 'public/(.*)': [...folders.map(folder => `${folder}/$1`)],
|
64
|
+
// 'backend/(.*)': [...folders.map(folder => `${folder}/$1`)],
|
65
|
+
// }
|
66
|
+
// }))
|
67
|
+
// .on('error', function (e: Error) {
|
68
|
+
// console.log("💩" + red.underline.bold(` => Tests for failed!`));
|
69
|
+
// console.log("💩" + red.underline.bold(` => Error: ${orange(e.message)}`));
|
70
|
+
// this.emit('end');
|
71
|
+
// })
|
72
|
+
// .on('end', function () {
|
73
|
+
// console.log("🐶" + blue.underline(` => Tests succeeded!`));
|
74
|
+
// });
|
75
|
+
// }
|
76
|
+
}
|
77
|
+
function exec(arg0, taskOpt) {
|
78
|
+
throw new Error('Function not implemented.');
|
57
79
|
}
|
package/dist/gulp/watchers.js
CHANGED
@@ -6,7 +6,6 @@ import { buildPages } from './pages.js';
|
|
6
6
|
import { copyFiles } from './copy.js';
|
7
7
|
import { previewTemplates } from './templates.js';
|
8
8
|
import { checkTs } from './checks.js';
|
9
|
-
import { test } from './test.js';
|
10
9
|
let taskOptions;
|
11
10
|
export function watchSCSS() {
|
12
11
|
return gulp.watch([
|
@@ -17,16 +16,15 @@ export function watchBackend() {
|
|
17
16
|
return gulp.watch([
|
18
17
|
'*/backend/**/*.ts',
|
19
18
|
'*/backend/**/*.tsx',
|
20
|
-
'!*/backend/**/*.spec.ts',
|
21
19
|
'!*/backend/**/*.jsw.ts',
|
22
20
|
'!src/**/**',
|
23
|
-
], gulp.parallel(
|
21
|
+
], gulp.parallel(checkTs(taskOptions), buildBackend(taskOptions)));
|
24
22
|
}
|
25
23
|
export function watchPublic() {
|
26
24
|
return gulp.watch([
|
27
25
|
'*/public/**/*.ts',
|
28
26
|
'*/public/**/*.tsx',
|
29
|
-
], gulp.parallel(
|
27
|
+
], gulp.parallel(checkTs(taskOptions), buildPublic(taskOptions)));
|
30
28
|
}
|
31
29
|
export function watchPages() {
|
32
30
|
return gulp.watch('typescript/pages/**/*.ts', gulp.parallel(checkTs(taskOptions), buildPages(taskOptions)));
|
@@ -45,7 +43,7 @@ export function watchTemplates() {
|
|
45
43
|
'*/backend/templates/**/*.tsx',
|
46
44
|
'*/backend/templates/data/*.json',
|
47
45
|
'!*/backend/templates/render.ts',
|
48
|
-
], gulp.parallel(previewTemplates(taskOptions),
|
46
|
+
], gulp.parallel(previewTemplates(taskOptions), checkTs(taskOptions)));
|
49
47
|
}
|
50
48
|
export function watchTypes() {
|
51
49
|
return gulp.watch([
|
package/dist/settings.json
CHANGED
@@ -13,6 +13,7 @@
|
|
13
13
|
"wixPackages": {},
|
14
14
|
"devPackages": {
|
15
15
|
"@eslint/js": "^9.15.0",
|
16
|
+
"@okee-tech/eslint-plugin-neverthrow": "^1.0.3",
|
16
17
|
"@styled/typescript-styled-plugin": "^1.0.1",
|
17
18
|
"@total-typescript/ts-reset": "^0.6.1",
|
18
19
|
"@types/jest": "^29.5.14",
|
@@ -28,24 +29,27 @@
|
|
28
29
|
"cypress-cloud": "^1.11.0",
|
29
30
|
"esbuild": "^0.24.0",
|
30
31
|
"eslint": "^9.15.0",
|
32
|
+
"eslint-plugin-exception-handling": "^1.5.4",
|
31
33
|
"eslint-plugin-import": "^2.31.0",
|
32
34
|
"eslint-plugin-jsdoc": "^50.5.0",
|
33
35
|
"eslint-plugin-named-import-spacing": "^1.0.3",
|
36
|
+
"eslint-plugin-promise": "^7.2.1",
|
34
37
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
35
|
-
"jest": "^29.7.0",
|
36
38
|
"prettier": "^3.3.3",
|
37
39
|
"react": "^18.3.1",
|
38
40
|
"sass": "^1.81.0",
|
39
|
-
"ts-jest": "^29.2.5",
|
40
41
|
"ts-node": "^10.9.2",
|
41
42
|
"tsx": "^4.19.2",
|
42
|
-
"typedoc": "
|
43
|
+
"typedoc": "0.27.1",
|
43
44
|
"typedoc-plugin-merge-modules": "^6.0.3",
|
44
45
|
"typedoc-plugin-zod": "^1.3.0",
|
45
46
|
"typedoc-theme-hierarchy": "^5.0.3",
|
46
47
|
"typescript": "5.6.3",
|
47
48
|
"typescript-eslint": "^8.15.0",
|
48
|
-
"typescript-eslint-language-service": "^5.0.5"
|
49
|
+
"typescript-eslint-language-service": "^5.0.5",
|
50
|
+
"vitest": "^2.1.8",
|
51
|
+
"vitest-tsconfig-paths": "^3.4.1",
|
52
|
+
"vite-tsconfig-paths": "^5.1.4"
|
49
53
|
},
|
50
54
|
"scripts": {
|
51
55
|
"postinstall": "wix sync-types",
|
@@ -56,8 +60,8 @@
|
|
56
60
|
"build": "lucy-cli build-prod",
|
57
61
|
"fix-wix": "lucy-cli fix-wix",
|
58
62
|
"tsc": "tsc -p ./typescript/tsconfig.json --noEmit",
|
59
|
-
"test": "
|
60
|
-
"
|
63
|
+
"test": "vitest --ui",
|
64
|
+
"coverage": "vitest run --coverage",
|
61
65
|
"cypress": "cypress open",
|
62
66
|
"e2e": "cypress-cloud run --parallel --record"
|
63
67
|
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
2
|
+
import tsconfigPaths from 'vite-tsconfig-paths';
|
3
|
+
import { defineConfig } from 'vitest/config';
|
4
|
+
|
5
|
+
export default defineConfig({
|
6
|
+
plugins: [tsconfigPaths({
|
7
|
+
projects: ['./typescript/tsconfig.json'],
|
8
|
+
})],
|
9
|
+
test: {
|
10
|
+
coverage: {
|
11
|
+
provider: 'v8',
|
12
|
+
reporter: ['text', 'json', 'html'],
|
13
|
+
reportsDirectory: './coverage',
|
14
|
+
exclude: ['**/node_modules/**', 'src/**', '.wix/**'],
|
15
|
+
},
|
16
|
+
},
|
17
|
+
});
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"type": "module",
|
3
3
|
"name": "lucy-cli",
|
4
|
-
"version": "0.9.
|
4
|
+
"version": "0.9.5",
|
5
5
|
"description": "Lucy Framework for WIX Studio Editor",
|
6
6
|
"main": ".dist/index.js",
|
7
7
|
"scripts": {
|
@@ -68,8 +68,8 @@
|
|
68
68
|
"ts-node": "^10.9.1",
|
69
69
|
"typedoc": "0.26.11",
|
70
70
|
"typedoc-theme-hierarchy": "5.0.3",
|
71
|
-
"
|
72
|
-
"
|
71
|
+
"typescript": "^5.6.3",
|
72
|
+
"velo-sync": "^0.0.9"
|
73
73
|
},
|
74
74
|
"devDependencies": {
|
75
75
|
"@types/fs-extra": "^11.0.4",
|
package/src/Gulpfile.ts
CHANGED
@@ -96,9 +96,13 @@ gulp.task('copy-files', gulp.parallel(
|
|
96
96
|
));
|
97
97
|
|
98
98
|
gulp.task('test', gulp.parallel(
|
99
|
-
test(taskOptions),
|
99
|
+
// test(taskOptions),
|
100
|
+
shell.task([
|
101
|
+
'sleep 2; yarn test',
|
102
|
+
])
|
100
103
|
));
|
101
104
|
|
105
|
+
|
102
106
|
gulp.task('sync-types', shell.task([
|
103
107
|
'yarn postinstall',
|
104
108
|
]));
|
@@ -133,6 +137,7 @@ gulp.task('fix-wix', gulp.series(
|
|
133
137
|
gulp.task('build', gulp.parallel(
|
134
138
|
'build-backend',
|
135
139
|
'build-public',
|
140
|
+
'preview-templates',
|
136
141
|
buildPages(taskOptions),
|
137
142
|
compileScss(taskOptions),
|
138
143
|
'copy-files'
|
@@ -144,7 +149,7 @@ gulp.task('build-pipeline', gulp.series(
|
|
144
149
|
'set-production',
|
145
150
|
'fix-wixtypes',
|
146
151
|
'add-wix-types',
|
147
|
-
'test',
|
152
|
+
// 'test',
|
148
153
|
'build',
|
149
154
|
));
|
150
155
|
|
@@ -164,7 +169,7 @@ gulp.task('build-prod', gulp.series(
|
|
164
169
|
|
165
170
|
gulp.task('start-dev-env', gulp.parallel(
|
166
171
|
watchAll(taskOptions),
|
167
|
-
'test',
|
172
|
+
// 'test',
|
168
173
|
'start-wix',
|
169
174
|
(done) => checkPages(false, taskOptions.moduleSettings?.force ?? false).then(() => done(), (err) => done(err)),
|
170
175
|
));
|
package/src/gulp/templates.ts
CHANGED
@@ -24,7 +24,7 @@ export function previewTemplates(options: TaskOptions) {
|
|
24
24
|
`${folder}/backend/templates/data/*.json`,
|
25
25
|
`!${folder}/backend/templates/render.ts`,
|
26
26
|
])
|
27
|
-
.pipe(exec((file: File) => `npx
|
27
|
+
.pipe(exec((file: File) => `npx tsx --tsconfig ${file.dirname}/../../local.tsconfig.json ${file.path}`, taskOpt))
|
28
28
|
.on('error', function (e: Error) {
|
29
29
|
console.log("💩" + red.underline.bold(` => Render of Template for ${orange(folder)} failed!`));
|
30
30
|
console.log("💩" + red.underline.bold(` => Error: ${orange(e.message)}`));
|
package/src/gulp/test.ts
CHANGED
@@ -4,53 +4,32 @@ import gulpJest from 'gulp-jest';
|
|
4
4
|
import { TaskOptions } from '../Gulpfile.js';
|
5
5
|
const jest = gulpJest.default;
|
6
6
|
|
7
|
+
const taskOpt = {
|
8
|
+
continueOnError: true,
|
9
|
+
};
|
7
10
|
export function test(options: TaskOptions) {
|
8
11
|
const folders = ['typescript'];
|
9
|
-
if (options.modulesSync){
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
}
|
12
|
+
// if (options.modulesSync){
|
13
|
+
// for (const module of Object.keys(options.modulesSync)) {
|
14
|
+
// folders.push(module);
|
15
|
+
// }
|
16
|
+
// }
|
14
17
|
|
15
18
|
// Create tasks for each folder
|
16
19
|
const tasks = folders.map((folder) => {
|
17
|
-
const taskName = `tests-${folder}`; // Create a unique name for each task
|
20
|
+
const taskName = `tests-coverage-${folder}`; // Create a unique name for each task
|
18
21
|
const task = () =>
|
19
22
|
gulp.src([
|
20
23
|
`${folder}/backend/**/*.spec.ts`,
|
21
24
|
])
|
22
|
-
.pipe(
|
23
|
-
verbose: true,
|
24
|
-
extensionsToTreatAsEsm: ['.ts'],
|
25
|
-
transform: {
|
26
|
-
'^.+\\.tsx?$': [
|
27
|
-
'ts-jest',
|
28
|
-
{
|
29
|
-
tsconfig: `./${folder}/tsconfig.json`,
|
30
|
-
usESM: true,
|
31
|
-
},
|
32
|
-
],
|
33
|
-
},
|
34
|
-
preset: 'ts-jest',
|
35
|
-
setupFilesAfterEnv: [],
|
36
|
-
testEnvironment: 'node',
|
37
|
-
collectCoverage: true,
|
38
|
-
coverageDirectory: './coverage',
|
39
|
-
coverageReporters: ['clover', 'json', 'lcov', 'text'],
|
40
|
-
rootDir: `./${folder}`,
|
41
|
-
testMatch: ['**/*.spec.ts'],
|
42
|
-
passWithNoTests: true,
|
43
|
-
moduleNameMapper: {
|
44
|
-
'public/(.*)': '<rootDir>/public/$1'
|
45
|
-
}
|
46
|
-
}))
|
25
|
+
.pipe(exec((file: File) => `yarn coverage`, taskOpt))
|
47
26
|
.on('error', function (e: Error) {
|
48
|
-
console.log("💩" + red.underline.bold(` =>
|
27
|
+
console.log("💩" + red.underline.bold(` => Failed to generate coverage for ${orange(folder)} failed!`));
|
49
28
|
console.log("💩" + red.underline.bold(` => Error: ${orange(e.message)}`));
|
50
29
|
this.emit('end');
|
51
30
|
})
|
52
31
|
.on('end', function () {
|
53
|
-
console.log("🐶" + blue.underline(` =>
|
32
|
+
console.log("🐶" + blue.underline(` => Coverage for ${orange(folder)} succeeded!`));
|
54
33
|
});
|
55
34
|
|
56
35
|
// Register the task with Gulp
|
@@ -60,4 +39,49 @@ export function test(options: TaskOptions) {
|
|
60
39
|
|
61
40
|
// Run all tasks in parallel
|
62
41
|
return gulp.parallel(...tasks);
|
63
|
-
|
42
|
+
|
43
|
+
// return () => {
|
44
|
+
// return gulp.src([
|
45
|
+
// ...folders.map(folder => `${folder}/backend/**/*.spec.ts`)
|
46
|
+
// ])
|
47
|
+
// .pipe(jest({
|
48
|
+
// verbose: true,
|
49
|
+
// extensionsToTreatAsEsm: ['.ts'],
|
50
|
+
// transform: {
|
51
|
+
// '^.+\\.tsx?$': [
|
52
|
+
// 'ts-jest',
|
53
|
+
// {
|
54
|
+
// tsconfig: `./typescript/tsconfig.json`,
|
55
|
+
// usESM: true,
|
56
|
+
// },
|
57
|
+
// ],
|
58
|
+
// },
|
59
|
+
// preset: 'ts-jest',
|
60
|
+
// setupFilesAfterEnv: [],
|
61
|
+
// testEnvironment: 'node',
|
62
|
+
// collectCoverage: true,
|
63
|
+
// coverageDirectory: './coverage',
|
64
|
+
// coverageReporters: ['clover', 'json', 'lcov', 'text'],
|
65
|
+
// rootDir: `./typescript`,
|
66
|
+
// roots: [`.`],
|
67
|
+
// testMatch: ['**/*.spec.ts'],
|
68
|
+
// passWithNoTests: true,
|
69
|
+
// moduleNameMapper: {
|
70
|
+
// 'public/(.*)': [...folders.map(folder => `${folder}/$1`)],
|
71
|
+
// 'backend/(.*)': [...folders.map(folder => `${folder}/$1`)],
|
72
|
+
// }
|
73
|
+
// }))
|
74
|
+
// .on('error', function (e: Error) {
|
75
|
+
// console.log("💩" + red.underline.bold(` => Tests for failed!`));
|
76
|
+
// console.log("💩" + red.underline.bold(` => Error: ${orange(e.message)}`));
|
77
|
+
// this.emit('end');
|
78
|
+
// })
|
79
|
+
// .on('end', function () {
|
80
|
+
// console.log("🐶" + blue.underline(` => Tests succeeded!`));
|
81
|
+
// });
|
82
|
+
// }
|
83
|
+
}
|
84
|
+
|
85
|
+
function exec(arg0: (file: File) => string, taskOpt: { continueOnError: boolean; }): any {
|
86
|
+
throw new Error('Function not implemented.');
|
87
|
+
}
|
package/src/gulp/watchers.ts
CHANGED
@@ -8,6 +8,7 @@ import { copyFiles } from './copy.js';
|
|
8
8
|
import { previewTemplates } from './templates.js';
|
9
9
|
import { checkPages, checkTs } from './checks.js';
|
10
10
|
import { test } from './test.js';
|
11
|
+
import shell from 'gulp-shell';
|
11
12
|
|
12
13
|
let taskOptions: TaskOptions;
|
13
14
|
|
@@ -23,11 +24,9 @@ export function watchBackend() {
|
|
23
24
|
return gulp.watch([
|
24
25
|
'*/backend/**/*.ts',
|
25
26
|
'*/backend/**/*.tsx',
|
26
|
-
'!*/backend/**/*.spec.ts',
|
27
27
|
'!*/backend/**/*.jsw.ts',
|
28
28
|
'!src/**/**',
|
29
29
|
], gulp.parallel(
|
30
|
-
test(taskOptions),
|
31
30
|
checkTs(taskOptions),
|
32
31
|
buildBackend(taskOptions),
|
33
32
|
)
|
@@ -39,7 +38,6 @@ export function watchPublic() {
|
|
39
38
|
'*/public/**/*.ts',
|
40
39
|
'*/public/**/*.tsx',
|
41
40
|
], gulp.parallel(
|
42
|
-
test(taskOptions),
|
43
41
|
checkTs(taskOptions),
|
44
42
|
buildPublic(taskOptions),
|
45
43
|
)
|
@@ -72,7 +70,6 @@ export function watchTemplates() {
|
|
72
70
|
'!*/backend/templates/render.ts',
|
73
71
|
], gulp.parallel(
|
74
72
|
previewTemplates(taskOptions),
|
75
|
-
test(taskOptions),
|
76
73
|
checkTs(taskOptions),
|
77
74
|
)
|
78
75
|
);
|
package/src/settings.json
CHANGED
@@ -13,6 +13,7 @@
|
|
13
13
|
"wixPackages": {},
|
14
14
|
"devPackages": {
|
15
15
|
"@eslint/js": "^9.15.0",
|
16
|
+
"@okee-tech/eslint-plugin-neverthrow": "^1.0.3",
|
16
17
|
"@styled/typescript-styled-plugin": "^1.0.1",
|
17
18
|
"@total-typescript/ts-reset": "^0.6.1",
|
18
19
|
"@types/jest": "^29.5.14",
|
@@ -28,24 +29,27 @@
|
|
28
29
|
"cypress-cloud": "^1.11.0",
|
29
30
|
"esbuild": "^0.24.0",
|
30
31
|
"eslint": "^9.15.0",
|
32
|
+
"eslint-plugin-exception-handling": "^1.5.4",
|
31
33
|
"eslint-plugin-import": "^2.31.0",
|
32
34
|
"eslint-plugin-jsdoc": "^50.5.0",
|
33
35
|
"eslint-plugin-named-import-spacing": "^1.0.3",
|
36
|
+
"eslint-plugin-promise": "^7.2.1",
|
34
37
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
35
|
-
"jest": "^29.7.0",
|
36
38
|
"prettier": "^3.3.3",
|
37
39
|
"react": "^18.3.1",
|
38
40
|
"sass": "^1.81.0",
|
39
|
-
"ts-jest": "^29.2.5",
|
40
41
|
"ts-node": "^10.9.2",
|
41
42
|
"tsx": "^4.19.2",
|
42
|
-
"typedoc": "
|
43
|
+
"typedoc": "0.27.1",
|
43
44
|
"typedoc-plugin-merge-modules": "^6.0.3",
|
44
45
|
"typedoc-plugin-zod": "^1.3.0",
|
45
46
|
"typedoc-theme-hierarchy": "^5.0.3",
|
46
47
|
"typescript": "5.6.3",
|
47
48
|
"typescript-eslint": "^8.15.0",
|
48
|
-
"typescript-eslint-language-service": "^5.0.5"
|
49
|
+
"typescript-eslint-language-service": "^5.0.5",
|
50
|
+
"vitest": "^2.1.8",
|
51
|
+
"vitest-tsconfig-paths": "^3.4.1",
|
52
|
+
"vite-tsconfig-paths": "^5.1.4"
|
49
53
|
},
|
50
54
|
"scripts": {
|
51
55
|
"postinstall": "wix sync-types",
|
@@ -56,8 +60,8 @@
|
|
56
60
|
"build": "lucy-cli build-prod",
|
57
61
|
"fix-wix": "lucy-cli fix-wix",
|
58
62
|
"tsc": "tsc -p ./typescript/tsconfig.json --noEmit",
|
59
|
-
"test": "
|
60
|
-
"
|
63
|
+
"test": "vitest --ui",
|
64
|
+
"coverage": "vitest run --coverage",
|
61
65
|
"cypress": "cypress open",
|
62
66
|
"e2e": "cypress-cloud run --parallel --record"
|
63
67
|
}
|