@nest-yalc-2/jest-config 2.2.0 → 2.2.1

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.
Files changed (90) hide show
  1. package/LICENSE +661 -0
  2. package/package.json +19 -10
  3. package/src/CHANGELOG.md +8 -0
  4. package/src/README.md +31 -0
  5. package/src/config/CHANGELOG.md +8 -0
  6. package/src/config/README.md +31 -0
  7. package/src/config/gql-plugin.js +25 -0
  8. package/src/config/index.d.ts +2 -0
  9. package/src/config/index.js +6 -0
  10. package/src/config/index.js.map +1 -0
  11. package/src/config/index.ts +2 -0
  12. package/src/config/jest-conf.generator.d.ts +53 -0
  13. package/src/config/jest-conf.generator.js +193 -0
  14. package/src/config/jest-conf.generator.js.map +1 -0
  15. package/src/config/jest-conf.generator.ts +368 -0
  16. package/src/config/jest-def.config.d.ts +20 -0
  17. package/src/config/jest-def.config.js +145 -0
  18. package/src/config/jest-def.config.js.map +1 -0
  19. package/src/config/jest-def.config.ts +214 -0
  20. package/src/config/jest.setup.d.ts +1 -0
  21. package/src/config/jest.setup.js +10 -0
  22. package/src/config/jest.setup.js.map +1 -0
  23. package/src/config/jest.setup.ts +39 -0
  24. package/src/config/package.json +22 -0
  25. package/src/config/tsconfig.dev.json +3 -0
  26. package/src/config/tsconfig.json +9 -0
  27. package/src/gql-plugin.js +25 -0
  28. package/src/index.d.ts +2 -0
  29. package/src/index.js +6 -0
  30. package/src/index.js.map +1 -0
  31. package/src/index.ts +2 -0
  32. package/src/jest-conf.generator.d.ts +53 -0
  33. package/src/jest-conf.generator.js +193 -0
  34. package/src/jest-conf.generator.js.map +1 -0
  35. package/src/jest-conf.generator.ts +363 -0
  36. package/src/jest-def.config.d.ts +20 -0
  37. package/src/jest-def.config.js +151 -0
  38. package/src/jest-def.config.js.map +1 -0
  39. package/src/jest-def.config.ts +220 -0
  40. package/src/jest.setup.d.ts +1 -0
  41. package/src/jest.setup.js +26 -0
  42. package/src/jest.setup.js.map +1 -0
  43. package/src/jest.setup.ts +58 -0
  44. package/src/package.json +22 -0
  45. package/src/src/CHANGELOG.md +8 -0
  46. package/src/src/README.md +31 -0
  47. package/src/src/config/CHANGELOG.md +8 -0
  48. package/src/src/config/README.md +31 -0
  49. package/src/src/config/gql-plugin.js +25 -0
  50. package/src/src/config/index.d.ts +2 -0
  51. package/src/src/config/index.js +6 -0
  52. package/src/src/config/index.js.map +1 -0
  53. package/src/src/config/index.ts +2 -0
  54. package/src/src/config/jest-conf.generator.d.ts +53 -0
  55. package/src/src/config/jest-conf.generator.js +193 -0
  56. package/src/src/config/jest-conf.generator.js.map +1 -0
  57. package/src/src/config/jest-conf.generator.ts +368 -0
  58. package/src/src/config/jest-def.config.d.ts +20 -0
  59. package/src/src/config/jest-def.config.js +145 -0
  60. package/src/src/config/jest-def.config.js.map +1 -0
  61. package/src/src/config/jest-def.config.ts +214 -0
  62. package/src/src/config/jest.setup.d.ts +1 -0
  63. package/src/src/config/jest.setup.js +10 -0
  64. package/src/src/config/jest.setup.js.map +1 -0
  65. package/src/src/config/jest.setup.ts +39 -0
  66. package/src/src/config/package.json +22 -0
  67. package/src/src/config/tsconfig.dev.json +3 -0
  68. package/src/src/config/tsconfig.json +9 -0
  69. package/src/src/gql-plugin.js +25 -0
  70. package/src/src/index.d.ts +2 -0
  71. package/src/src/index.js +6 -0
  72. package/src/src/index.js.map +1 -0
  73. package/src/src/index.ts +2 -0
  74. package/src/src/jest-conf.generator.d.ts +53 -0
  75. package/src/src/jest-conf.generator.js +193 -0
  76. package/src/src/jest-conf.generator.js.map +1 -0
  77. package/src/src/jest-conf.generator.ts +363 -0
  78. package/src/src/jest-def.config.d.ts +20 -0
  79. package/src/src/jest-def.config.js +151 -0
  80. package/src/src/jest-def.config.js.map +1 -0
  81. package/src/src/jest-def.config.ts +220 -0
  82. package/src/src/jest.setup.d.ts +1 -0
  83. package/src/src/jest.setup.js +26 -0
  84. package/src/src/jest.setup.js.map +1 -0
  85. package/src/src/jest.setup.ts +58 -0
  86. package/src/src/package.json +22 -0
  87. package/src/src/tsconfig.dev.json +3 -0
  88. package/src/src/tsconfig.json +9 -0
  89. package/src/tsconfig.dev.json +3 -0
  90. package/src/tsconfig.json +9 -0
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.coverageThreshold = exports.tsJestConfig = exports.tsJestConfigE2E = exports.globals = exports.coveragePathIgnorePatterns = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const path = tslib_1.__importStar(require("path"));
6
+ const readTsConfig = tslib_1.__importStar(require("get-tsconfig"));
7
+ const ts_jest_1 = require("ts-jest");
8
+ const jest_config_1 = require("jest-config");
9
+ exports.coveragePathIgnorePatterns = [
10
+ '/env/dist/',
11
+ '/node_modules/',
12
+ '/database/seeds/',
13
+ '/database/migrations/',
14
+ '/test/feature/',
15
+ ];
16
+ const globals = () => {
17
+ return {
18
+ __JEST_DISABLE_DB: true,
19
+ };
20
+ };
21
+ exports.globals = globals;
22
+ const tsJestConfigE2E = (tsConfPath = '', withGqlPlugin = true, overrideTsJestConfig) => {
23
+ const tsConfigFile = readTsConfig.getTsconfig(path.resolve(tsConfPath));
24
+ const { tsconfig, ...restTsJest } = overrideTsJestConfig ?? {};
25
+ const conf = {
26
+ diagnostics: false,
27
+ tsconfig: {
28
+ ...(tsConfigFile?.config.compilerOptions ?? {}),
29
+ ...(tsconfig ?? {}),
30
+ },
31
+ ...restTsJest,
32
+ };
33
+ if (withGqlPlugin) {
34
+ conf.astTransformers = {
35
+ before: [path.join(__dirname, 'gql-plugin.js')],
36
+ };
37
+ }
38
+ return conf;
39
+ };
40
+ exports.tsJestConfigE2E = tsJestConfigE2E;
41
+ const tsJestConfig = (tsConfPath = '', overrideTsJestConfig) => {
42
+ const tsConfigFile = readTsConfig.getTsconfig(path.resolve(path.dirname(tsConfPath)), path.basename(tsConfPath));
43
+ if (tsConfigFile?.path !== tsConfPath) {
44
+ throw new Error(`Cannot find ${tsConfPath}`);
45
+ }
46
+ const { tsconfig, ...restTsJest } = overrideTsJestConfig ?? {};
47
+ const config = {
48
+ tsconfig: {
49
+ ...(tsConfigFile?.config.compilerOptions ?? {}),
50
+ ...(tsconfig ?? {}),
51
+ },
52
+ diagnostics: false,
53
+ ...restTsJest,
54
+ };
55
+ return config;
56
+ };
57
+ exports.tsJestConfig = tsJestConfig;
58
+ const coverageThreshold = (projects = [], defaultCoverageThreshold = {
59
+ branches: 100,
60
+ functions: 100,
61
+ lines: 100,
62
+ statements: 100,
63
+ }) => {
64
+ const coverage = {
65
+ global: {
66
+ ...defaultCoverageThreshold,
67
+ },
68
+ };
69
+ projects.map((project) => {
70
+ coverage[project.rootDir] = {
71
+ ...defaultCoverageThreshold,
72
+ };
73
+ if (project?.coverageThreshold) {
74
+ coverage[project.rootDir] = {
75
+ ...coverage[project.rootDir],
76
+ ...project?.coverageThreshold,
77
+ };
78
+ }
79
+ });
80
+ return coverage;
81
+ };
82
+ exports.coverageThreshold = coverageThreshold;
83
+ const defaultConf = (dirname, options = {}, tsJestConfig = {}) => {
84
+ const tsConfigFile = readTsConfig.getTsconfig(path.join(dirname, 'tsconfig.json'));
85
+ const compilerOptions = tsConfigFile?.config.compilerOptions ?? {};
86
+ const config = {
87
+ rootDir: dirname,
88
+ modulePathIgnorePatterns: [
89
+ '<rootDir>/var/',
90
+ '<rootDir>/env/',
91
+ '<rootDir>/docs/',
92
+ '<rootDir>/dist/',
93
+ '<rootDir>/../dist/',
94
+ '<rootDir>/node_modules/',
95
+ '.*/dist/',
96
+ ],
97
+ preset: 'ts-jest/presets/default-esm',
98
+ testEnvironment: 'node',
99
+ moduleFileExtensions: [...jest_config_1.defaults.moduleFileExtensions, 'ts'],
100
+ testRegex: '.*\\.spec\\.ts$',
101
+ transform: {
102
+ '^.+\\.(t|j)sx?$': [
103
+ 'ts-jest',
104
+ {
105
+ useESM: true,
106
+ ...tsJestConfig,
107
+ },
108
+ ],
109
+ },
110
+ moduleNameMapper: {
111
+ 'source-map-support/register': 'identity-obj-proxy',
112
+ '^(@nest-yalc-2/.*|@node-yalc/.*|\\.{1,2}/.*)\\.js$': [
113
+ '$1.ts',
114
+ '$1/index.ts',
115
+ '$1.js',
116
+ '$1',
117
+ ],
118
+ ...(0, ts_jest_1.pathsToModuleNameMapper)(compilerOptions.paths ?? {}, {
119
+ prefix: `${dirname}/`,
120
+ useESM: true,
121
+ }),
122
+ },
123
+ errorOnDeprecated: true,
124
+ extensionsToTreatAsEsm: ['.ts'],
125
+ ...options?.jestConf,
126
+ };
127
+ if (options.transformEsModules) {
128
+ const esModules = [
129
+ ...(Array.isArray(options.transformEsModules)
130
+ ? options.transformEsModules
131
+ : []),
132
+ 'aggregate-error',
133
+ 'clean-stack',
134
+ 'escape-string-regexp',
135
+ 'indent-string',
136
+ 'p-map',
137
+ ].join('|');
138
+ config.transformIgnorePatterns = [
139
+ `[/\\\\]node_modules[/\\\\](?!${esModules}).+\\.(js|jsx|ts|tsx)$`,
140
+ ];
141
+ }
142
+ return config;
143
+ };
144
+ exports.default = defaultConf;
145
+ //# sourceMappingURL=jest-def.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest-def.config.js","sourceRoot":"","sources":["jest-def.config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ /* istanbul ignore file */
2
+
3
+ import * as path from 'path';
4
+ import * as readTsConfig from 'get-tsconfig';
5
+ import { pathsToModuleNameMapper } from 'ts-jest';
6
+ import { defaults } from 'jest-config';
7
+ import type { JestConfigWithTsJest } from 'ts-jest';
8
+
9
+ export const coveragePathIgnorePatterns = [
10
+ '/env/dist/',
11
+ '/node_modules/',
12
+ '/database/seeds/',
13
+ '/database/migrations/',
14
+ '/test/feature/',
15
+ ];
16
+
17
+ export const globals = () => {
18
+ return {
19
+ __JEST_DISABLE_DB: true,
20
+ };
21
+ };
22
+
23
+ export const tsJestConfigE2E = (
24
+ tsConfPath = '',
25
+ withGqlPlugin = true,
26
+ overrideTsJestConfig?: any,
27
+ ) => {
28
+ const tsConfigFile = readTsConfig.getTsconfig(path.resolve(tsConfPath));
29
+ const { tsconfig, ...restTsJest } = overrideTsJestConfig ?? {};
30
+
31
+ const conf: any = {
32
+ diagnostics: false,
33
+ tsconfig: {
34
+ ...(tsConfigFile?.config.compilerOptions ?? {}),
35
+ ...(tsconfig ?? {}),
36
+ },
37
+ ...restTsJest,
38
+ };
39
+
40
+ if (withGqlPlugin) {
41
+ conf.astTransformers = {
42
+ before: [path.join(__dirname, 'gql-plugin.js')],
43
+ };
44
+ }
45
+
46
+ return conf;
47
+ };
48
+
49
+ export const tsJestConfig = (tsConfPath = '', overrideTsJestConfig?: any) => {
50
+ const tsConfigFile = readTsConfig.getTsconfig(
51
+ path.resolve(path.dirname(tsConfPath)),
52
+ path.basename(tsConfPath),
53
+ );
54
+
55
+ if (tsConfigFile?.path !== tsConfPath) {
56
+ throw new Error(`Cannot find ${tsConfPath}`);
57
+ }
58
+
59
+ const { tsconfig, ...restTsJest } = overrideTsJestConfig ?? {};
60
+
61
+ const config = {
62
+ tsconfig: {
63
+ ...(tsConfigFile?.config.compilerOptions ?? {}),
64
+ ...(tsconfig ?? {}),
65
+ },
66
+ diagnostics: false,
67
+ ...restTsJest,
68
+ };
69
+
70
+ return config;
71
+ };
72
+
73
+ export const coverageThreshold = (
74
+ projects: any[] = [],
75
+ defaultCoverageThreshold = {
76
+ branches: 100,
77
+ functions: 100,
78
+ lines: 100,
79
+ statements: 100,
80
+ },
81
+ ) => {
82
+ const coverage: Record<string, any> = {
83
+ global: {
84
+ ...defaultCoverageThreshold,
85
+ },
86
+ };
87
+
88
+ projects.map((project) => {
89
+ // /**
90
+ // * @todo should be removed and be set to 100% asap
91
+ // */
92
+ // switch (project.name) {
93
+ // case 'unit/common/crud-gen':
94
+ // branches = 92.27;
95
+ // functions = 98.92;
96
+ // lines = 98.75;
97
+ // statements = 98.5;
98
+ // break;
99
+ // default:
100
+ // branches = 100;
101
+ // break;
102
+ // }
103
+
104
+ coverage[project.rootDir] = {
105
+ ...defaultCoverageThreshold,
106
+ };
107
+
108
+ if (project?.coverageThreshold) {
109
+ coverage[project.rootDir] = {
110
+ ...coverage[project.rootDir],
111
+ ...project?.coverageThreshold,
112
+ };
113
+ }
114
+ });
115
+
116
+ return coverage;
117
+ };
118
+
119
+ export interface IDefaultConfOptions {
120
+ /** node modules to transform
121
+ * string array -> add extra esmodule to transform
122
+ * true -> transform esmodule only using the default array
123
+ * false -> disable esmodule transformation (default)
124
+ */
125
+ transformEsModules?: string[] | boolean;
126
+ tsJestConf?: any;
127
+ jestConf?: any;
128
+ }
129
+
130
+ /**
131
+ * for both unit and e2e
132
+ * @param dirname
133
+ * @returns
134
+ */
135
+ const defaultConf = (
136
+ dirname: string,
137
+ options: IDefaultConfOptions = {},
138
+ tsJestConfig: any = {},
139
+ ): JestConfigWithTsJest => {
140
+ const tsConfigFile = readTsConfig.getTsconfig(
141
+ path.join(dirname, 'tsconfig.json'),
142
+ );
143
+ const compilerOptions = tsConfigFile?.config.compilerOptions ?? {};
144
+
145
+ // We need this to make sure that some esm modules are transformed
146
+ // ref: https://github.com/nrwl/nx/issues/812
147
+ // ref: https://github.com/jaredpalmer/tsdx/issues/187#issuecomment-825536863
148
+
149
+ const config: JestConfigWithTsJest = {
150
+ rootDir: dirname,
151
+ modulePathIgnorePatterns: [
152
+ '<rootDir>/var/',
153
+ '<rootDir>/env/',
154
+ '<rootDir>/docs/',
155
+ '<rootDir>/dist/',
156
+ '<rootDir>/../dist/',
157
+ '<rootDir>/node_modules/',
158
+ '.*/dist/',
159
+ ],
160
+ preset: 'ts-jest/presets/default-esm',
161
+ testEnvironment: 'node',
162
+ moduleFileExtensions: [...defaults.moduleFileExtensions, 'ts'], // add typescript to the default options
163
+ testRegex: '.*\\.spec\\.ts$',
164
+ transform: {
165
+ '^.+\\.(t|j)sx?$': [
166
+ 'ts-jest',
167
+ {
168
+ useESM: true,
169
+ ...tsJestConfig,
170
+ },
171
+ ],
172
+ },
173
+ moduleNameMapper: {
174
+ // this fixes the issue with wrong line numbers in stack traces,
175
+ /** @see https://github.com/kulshekhar/ts-jest/issues/727 */
176
+ 'source-map-support/register': 'identity-obj-proxy',
177
+ '^(@nest-yalc-2/.*|@node-yalc/.*|\\.{1,2}/.*)\\.js$': [
178
+ '$1.ts',
179
+ '$1/index.ts',
180
+ '$1.js',
181
+ '$1',
182
+ ],
183
+ ...pathsToModuleNameMapper(compilerOptions.paths ?? {}, {
184
+ prefix: `${dirname}/`,
185
+ useESM: true,
186
+ }),
187
+ },
188
+ errorOnDeprecated: true,
189
+ extensionsToTreatAsEsm: ['.ts'],
190
+ // injectGlobals: false,
191
+ ...options?.jestConf,
192
+ };
193
+
194
+ if (options.transformEsModules) {
195
+ const esModules = [
196
+ ...(Array.isArray(options.transformEsModules)
197
+ ? options.transformEsModules
198
+ : []),
199
+ 'aggregate-error',
200
+ 'clean-stack',
201
+ 'escape-string-regexp',
202
+ 'indent-string',
203
+ 'p-map',
204
+ ].join('|');
205
+
206
+ config.transformIgnorePatterns = [
207
+ `[/\\\\]node_modules[/\\\\](?!${esModules}).+\\.(js|jsx|ts|tsx)$`,
208
+ ];
209
+ }
210
+
211
+ return config;
212
+ };
213
+
214
+ export default defaultConf;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ process.env.NODE_ENV = 'test';
4
+ if (!process.env.LISTENING_TO_UNHANDLED_REJECTION) {
5
+ process.on('unhandledRejection', (err) => {
6
+ throw err;
7
+ });
8
+ process.env.LISTENING_TO_UNHANDLED_REJECTION = 'true';
9
+ }
10
+ //# sourceMappingURL=jest.setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.setup.js","sourceRoot":"","sources":["jest.setup.ts"],"names":[],"mappings":";;AAEA,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;AAI9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,MAAM,CAAC;AACxD,CAAC"}
@@ -0,0 +1,39 @@
1
+ /* istanbul ignore file */
2
+
3
+ process.env.NODE_ENV = 'test';
4
+
5
+ // without this, jest won't fail with unhandled promises
6
+ // (e.g. missing awaits)
7
+ if (!process.env.LISTENING_TO_UNHANDLED_REJECTION) {
8
+ process.on('unhandledRejection', (err) => {
9
+ throw err;
10
+ });
11
+ // Avoid memory leak by adding too many listeners
12
+ process.env.LISTENING_TO_UNHANDLED_REJECTION = 'true';
13
+ }
14
+
15
+ // try {
16
+ // jest.unstable_mockModule('@nestjs/graphql', () => {
17
+ // class Fake {}
18
+ // return {
19
+ // ...jest.requireActual<any>('@nestjs/graphql'),
20
+ // InputType: () => jest.fn(),
21
+ // OmitType: () => Fake,
22
+ // PickType: () => Fake,
23
+ // PartialType: () => Fake,
24
+ // IntersectionType: () => Fake,
25
+ // };
26
+ // });
27
+ // // eslint-disable-next-line no-console
28
+ // console.debug('Mocked @nestjs/graphql');
29
+ // } catch (e) {
30
+ // // eslint-disable-next-line no-console
31
+ // console.debug("Can't mock @nestjs/graphql. Not installed?");
32
+ // }
33
+
34
+ // jest.mock('@nestjs/common', () => {
35
+ // return {
36
+ // ...jest.requireActual<any>('@nestjs/common'),
37
+ // Injectable: () => jest.fn(),
38
+ // };
39
+ // });
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@nest-yalc-2/jest-config",
3
+ "version": "1.3.3",
4
+ "description": "",
5
+ "main": "./index.ts",
6
+ "exports": {
7
+ ".": "./index.ts",
8
+ "./*": "./*.ts"
9
+ },
10
+ "scripts": {
11
+ "test": "echo \"Error: no test specified\" && exit 1"
12
+ },
13
+ "author": "",
14
+ "license": "MIT",
15
+ "types": "./index.ts",
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "dependencies": {
20
+ "tslib": "^2.6.3"
21
+ }
22
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../tsconfig.dev.json"
3
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "strict": true,
4
+ "esModuleInterop": false,
5
+ "allowSyntheticDefaultImports": true,
6
+ "moduleResolution": "node",
7
+ "module": "CommonJS",
8
+ }
9
+ }
@@ -0,0 +1,25 @@
1
+ /* istanbul ignore file */
2
+
3
+ /* eslint-disable @typescript-eslint/no-var-requires */
4
+ const transformer = require('@nestjs/graphql/plugin');
5
+
6
+ module.exports.name = 'nestjs-graphql-transformer';
7
+ // you should change the version number anytime you change the configuration below - otherwise, jest will not detect changes
8
+ module.exports.version = 4;
9
+
10
+ module.exports.factory = (cs) => {
11
+ return transformer.before(
12
+ {
13
+ typeFileNameSuffix: [
14
+ '.input.ts',
15
+ '.args.ts',
16
+ '.arg.ts',
17
+ '.entity.ts',
18
+ '.type.ts',
19
+ '.dto.ts',
20
+ ],
21
+ introspectComments: true,
22
+ },
23
+ cs.program, // "cs.tsCompiler.program" for older versions of Jest (<= v27)
24
+ );
25
+ };
@@ -0,0 +1,2 @@
1
+ export * from './jest-conf.generator.js';
2
+ export * from './jest-def.config.js';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./jest-conf.generator.js"), exports);
5
+ tslib_1.__exportStar(require("./jest-def.config.js"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC;AACzC,+DAAqC"}
@@ -0,0 +1,2 @@
1
+ export * from './jest-conf.generator.js';
2
+ export * from './jest-def.config.js';
@@ -0,0 +1,53 @@
1
+ import type { JestConfigWithTsJest } from 'ts-jest';
2
+ import { IDefaultConfOptions } from './jest-def.config';
3
+ interface IAppDep {
4
+ name: string;
5
+ path: string;
6
+ }
7
+ export interface IAppProjSetting {
8
+ confOverride?: any;
9
+ deps: IAppDep[];
10
+ }
11
+ export interface IProjectInfo {
12
+ path: string;
13
+ sourcePath: string;
14
+ type: 'library' | 'application' | string;
15
+ }
16
+ export interface IOptions {
17
+ skipProjects?: string[];
18
+ confOverrides?: {
19
+ [key: string]: any;
20
+ };
21
+ defaultCoverageThreshold?: {
22
+ branches: number;
23
+ functions: number;
24
+ lines: number;
25
+ statements: number;
26
+ };
27
+ tsConfigPath?: {
28
+ (proj: IProjectInfo): string;
29
+ };
30
+ coverageOutputPath?: {
31
+ (subProjectPath: string): string;
32
+ };
33
+ defaultConfOptions?: IDefaultConfOptions;
34
+ tsJestConfig?: any;
35
+ extraSetupFiles?: string[];
36
+ setupFilesAfterEnv?: string[];
37
+ }
38
+ export declare function jestConfGenerator(rootPath: string, projectList: {
39
+ [key: string]: IProjectInfo;
40
+ }, appProjectsSettings: {
41
+ [key: string]: IAppProjSetting;
42
+ }, options: IOptions): JestConfigWithTsJest;
43
+ export interface E2EOptions {
44
+ alias?: string;
45
+ e2eDirname: string;
46
+ rootDirname: string;
47
+ defaultConfOptions?: IDefaultConfOptions;
48
+ confOverride?: JestConfigWithTsJest;
49
+ withGqlPlugins?: boolean;
50
+ tsJestConfig?: any;
51
+ }
52
+ export declare const createE2EConfig: (options: E2EOptions) => JestConfigWithTsJest;
53
+ export {};