@nrwl/react 14.5.0-beta.0 → 14.5.0-beta.3
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/CHANGELOG.md +1 -1
- package/generators.json +46 -4
- package/index.d.ts +2 -0
- package/index.js +5 -1
- package/index.js.map +1 -1
- package/migrations.json +21 -0
- package/package.json +11 -11
- package/plugins/component-testing/index.d.ts +29 -0
- package/plugins/component-testing/index.js +167 -0
- package/plugins/component-testing/index.js.map +1 -0
- package/plugins/storybook/index.js +1 -1
- package/plugins/storybook/index.js.map +1 -1
- package/src/generators/application/lib/set-defaults.js +1 -1
- package/src/generators/application/lib/set-defaults.js.map +1 -1
- package/src/generators/application/schema.d.ts +1 -0
- package/src/generators/application/schema.json +5 -0
- package/src/generators/component/component.d.ts +1 -1
- package/src/generators/component/component.js +4 -4
- package/src/generators/component/component.js.map +1 -1
- package/src/generators/component-cypress-spec/component-cypress-spec.d.ts +1 -1
- package/src/generators/component-cypress-spec/component-cypress-spec.js +10 -4
- package/src/generators/component-cypress-spec/component-cypress-spec.js.map +1 -1
- package/src/generators/component-cypress-spec/files/{__componentName__.spec.__fileExt__ → __componentName__.__fileExt__} +0 -0
- package/src/generators/component-story/component-story.d.ts +0 -1
- package/src/generators/component-story/component-story.js +3 -40
- package/src/generators/component-story/component-story.js.map +1 -1
- package/src/generators/component-story/schema.json +2 -1
- package/src/generators/component-test/component-test.d.ts +4 -0
- package/src/generators/component-test/component-test.js +66 -0
- package/src/generators/component-test/component-test.js.map +1 -0
- package/src/generators/component-test/files/__fileName__.cy__ext__ +22 -0
- package/src/generators/component-test/schema.d.ts +4 -0
- package/src/generators/component-test/schema.js +3 -0
- package/src/generators/component-test/schema.js.map +1 -0
- package/src/generators/component-test/schema.json +30 -0
- package/src/generators/cypress-component-configuration/cypress-component-configuration.d.ts +9 -0
- package/src/generators/cypress-component-configuration/cypress-component-configuration.js +108 -0
- package/src/generators/cypress-component-configuration/cypress-component-configuration.js.map +1 -0
- package/src/generators/cypress-component-configuration/files/cypress.config.ts__tpl__ +6 -0
- package/src/generators/cypress-component-configuration/schema.d.ts +5 -0
- package/src/generators/cypress-component-configuration/schema.js +3 -0
- package/src/generators/cypress-component-configuration/schema.js.map +1 -0
- package/src/generators/cypress-component-configuration/schema.json +39 -0
- package/src/generators/init/init.js +1 -1
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/library/schema.d.ts +1 -1
- package/src/generators/remote/remote.js +1 -1
- package/src/generators/remote/remote.js.map +1 -1
- package/src/generators/setup-tailwind/files/postcss.config.js__tmpl__ +15 -0
- package/src/generators/setup-tailwind/files/tailwind.config.js__tmpl__ +17 -0
- package/src/generators/setup-tailwind/lib/add-tailwind-style-imports.d.ts +3 -0
- package/src/generators/setup-tailwind/lib/add-tailwind-style-imports.js +36 -0
- package/src/generators/setup-tailwind/lib/add-tailwind-style-imports.js.map +1 -0
- package/src/generators/setup-tailwind/lib/update-project.d.ts +3 -0
- package/src/generators/setup-tailwind/lib/update-project.js +15 -0
- package/src/generators/setup-tailwind/lib/update-project.js.map +1 -0
- package/src/generators/setup-tailwind/schema.d.ts +6 -0
- package/src/generators/setup-tailwind/schema.js +3 -0
- package/src/generators/setup-tailwind/schema.js.map +1 -0
- package/src/generators/setup-tailwind/schema.json +39 -0
- package/src/generators/setup-tailwind/setup-tailwind.d.ts +5 -0
- package/src/generators/setup-tailwind/setup-tailwind.js +40 -0
- package/src/generators/setup-tailwind/setup-tailwind.js.map +1 -0
- package/src/generators/stories/schema.json +5 -4
- package/src/generators/storybook-configuration/schema.json +5 -2
- package/src/migrations/update-14-0-0/replace-testing-library-react-hook.js +2 -2
- package/src/migrations/update-14-0-0/replace-testing-library-react-hook.js.map +1 -1
- package/src/utils/component-props.d.ts +15 -0
- package/src/utils/component-props.js +54 -0
- package/src/utils/component-props.js.map +1 -0
- package/src/utils/versions.d.ts +8 -4
- package/src/utils/versions.js +9 -5
- package/src/utils/versions.js.map +1 -1
|
@@ -1,26 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.componentStorySchematic = exports.componentStoryGenerator = exports.findPropsAndGenerateFile = exports.createComponentStoriesFile =
|
|
3
|
+
exports.componentStorySchematic = exports.componentStoryGenerator = exports.findPropsAndGenerateFile = exports.createComponentStoriesFile = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const devkit_1 = require("@nrwl/devkit");
|
|
6
6
|
const ts = require("typescript");
|
|
7
7
|
const ast_utils_1 = require("../../utils/ast-utils");
|
|
8
|
-
|
|
9
|
-
function getArgsDefaultValue(property) {
|
|
10
|
-
const typeNameToDefault = {
|
|
11
|
-
[ts.SyntaxKind.StringKeyword]: "''",
|
|
12
|
-
[ts.SyntaxKind.NumberKeyword]: 0,
|
|
13
|
-
[ts.SyntaxKind.BooleanKeyword]: false,
|
|
14
|
-
};
|
|
15
|
-
const resolvedValue = typeNameToDefault[property];
|
|
16
|
-
if (typeof resolvedValue === undefined) {
|
|
17
|
-
return "''";
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
return resolvedValue;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.getArgsDefaultValue = getArgsDefaultValue;
|
|
8
|
+
const component_props_1 = require("../../utils/component-props");
|
|
24
9
|
function createComponentStoriesFile(host, { project, componentPath }) {
|
|
25
10
|
const proj = (0, devkit_1.getProjects)(host).get(project);
|
|
26
11
|
const sourceRoot = proj.sourceRoot;
|
|
@@ -63,29 +48,7 @@ function createComponentStoriesFile(host, { project, componentPath }) {
|
|
|
63
48
|
}
|
|
64
49
|
exports.createComponentStoriesFile = createComponentStoriesFile;
|
|
65
50
|
function findPropsAndGenerateFile(host, sourceFile, cmpDeclaration, componentDirectory, name, isPlainJs, fileExt, fromNodeArray) {
|
|
66
|
-
const
|
|
67
|
-
let propsTypeName = null;
|
|
68
|
-
let props = [];
|
|
69
|
-
let argTypes = [];
|
|
70
|
-
if (propsInterface) {
|
|
71
|
-
propsTypeName = propsInterface.name.text;
|
|
72
|
-
props = propsInterface.members.map((member) => {
|
|
73
|
-
if (member.type.kind === ts.SyntaxKind.FunctionType) {
|
|
74
|
-
argTypes.push({
|
|
75
|
-
name: member.name.text,
|
|
76
|
-
type: 'action',
|
|
77
|
-
actionText: `${member.name.text} executed!`,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
return {
|
|
82
|
-
name: member.name.text,
|
|
83
|
-
defaultValue: getArgsDefaultValue(member.type.kind),
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
props = props.filter((p) => p && p.defaultValue !== undefined);
|
|
88
|
-
}
|
|
51
|
+
const { propsTypeName, props, argTypes } = (0, component_props_1.getDefaultsForComponent)(sourceFile, cmpDeclaration);
|
|
89
52
|
(0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__dirname, './files'), (0, devkit_1.normalizePath)(componentDirectory), {
|
|
90
53
|
componentFileName: fromNodeArray
|
|
91
54
|
? `${name}--${cmpDeclaration.name.text}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-story.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/component-story/component-story.ts"],"names":[],"mappings":";;;;AAAA,yCAQsB;AACtB,iCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"component-story.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/component-story/component-story.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"properties": {
|
|
9
9
|
"project": {
|
|
10
10
|
"type": "string",
|
|
11
|
-
"
|
|
11
|
+
"aliases": ["name", "projectName"],
|
|
12
|
+
"description": "The project where to add the components.",
|
|
12
13
|
"examples": ["shared-ui-component"],
|
|
13
14
|
"$default": {
|
|
14
15
|
"$source": "projectName",
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.componentTestGenerator = void 0;
|
|
4
|
+
const cypress_version_1 = require("@nrwl/cypress/src/utils/cypress-version");
|
|
5
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const ts = require("typescript");
|
|
8
|
+
const ast_utils_1 = require("../../utils/ast-utils");
|
|
9
|
+
const component_props_1 = require("../../utils/component-props");
|
|
10
|
+
function componentTestGenerator(tree, options) {
|
|
11
|
+
(0, cypress_version_1.assertMinimumCypressVersion)(10);
|
|
12
|
+
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
13
|
+
const normalizedPath = options.componentPath.startsWith(projectConfig.sourceRoot)
|
|
14
|
+
? (0, path_1.relative)(projectConfig.sourceRoot, options.componentPath)
|
|
15
|
+
: options.componentPath;
|
|
16
|
+
const componentPath = (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, normalizedPath);
|
|
17
|
+
if (tree.exists(componentPath)) {
|
|
18
|
+
generateSpecsForComponents(tree, componentPath);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.componentTestGenerator = componentTestGenerator;
|
|
22
|
+
function generateSpecsForComponents(tree, filePath) {
|
|
23
|
+
const sourceFile = ts.createSourceFile(filePath, tree.read(filePath, 'utf-8'), ts.ScriptTarget.Latest, true);
|
|
24
|
+
const cmpNodes = (0, ast_utils_1.findExportDeclarationsForJsx)(sourceFile);
|
|
25
|
+
const componentDir = (0, path_1.dirname)(filePath);
|
|
26
|
+
const ext = (0, path_1.extname)(filePath);
|
|
27
|
+
const fileName = (0, path_1.basename)(filePath, ext);
|
|
28
|
+
const defaultExport = (0, ast_utils_1.getComponentNode)(sourceFile);
|
|
29
|
+
if (cmpNodes === null || cmpNodes === void 0 ? void 0 : cmpNodes.length) {
|
|
30
|
+
const components = cmpNodes.map((cmp) => {
|
|
31
|
+
const defaults = (0, component_props_1.getDefaultsForComponent)(sourceFile, cmp);
|
|
32
|
+
const isDefaultExport = defaultExport
|
|
33
|
+
? defaultExport.name.text === cmp.name.text
|
|
34
|
+
: false;
|
|
35
|
+
return {
|
|
36
|
+
isDefaultExport,
|
|
37
|
+
props: [...defaults.props, ...defaults.argTypes],
|
|
38
|
+
name: cmp.name.text,
|
|
39
|
+
typeName: defaults.propsTypeName,
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
const namedImports = components
|
|
43
|
+
.reduce((imports, cmp) => {
|
|
44
|
+
if (cmp.typeName) {
|
|
45
|
+
imports.push(cmp.typeName);
|
|
46
|
+
}
|
|
47
|
+
if (cmp.isDefaultExport) {
|
|
48
|
+
return imports;
|
|
49
|
+
}
|
|
50
|
+
imports.push(cmp.name);
|
|
51
|
+
return imports;
|
|
52
|
+
}, [])
|
|
53
|
+
.join(', ');
|
|
54
|
+
const namedImportStatement = namedImports.length > 0 ? `, { ${namedImports} }` : '';
|
|
55
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), componentDir, {
|
|
56
|
+
fileName,
|
|
57
|
+
components,
|
|
58
|
+
importStatement: defaultExport
|
|
59
|
+
? `import ${defaultExport.name.text}${namedImportStatement} from './${fileName}'`
|
|
60
|
+
: `import { ${namedImports} } from './${fileName}'`,
|
|
61
|
+
ext,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.default = componentTestGenerator;
|
|
66
|
+
//# sourceMappingURL=component-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-test.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/component-test/component-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react'
|
|
2
|
+
import { mount } from 'cypress/react'
|
|
3
|
+
<%- importStatement %>
|
|
4
|
+
|
|
5
|
+
<% for (let cmp of components) { %>
|
|
6
|
+
describe(<%= cmp.name %>.name, () => {<% if (cmp.typeName) { %>
|
|
7
|
+
let props: <%= cmp.typeName%>;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
props = {<% for (let prop of cmp.props) { %>
|
|
11
|
+
<%- prop.name %>: <% if(prop.type === 'action') { %>undefined<% } else { %><%- prop.defaultValue %>,<% } %><% }%>
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
it('renders', () => {
|
|
16
|
+
mount(<<%= cmp.name %> {...props}/>)
|
|
17
|
+
})<% } else { %>
|
|
18
|
+
it('renders', () => {
|
|
19
|
+
mount(<<%= cmp.name %> />)
|
|
20
|
+
})<% } %>
|
|
21
|
+
})
|
|
22
|
+
<% } %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/component-test/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"cli": "nx",
|
|
4
|
+
"$id": "NxReactCypressComponentTest",
|
|
5
|
+
"title": "Add Cypress component test",
|
|
6
|
+
"description": "Add a Cypress component test for a component.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"examples": [
|
|
9
|
+
{
|
|
10
|
+
"command": "nx g @nrwl/react:component-test --project=my-react-project --component-path=src/lib/fancy-component.tsx",
|
|
11
|
+
"description": "Create a cypress component test for FancyComponent"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"project": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "The name of the project the component is apart of",
|
|
18
|
+
"$default": {
|
|
19
|
+
"$source": "projectName"
|
|
20
|
+
},
|
|
21
|
+
"x-prompt": "What project is this component apart of?"
|
|
22
|
+
},
|
|
23
|
+
"componentPath": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "Path to component, from the project source root",
|
|
26
|
+
"x-prompt": "What is the path to the component?"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"required": ["project", "componentPath"]
|
|
30
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Tree } from '@nrwl/devkit';
|
|
2
|
+
import { CypressComponentConfigurationSchema } from './schema';
|
|
3
|
+
/**
|
|
4
|
+
* This is for using cypresses own Component testing, if you want to use test
|
|
5
|
+
* storybook components then use componentCypressGenerator instead.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
export declare function cypressComponentConfigGenerator(tree: Tree, options: CypressComponentConfigurationSchema): Promise<() => void>;
|
|
9
|
+
export default cypressComponentConfigGenerator;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cypressComponentConfigGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const cypress_1 = require("@nrwl/cypress");
|
|
6
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
7
|
+
const ts = require("typescript");
|
|
8
|
+
const ast_utils_1 = require("../../utils/ast-utils");
|
|
9
|
+
const component_test_1 = require("../component-test/component-test");
|
|
10
|
+
const allowedFileExt = new RegExp(/\.[jt]sx?/g);
|
|
11
|
+
const isSpecFile = new RegExp(/(spec|test)\./g);
|
|
12
|
+
/**
|
|
13
|
+
* This is for using cypresses own Component testing, if you want to use test
|
|
14
|
+
* storybook components then use componentCypressGenerator instead.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
function cypressComponentConfigGenerator(tree, options) {
|
|
18
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
20
|
+
const installTask = yield (0, cypress_1.cypressComponentProject)(tree, {
|
|
21
|
+
project: options.project,
|
|
22
|
+
skipFormat: true,
|
|
23
|
+
});
|
|
24
|
+
addFiles(tree, projectConfig, options);
|
|
25
|
+
updateTsConfig(tree, projectConfig);
|
|
26
|
+
if (options.skipFormat) {
|
|
27
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
28
|
+
}
|
|
29
|
+
return () => {
|
|
30
|
+
installTask();
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
exports.cypressComponentConfigGenerator = cypressComponentConfigGenerator;
|
|
35
|
+
function addFiles(tree, projectConfig, options) {
|
|
36
|
+
const cypressConfigPath = (0, devkit_1.joinPathFragments)(projectConfig.root, 'cypress.config.ts');
|
|
37
|
+
if (tree.exists(cypressConfigPath)) {
|
|
38
|
+
tree.delete(cypressConfigPath);
|
|
39
|
+
}
|
|
40
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), projectConfig.root, {
|
|
41
|
+
tpl: '',
|
|
42
|
+
});
|
|
43
|
+
if (options.generateTests) {
|
|
44
|
+
(0, devkit_1.visitNotIgnoredFiles)(tree, projectConfig.sourceRoot, (filePath) => {
|
|
45
|
+
if (isComponent(tree, filePath)) {
|
|
46
|
+
(0, component_test_1.default)(tree, {
|
|
47
|
+
project: options.project,
|
|
48
|
+
componentPath: filePath,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function updateTsConfig(tree, projectConfig) {
|
|
55
|
+
const tsConfigPath = (0, devkit_1.joinPathFragments)(projectConfig.root, projectConfig.projectType === 'library'
|
|
56
|
+
? 'tsconfig.lib.json'
|
|
57
|
+
: 'tsconfig.app.json');
|
|
58
|
+
if (tree.exists(tsConfigPath)) {
|
|
59
|
+
(0, devkit_1.updateJson)(tree, tsConfigPath, (json) => {
|
|
60
|
+
const excluded = new Set([
|
|
61
|
+
...(json.exclude || []),
|
|
62
|
+
'cypress/**/*',
|
|
63
|
+
'cypress.config.ts',
|
|
64
|
+
'**/*.cy.ts',
|
|
65
|
+
'**/*.cy.js',
|
|
66
|
+
'**/*.cy.tsx',
|
|
67
|
+
'**/*.cy.jsx',
|
|
68
|
+
]);
|
|
69
|
+
json.exclude = Array.from(excluded);
|
|
70
|
+
return json;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
const projectBaseTsConfig = (0, devkit_1.joinPathFragments)(projectConfig.root, 'tsconfig.json');
|
|
74
|
+
if (tree.exists(projectBaseTsConfig)) {
|
|
75
|
+
(0, devkit_1.updateJson)(tree, projectBaseTsConfig, (json) => {
|
|
76
|
+
if (json.references) {
|
|
77
|
+
const hasCyTsConfig = json.references.some((r) => r.path === './tsconfig.cy.json');
|
|
78
|
+
if (!hasCyTsConfig) {
|
|
79
|
+
json.references.push({ path: './tsconfig.cy.json' });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const excluded = new Set([
|
|
84
|
+
...(json.exclude || []),
|
|
85
|
+
'cypress/**/*',
|
|
86
|
+
'cypress.config.ts',
|
|
87
|
+
'**/*.cy.ts',
|
|
88
|
+
'**/*.cy.js',
|
|
89
|
+
'**/*.cy.tsx',
|
|
90
|
+
'**/*.cy.jsx',
|
|
91
|
+
]);
|
|
92
|
+
json.exclude = Array.from(excluded);
|
|
93
|
+
}
|
|
94
|
+
return json;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function isComponent(tree, filePath) {
|
|
99
|
+
if (isSpecFile.test(filePath) || !allowedFileExt.test(filePath)) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
const content = tree.read(filePath, 'utf-8');
|
|
103
|
+
const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
|
|
104
|
+
const cmpDeclaration = (0, ast_utils_1.getComponentNode)(sourceFile);
|
|
105
|
+
return !!cmpDeclaration;
|
|
106
|
+
}
|
|
107
|
+
exports.default = cypressComponentConfigGenerator;
|
|
108
|
+
//# sourceMappingURL=cypress-component-configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cypress-component-configuration.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/cypress-component-configuration/cypress-component-configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/cypress-component-configuration/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"cli": "nx",
|
|
4
|
+
"$id": "NxReactCypressComponentTestConfiguration",
|
|
5
|
+
"title": "Add Cypress component testing",
|
|
6
|
+
"description": "Add a Cypress component testing configuration to an existing project.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"examples": [
|
|
9
|
+
{
|
|
10
|
+
"command": "nx g @nrwl/react:cypress-component-configuration --project=my-react-project",
|
|
11
|
+
"description": "Add component testing to your react project"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"command": "nx g @nrwl/react:cypress-component-configuration --project=my-react-project --generate-tests",
|
|
15
|
+
"description": "Add component testing to your react project and generate component tests for your existing components"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"project": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The name of the project to add cypress component testing configuration to",
|
|
22
|
+
"$default": {
|
|
23
|
+
"$source": "projectName"
|
|
24
|
+
},
|
|
25
|
+
"x-prompt": "What project should we add Cypress component testing to?"
|
|
26
|
+
},
|
|
27
|
+
"generateTests": {
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"description": "Generate default component tests for existing components in the project",
|
|
30
|
+
"default": false
|
|
31
|
+
},
|
|
32
|
+
"skipFormat": {
|
|
33
|
+
"type": "boolean",
|
|
34
|
+
"description": "Skip formatting files",
|
|
35
|
+
"default": false
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"required": ["project"]
|
|
39
|
+
}
|
|
@@ -22,7 +22,7 @@ function updateDependencies(host) {
|
|
|
22
22
|
react: versions_1.reactVersion,
|
|
23
23
|
'react-dom': versions_1.reactDomVersion,
|
|
24
24
|
'regenerator-runtime': '0.13.7',
|
|
25
|
-
tslib:
|
|
25
|
+
tslib: versions_1.tsLibVersion,
|
|
26
26
|
}, {
|
|
27
27
|
'@nrwl/react': versions_1.nxVersion,
|
|
28
28
|
'@types/node': versions_1.typesNodeVersion,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/init/init.ts"],"names":[],"mappings":";;;;AAAA,2CAAqD;AACrD,yCAQsB;AACtB,qCAA+C;AAC/C,mCAA6C;AAC7C,2FAAqF;AACrF,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/init/init.ts"],"names":[],"mappings":";;;;AAAA,2CAAqD;AACrD,yCAQsB;AACtB,qCAA+C;AAC/C,mCAA6C;AAC7C,2FAAqF;AACrF,mDAU8B;AAG9B,SAAS,UAAU,CAAC,IAAU;IAC5B,MAAM,SAAS,GAAG,IAAA,mCAA0B,EAAC,IAAI,CAAC,CAAC;IAEnD,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC;IAClD,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAClE,MAAM,UAAU,mCACX,SAAS,CAAC,UAAU,KACvB,aAAa,kCACR,eAAe,KAClB,WAAW,kCACN,eAAe,CAAC,WAAW,KAC9B,KAAK,EAAE,IAAI,SAGhB,CAAC;IAEF,IAAA,qCAA4B,EAAC,IAAI,kCAAO,SAAS,KAAE,UAAU,IAAG,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAU;IACpC,IAAA,0CAAiC,EAAC,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IAE7D,OAAO,IAAA,qCAA4B,EACjC,IAAI,EACJ;QACE,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,uBAAY;QACnB,WAAW,EAAE,0BAAe;QAC5B,qBAAqB,EAAE,QAAQ;QAC/B,KAAK,EAAE,uBAAY;KACpB,EACD;QACE,aAAa,EAAE,oBAAS;QACxB,aAAa,EAAE,2BAAgB;QAC/B,cAAc,EAAE,4BAAiB;QACjC,kBAAkB,EAAE,+BAAoB;QACxC,wBAAwB,EAAE,qCAA0B;QACpD,qBAAqB,EAAE,mCAAwB;KAChD,CACF,CAAC;AACJ,CAAC;AAED,SAAsB,kBAAkB,CAAC,IAAU,EAAE,MAAkB;;QACrE,MAAM,KAAK,GAAwB,EAAE,CAAC;QAEtC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjB,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,EAAE;YAC9D,MAAM,QAAQ,GAAG,IAAA,wBAAiB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtB;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;YAC/D,MAAM,WAAW,GAAG,IAAA,8BAAoB,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACzB;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,sBAAgB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExB,OAAO,IAAA,sCAAgB,EAAC,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;CAAA;AApBD,gDAoBC;AAED,kBAAe,kBAAkB,CAAC;AAErB,QAAA,kBAAkB,GAAG,IAAA,2BAAkB,EAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -17,7 +17,7 @@ exports.addModuleFederationFiles = addModuleFederationFiles;
|
|
|
17
17
|
function remoteGenerator(host, schema) {
|
|
18
18
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
19
19
|
const options = (0, normalize_options_1.normalizeOptions)(host, schema);
|
|
20
|
-
const initApp = yield (0, application_1.default)(host, options);
|
|
20
|
+
const initApp = yield (0, application_1.default)(host, Object.assign(Object.assign({}, options), { skipDefaultProject: true }));
|
|
21
21
|
if (schema.host) {
|
|
22
22
|
(0, update_host_with_remote_1.updateHostWithRemote)(host, schema.host, options.name);
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/remote/remote.ts"],"names":[],"mappings":";;;;AAAA,+BAA4B;AAC5B,yCAAuE;AACvE,2FAAqF;AAErF,4EAAwE;AACxE,4DAA8D;AAE9D,2EAAqE;AACrE,mGAA6F;AAG7F,SAAgB,wBAAwB,CACtC,IAAU,EACV,OAAyB;IAEzB,MAAM,iBAAiB,iDAClB,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,GACnB,OAAO,KACV,IAAI,EAAE,EAAE,GACT,CAAC;IAEF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,WAAI,EAAC,SAAS,EAAE,2BAA2B,CAAC,EAC5C,OAAO,CAAC,cAAc,EACtB,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAhBD,4DAgBC;AAED,SAAsB,eAAe,CAAC,IAAU,EAAE,MAAc;;QAC9D,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAoB,EAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/remote/remote.ts"],"names":[],"mappings":";;;;AAAA,+BAA4B;AAC5B,yCAAuE;AACvE,2FAAqF;AAErF,4EAAwE;AACxE,4DAA8D;AAE9D,2EAAqE;AACrE,mGAA6F;AAG7F,SAAgB,wBAAwB,CACtC,IAAU,EACV,OAAyB;IAEzB,MAAM,iBAAiB,iDAClB,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,GACnB,OAAO,KACV,IAAI,EAAE,EAAE,GACT,CAAC;IAEF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,WAAI,EAAC,SAAS,EAAE,2BAA2B,CAAC,EAC5C,OAAO,CAAC,cAAc,EACtB,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAhBD,4DAgBC;AAED,SAAsB,eAAe,CAAC,IAAU,EAAE,MAAc;;QAC9D,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAoB,EAAC,IAAI,kCAC1C,OAAO,KACV,kBAAkB,EAAE,IAAI,IACxB,CAAC;QAEH,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,IAAA,8CAAoB,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;SACvD;QAED,wEAAwE;QACxE,sEAAsE;QACtE,kBAAkB;QAClB,IAAI,CAAC,MAAM,CACT,IAAA,WAAI,EAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAC5C,IAAA,WAAI,EAAC,OAAO,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAClD,CAAC;QAEF,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,IAAA,gEAA6B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,IAAA,sCAAgB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CAAA;AA3BD,0CA2BC;AAED,kBAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const { join } = require('path');
|
|
2
|
+
|
|
3
|
+
// Note: If you use library-specific PostCSS/Tailwind configuration then you should remove the `postcssConfig` build
|
|
4
|
+
// option from your application's configuration (i.e. project.json).
|
|
5
|
+
//
|
|
6
|
+
// See: https://nx.dev/guides/using-tailwind-css-in-react#step-4:-applying-configuration-to-libraries
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
plugins: {
|
|
10
|
+
tailwindcss: {
|
|
11
|
+
config: join(__dirname, 'tailwind.config.js'),
|
|
12
|
+
},
|
|
13
|
+
autoprefixer: {},
|
|
14
|
+
},
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const { createGlobPatternsForDependencies } = require('@nrwl/react/tailwind');
|
|
2
|
+
const { join } = require('path');
|
|
3
|
+
|
|
4
|
+
/** @type {import('tailwindcss').Config} */
|
|
5
|
+
module.exports = {
|
|
6
|
+
content: [
|
|
7
|
+
join(
|
|
8
|
+
__dirname,
|
|
9
|
+
'{src,pages,components}/**/*!(*.stories|*.spec).{ts,tsx,html}'
|
|
10
|
+
),
|
|
11
|
+
...createGlobPatternsForDependencies(__dirname),
|
|
12
|
+
],
|
|
13
|
+
theme: {
|
|
14
|
+
extend: {},
|
|
15
|
+
},
|
|
16
|
+
plugins: [],
|
|
17
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addTailwindStyleImports = void 0;
|
|
4
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
5
|
+
const knownLocations = [
|
|
6
|
+
// Plain React
|
|
7
|
+
'src/styles.css',
|
|
8
|
+
'src/styles.scss',
|
|
9
|
+
'src/styles.styl',
|
|
10
|
+
'src/styles.less',
|
|
11
|
+
// Next.js
|
|
12
|
+
'pages/styles.css',
|
|
13
|
+
'pages/styles.scss',
|
|
14
|
+
'pages/styles.styl',
|
|
15
|
+
'pages/styles.less',
|
|
16
|
+
];
|
|
17
|
+
function addTailwindStyleImports(tree, project, _options) {
|
|
18
|
+
const candidates = knownLocations.map((x) => (0, devkit_1.joinPathFragments)(project.root, x));
|
|
19
|
+
const stylesPath = candidates.find((x) => tree.exists(x));
|
|
20
|
+
if (stylesPath) {
|
|
21
|
+
const content = tree.read(stylesPath).toString();
|
|
22
|
+
tree.write(stylesPath, `@tailwind components;\n@tailwind base;\n@tailwind utilities;\n${content}`);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
devkit_1.logger.warn((0, devkit_1.stripIndents) `
|
|
26
|
+
Could not find stylesheet to update. Add the following imports to your stylesheet (e.g. styles.css):
|
|
27
|
+
|
|
28
|
+
@tailwind components;
|
|
29
|
+
@tailwind base;
|
|
30
|
+
@tailwind utilities;
|
|
31
|
+
|
|
32
|
+
See our guide for more details: https://nx.dev/guides/using-tailwind-css-in-react`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.addTailwindStyleImports = addTailwindStyleImports;
|
|
36
|
+
//# sourceMappingURL=add-tailwind-style-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-tailwind-style-imports.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/generators/setup-tailwind/lib/add-tailwind-style-imports.ts"],"names":[],"mappings":";;;AAAA,yCAMsB;AAKtB,MAAM,cAAc,GAAG;IACrB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IAEjB,UAAU;IACV,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC;AAEF,SAAgB,uBAAuB,CACrC,IAAU,EACV,OAA6B,EAC7B,QAA8B;IAE9B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1C,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CACnC,CAAC;IACF,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,IAAI,UAAU,EAAE;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,CACR,UAAU,EACV,iEAAiE,OAAO,EAAE,CAC3E,CAAC;KACH;SAAM;QACL,eAAM,CAAC,IAAI,CACT,IAAA,qBAAY,EAAA;;;;;;;0FAOwE,CACrF,CAAC;KACH;AACH,CAAC;AA5BD,0DA4BC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateProject = void 0;
|
|
4
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
5
|
+
function updateProject(tree, config, options) {
|
|
6
|
+
var _a, _b, _c;
|
|
7
|
+
var _d;
|
|
8
|
+
if (((_b = (_a = config === null || config === void 0 ? void 0 : config.targets) === null || _a === void 0 ? void 0 : _a.build) === null || _b === void 0 ? void 0 : _b.executor) === '@nrwl/web:webpack') {
|
|
9
|
+
(_c = (_d = config.targets.build).options) !== null && _c !== void 0 ? _c : (_d.options = {});
|
|
10
|
+
config.targets.build.options.postcssConfig = (0, devkit_1.joinPathFragments)(config.root, 'postcss.config.js');
|
|
11
|
+
(0, devkit_1.updateProjectConfiguration)(tree, options.project, config);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.updateProject = updateProject;
|
|
15
|
+
//# sourceMappingURL=update-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-project.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/generators/setup-tailwind/lib/update-project.ts"],"names":[],"mappings":";;;AACA,yCAA6E;AAI7E,SAAgB,aAAa,CAC3B,IAAU,EACV,MAA4B,EAC5B,OAA6B;;;IAE7B,IAAI,CAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,KAAK,0CAAE,QAAQ,MAAK,mBAAmB,EAAE;QAC5D,YAAA,MAAM,CAAC,OAAO,CAAC,KAAK,EAAC,OAAO,uCAAP,OAAO,GAAK,EAAE,EAAC;QACpC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,IAAA,0BAAiB,EAC5D,MAAM,CAAC,IAAI,EACX,mBAAmB,CACpB,CAAC;QACF,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAC3D;AACH,CAAC;AAbD,sCAaC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/setup-tailwind/schema.ts"],"names":[],"mappings":""}
|