@nx/angular 20.0.0-canary.20240924-3e1a879 → 20.0.0-canary.20240926-529ab94
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/generators.d.ts +0 -1
- package/generators.js +0 -1
- package/generators.json +0 -6
- package/package.json +8 -8
- package/src/generators/stories/schema.d.ts +0 -2
- package/src/generators/stories/schema.json +0 -10
- package/src/generators/stories/stories.js +0 -19
- package/src/generators/storybook-configuration/lib/generate-stories.js +0 -6
- package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +0 -2
- package/src/generators/storybook-configuration/schema.d.ts +0 -3
- package/src/generators/storybook-configuration/schema.json +0 -15
- package/src/generators/storybook-configuration/storybook-configuration.js +0 -3
- package/src/generators/component-cypress-spec/component-cypress-spec.d.ts +0 -4
- package/src/generators/component-cypress-spec/component-cypress-spec.js +0 -35
- package/src/generators/component-cypress-spec/files/__componentFileName__.__fileExt__ +0 -17
- package/src/generators/component-cypress-spec/lib/get-args-default-value.d.ts +0 -2
- package/src/generators/component-cypress-spec/lib/get-args-default-value.js +0 -24
- package/src/generators/component-cypress-spec/lib/get-component-selector.d.ts +0 -2
- package/src/generators/component-cypress-spec/lib/get-component-selector.js +0 -23
- package/src/generators/component-cypress-spec/schema.d.ts +0 -10
- package/src/generators/component-cypress-spec/schema.json +0 -66
- package/src/generators/stories/lib/get-e2e-project.d.ts +0 -2
- package/src/generators/stories/lib/get-e2e-project.js +0 -14
- package/src/generators/storybook-configuration/lib/validate-options.d.ts +0 -2
- package/src/generators/storybook-configuration/lib/validate-options.js +0 -8
package/generators.d.ts
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
export * from './src/generators/add-linting/add-linting';
|
2
2
|
export * from './src/generators/application/application';
|
3
|
-
export * from './src/generators/component-cypress-spec/component-cypress-spec';
|
4
3
|
export * from './src/generators/component-story/component-story';
|
5
4
|
export * from './src/generators/component/component';
|
6
5
|
export * from './src/generators/directive/directive';
|
package/generators.js
CHANGED
@@ -4,7 +4,6 @@ exports.cypressComponentConfiguration = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
tslib_1.__exportStar(require("./src/generators/add-linting/add-linting"), exports);
|
6
6
|
tslib_1.__exportStar(require("./src/generators/application/application"), exports);
|
7
|
-
tslib_1.__exportStar(require("./src/generators/component-cypress-spec/component-cypress-spec"), exports);
|
8
7
|
tslib_1.__exportStar(require("./src/generators/component-story/component-story"), exports);
|
9
8
|
tslib_1.__exportStar(require("./src/generators/component/component"), exports);
|
10
9
|
tslib_1.__exportStar(require("./src/generators/directive/directive"), exports);
|
package/generators.json
CHANGED
@@ -22,12 +22,6 @@
|
|
22
22
|
"aliases": ["c"],
|
23
23
|
"description": "Generate an Angular Component."
|
24
24
|
},
|
25
|
-
"component-cypress-spec": {
|
26
|
-
"factory": "./src/generators/component-cypress-spec/component-cypress-spec",
|
27
|
-
"schema": "./src/generators/component-cypress-spec/schema.json",
|
28
|
-
"description": "Creates a Cypress spec for a UI component that has a story.",
|
29
|
-
"hidden": true
|
30
|
-
},
|
31
25
|
"component-story": {
|
32
26
|
"factory": "./src/generators/component-story/component-story",
|
33
27
|
"schema": "./src/generators/component-story/schema.json",
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/angular",
|
3
|
-
"version": "20.0.0-canary.
|
3
|
+
"version": "20.0.0-canary.20240926-529ab94",
|
4
4
|
"private": false,
|
5
5
|
"description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.",
|
6
6
|
"repository": {
|
@@ -80,14 +80,14 @@
|
|
80
80
|
"webpack-merge": "^5.8.0",
|
81
81
|
"webpack": "^5.88.0",
|
82
82
|
"@module-federation/enhanced": "~0.6.0",
|
83
|
-
"@nx/devkit": "20.0.0-canary.
|
84
|
-
"@nx/js": "20.0.0-canary.
|
85
|
-
"@nx/eslint": "20.0.0-canary.
|
86
|
-
"@nx/webpack": "20.0.0-canary.
|
87
|
-
"@nx/web": "20.0.0-canary.
|
88
|
-
"@nx/workspace": "20.0.0-canary.
|
83
|
+
"@nx/devkit": "20.0.0-canary.20240926-529ab94",
|
84
|
+
"@nx/js": "20.0.0-canary.20240926-529ab94",
|
85
|
+
"@nx/eslint": "20.0.0-canary.20240926-529ab94",
|
86
|
+
"@nx/webpack": "20.0.0-canary.20240926-529ab94",
|
87
|
+
"@nx/web": "20.0.0-canary.20240926-529ab94",
|
88
|
+
"@nx/workspace": "20.0.0-canary.20240926-529ab94",
|
89
89
|
"piscina": "^4.4.0",
|
90
|
-
"@nrwl/angular": "20.0.0-canary.
|
90
|
+
"@nrwl/angular": "20.0.0-canary.20240926-529ab94"
|
91
91
|
},
|
92
92
|
"peerDependencies": {
|
93
93
|
"@angular-devkit/build-angular": ">= 16.0.0 < 19.0.0",
|
@@ -25,16 +25,6 @@
|
|
25
25
|
"x-priority": "important",
|
26
26
|
"default": true
|
27
27
|
},
|
28
|
-
"generateCypressSpecs": {
|
29
|
-
"type": "boolean",
|
30
|
-
"description": "Specifies whether to automatically generate `*.spec.ts` files in the Cypress e2e app generated by the `cypress-configure` generator.",
|
31
|
-
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
32
|
-
},
|
33
|
-
"cypressProject": {
|
34
|
-
"type": "string",
|
35
|
-
"description": "The Cypress project to generate the stories under. This is inferred from `name` by default.",
|
36
|
-
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
37
|
-
},
|
38
28
|
"skipFormat": {
|
39
29
|
"description": "Skip formatting files.",
|
40
30
|
"type": "boolean",
|
@@ -3,26 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.angularStoriesGenerator = angularStoriesGenerator;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const devkit_1 = require("@nx/devkit");
|
6
|
-
const component_cypress_spec_1 = tslib_1.__importDefault(require("../component-cypress-spec/component-cypress-spec"));
|
7
6
|
const component_story_1 = tslib_1.__importDefault(require("../component-story/component-story"));
|
8
7
|
const component_info_1 = require("../utils/storybook-ast/component-info");
|
9
8
|
const entry_point_1 = require("../utils/storybook-ast/entry-point");
|
10
|
-
const get_e2e_project_1 = require("./lib/get-e2e-project");
|
11
9
|
const module_info_1 = require("../utils/storybook-ast/module-info");
|
12
10
|
const minimatch_1 = require("minimatch");
|
13
11
|
const versions_1 = require("../../utils/versions");
|
14
12
|
async function angularStoriesGenerator(tree, options) {
|
15
|
-
const e2eProjectName = options.cypressProject ?? `${options.name}-e2e`;
|
16
|
-
const e2eProject = (0, get_e2e_project_1.getE2EProject)(tree, e2eProjectName);
|
17
13
|
const entryPoints = (0, entry_point_1.getProjectEntryPoints)(tree, options.name);
|
18
14
|
const componentsInfo = [];
|
19
15
|
for (const entryPoint of entryPoints) {
|
20
16
|
const moduleFilePaths = (0, module_info_1.getModuleFilePaths)(tree, entryPoint);
|
21
17
|
componentsInfo.push(...(0, component_info_1.getComponentsInfo)(tree, entryPoint, moduleFilePaths, options.name), ...(0, component_info_1.getStandaloneComponentsInfo)(tree, entryPoint));
|
22
18
|
}
|
23
|
-
if (options.generateCypressSpecs && !e2eProject) {
|
24
|
-
devkit_1.logger.info(`There was no e2e project "${e2eProjectName}" found, so cypress specs will not be generated. Pass "--cypressProject" to specify a different e2e project name.`);
|
25
|
-
}
|
26
19
|
const componentInfos = componentsInfo.filter((f) => !options.ignorePaths?.some((pattern) => {
|
27
20
|
const shouldIgnorePath = (0, minimatch_1.minimatch)((0, devkit_1.joinPathFragments)(f.moduleFolderPath, f.path, `${f.componentFileName}.ts`), pattern);
|
28
21
|
return shouldIgnorePath;
|
@@ -39,18 +32,6 @@ async function angularStoriesGenerator(tree, options) {
|
|
39
32
|
interactionTests: options.interactionTests ?? true,
|
40
33
|
skipFormat: true,
|
41
34
|
});
|
42
|
-
if (options.generateCypressSpecs && e2eProject) {
|
43
|
-
await (0, component_cypress_spec_1.default)(tree, {
|
44
|
-
projectName: options.name,
|
45
|
-
projectPath: info.moduleFolderPath,
|
46
|
-
cypressProject: options.cypressProject,
|
47
|
-
componentName: info.name,
|
48
|
-
componentPath: info.path,
|
49
|
-
componentFileName: info.componentFileName,
|
50
|
-
specDirectory: (0, devkit_1.joinPathFragments)(info.entryPointName, info.path),
|
51
|
-
skipFormat: true,
|
52
|
-
});
|
53
|
-
}
|
54
35
|
}
|
55
36
|
const tasks = [];
|
56
37
|
if (options.interactionTests) {
|
@@ -2,17 +2,11 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.generateStories = generateStories;
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
5
|
-
const versions_1 = require("../../../utils/versions");
|
6
5
|
const stories_1 = require("../../stories/stories");
|
7
6
|
async function generateStories(tree, options) {
|
8
7
|
const project = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
9
|
-
(0, devkit_1.ensurePackage)('@nx/cypress', versions_1.nxVersion);
|
10
|
-
const { getE2eProjectName } = require('@nx/cypress/src/utils/project-name');
|
11
|
-
const e2eProjectName = getE2eProjectName(options.project, project.root, options.cypressDirectory);
|
12
8
|
await (0, stories_1.angularStoriesGenerator)(tree, {
|
13
9
|
name: options.project,
|
14
|
-
generateCypressSpecs: options.configureCypress && options.generateCypressSpecs,
|
15
|
-
cypressProject: e2eProjectName,
|
16
10
|
ignorePaths: options.ignorePaths,
|
17
11
|
interactionTests: options.interactionTests,
|
18
12
|
skipFormat: true,
|
@@ -8,9 +8,7 @@ async function generateStorybookConfiguration(tree, options) {
|
|
8
8
|
return await configurationGenerator(tree, {
|
9
9
|
project: options.project,
|
10
10
|
uiFramework: '@storybook/angular',
|
11
|
-
configureCypress: options.configureCypress,
|
12
11
|
linter: options.linter,
|
13
|
-
cypressDirectory: options.cypressDirectory,
|
14
12
|
tsConfiguration: options.tsConfiguration,
|
15
13
|
interactionTests: options.interactionTests,
|
16
14
|
configureStaticServe: options.configureStaticServe,
|
@@ -26,11 +26,6 @@
|
|
26
26
|
"x-priority": "important",
|
27
27
|
"default": true
|
28
28
|
},
|
29
|
-
"configureCypress": {
|
30
|
-
"type": "boolean",
|
31
|
-
"description": "Specifies whether to configure Cypress or not.",
|
32
|
-
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
33
|
-
},
|
34
29
|
"generateStories": {
|
35
30
|
"type": "boolean",
|
36
31
|
"description": "Specifies whether to automatically generate `*.stories.ts` files for components declared in this project or not.",
|
@@ -38,11 +33,6 @@
|
|
38
33
|
"default": true,
|
39
34
|
"x-priority": "important"
|
40
35
|
},
|
41
|
-
"generateCypressSpecs": {
|
42
|
-
"type": "boolean",
|
43
|
-
"description": "Specifies whether to automatically generate test files in the generated Cypress e2e app.",
|
44
|
-
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
45
|
-
},
|
46
36
|
"configureStaticServe": {
|
47
37
|
"type": "boolean",
|
48
38
|
"description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.",
|
@@ -50,11 +40,6 @@
|
|
50
40
|
"default": true,
|
51
41
|
"x-priority": "important"
|
52
42
|
},
|
53
|
-
"cypressDirectory": {
|
54
|
-
"type": "string",
|
55
|
-
"description": "A directory where the Cypress project will be placed. Placed at the root by default.",
|
56
|
-
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
57
|
-
},
|
58
43
|
"linter": {
|
59
44
|
"description": "The tool to use for running lint checks.",
|
60
45
|
"type": "string",
|
@@ -6,11 +6,8 @@ const update_app_editor_tsconfig_excluded_files_1 = require("../utils/update-app
|
|
6
6
|
const assert_compatible_storybook_version_1 = require("./lib/assert-compatible-storybook-version");
|
7
7
|
const generate_stories_1 = require("./lib/generate-stories");
|
8
8
|
const generate_storybook_configuration_1 = require("./lib/generate-storybook-configuration");
|
9
|
-
const validate_options_1 = require("./lib/validate-options");
|
10
|
-
// TODO(katerina): Nx 19 -> remove Cypress
|
11
9
|
async function storybookConfigurationGenerator(tree, options) {
|
12
10
|
(0, assert_compatible_storybook_version_1.assertCompatibleStorybookVersion)();
|
13
|
-
(0, validate_options_1.validateOptions)(options);
|
14
11
|
const storybookGeneratorInstallTask = await (0, generate_storybook_configuration_1.generateStorybookConfiguration)(tree, {
|
15
12
|
...options,
|
16
13
|
interactionTests: options.interactionTests ?? true, // default is true
|
@@ -1,4 +0,0 @@
|
|
1
|
-
import type { Tree } from '@nx/devkit';
|
2
|
-
import type { ComponentCypressSpecGeneratorOptions } from './schema';
|
3
|
-
export declare function componentCypressSpecGenerator(tree: Tree, options: ComponentCypressSpecGeneratorOptions): Promise<void>;
|
4
|
-
export default componentCypressSpecGenerator;
|
@@ -1,35 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.componentCypressSpecGenerator = componentCypressSpecGenerator;
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
5
|
-
const storybook_inputs_1 = require("../utils/storybook-ast/storybook-inputs");
|
6
|
-
const get_args_default_value_1 = require("./lib/get-args-default-value");
|
7
|
-
const get_component_selector_1 = require("./lib/get-component-selector");
|
8
|
-
async function componentCypressSpecGenerator(tree, options) {
|
9
|
-
const { cypressProject, projectName, projectPath, componentPath, componentFileName, componentName, specDirectory, } = options;
|
10
|
-
const e2eProjectName = cypressProject || `${projectName}-e2e`;
|
11
|
-
const { sourceRoot, root } = (0, devkit_1.readProjectConfiguration)(tree, e2eProjectName);
|
12
|
-
const isCypressV10 = tree.exists((0, devkit_1.joinPathFragments)(root, 'cypress.config.ts'));
|
13
|
-
const e2eLibIntegrationFolderPath = (0, devkit_1.joinPathFragments)(sourceRoot, isCypressV10 ? 'e2e' : 'integration');
|
14
|
-
const templatesDir = (0, devkit_1.joinPathFragments)(__dirname, 'files');
|
15
|
-
const destinationDir = (0, devkit_1.joinPathFragments)(e2eLibIntegrationFolderPath, specDirectory ?? componentPath);
|
16
|
-
const storyFile = (0, devkit_1.joinPathFragments)(destinationDir, `${componentFileName}.${isCypressV10 ? 'cy' : 'spec'}.ts`);
|
17
|
-
if (tree.exists(storyFile)) {
|
18
|
-
return;
|
19
|
-
}
|
20
|
-
const fullComponentPath = (0, devkit_1.joinPathFragments)(projectPath, componentPath, `${componentFileName}.ts`);
|
21
|
-
const props = (0, storybook_inputs_1.getComponentProps)(tree, fullComponentPath, get_args_default_value_1.getArgsDefaultValue);
|
22
|
-
const componentSelector = (0, get_component_selector_1.getComponentSelector)(tree, fullComponentPath);
|
23
|
-
(0, devkit_1.generateFiles)(tree, templatesDir, destinationDir, {
|
24
|
-
projectName,
|
25
|
-
componentFileName,
|
26
|
-
componentName,
|
27
|
-
componentSelector,
|
28
|
-
props,
|
29
|
-
fileExt: isCypressV10 ? 'cy.ts' : 'spec.ts',
|
30
|
-
});
|
31
|
-
if (!options.skipFormat) {
|
32
|
-
await (0, devkit_1.formatFiles)(tree);
|
33
|
-
}
|
34
|
-
}
|
35
|
-
exports.default = componentCypressSpecGenerator;
|
@@ -1,17 +0,0 @@
|
|
1
|
-
describe('<%=projectName%>', () => {
|
2
|
-
beforeEach(() =>
|
3
|
-
cy.visit(
|
4
|
-
'/iframe.html?id=<%= componentName.toLowerCase() %>--primary<% if ( props && props.length > 0 ) { %>&args=<% } %><%
|
5
|
-
for(let prop of props) {
|
6
|
-
%><%=prop.name%><%
|
7
|
-
if(prop.defaultValue !== undefined && (prop.defaultValue || prop.defaultValue === false)) {
|
8
|
-
%>:<%=prop.defaultValue%><%
|
9
|
-
} %>;<%
|
10
|
-
}%>'
|
11
|
-
)
|
12
|
-
);
|
13
|
-
|
14
|
-
it('should render the component', () => {
|
15
|
-
cy.get('<%=componentSelector%>').should('exist');
|
16
|
-
});
|
17
|
-
});
|
@@ -1,24 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getArgsDefaultValue = getArgsDefaultValue;
|
4
|
-
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
5
|
-
let tsModule;
|
6
|
-
function getArgsDefaultValue(property) {
|
7
|
-
if (!property.initializer) {
|
8
|
-
return undefined;
|
9
|
-
}
|
10
|
-
if (!tsModule) {
|
11
|
-
tsModule = (0, ensure_typescript_1.ensureTypescript)();
|
12
|
-
}
|
13
|
-
switch (property.initializer.kind) {
|
14
|
-
case tsModule.SyntaxKind.StringLiteral:
|
15
|
-
const returnString = property.initializer.getText().slice(1, -1);
|
16
|
-
return returnString.replace(/\s/g, '+');
|
17
|
-
case tsModule.SyntaxKind.NumericLiteral:
|
18
|
-
case tsModule.SyntaxKind.TrueKeyword:
|
19
|
-
case tsModule.SyntaxKind.FalseKeyword:
|
20
|
-
return property.initializer.getText();
|
21
|
-
default:
|
22
|
-
return undefined;
|
23
|
-
}
|
24
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getComponentSelector = getComponentSelector;
|
4
|
-
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
5
|
-
const js_1 = require("@nx/js");
|
6
|
-
const ast_utils_1 = require("../../../utils/nx-devkit/ast-utils");
|
7
|
-
let tsModule;
|
8
|
-
function getComponentSelector(tree, path) {
|
9
|
-
if (!tsModule) {
|
10
|
-
tsModule = (0, ensure_typescript_1.ensureTypescript)();
|
11
|
-
}
|
12
|
-
const file = (0, ast_utils_1.getTsSourceFile)(tree, path);
|
13
|
-
const componentDecorators = (0, ast_utils_1.getDecoratorMetadata)(file, 'Component', '@angular/core');
|
14
|
-
if (componentDecorators.length === 0) {
|
15
|
-
throw new Error(`No @Component decorator in ${path}.`);
|
16
|
-
}
|
17
|
-
const componentDecorator = componentDecorators[0];
|
18
|
-
const selectorNode = ((0, js_1.findNodes)(componentDecorator, tsModule.SyntaxKind.PropertyAssignment).find((node) => node.name.getText() === 'selector'));
|
19
|
-
if (!selectorNode) {
|
20
|
-
throw new Error(`No selector defined for the component in ${path}.`);
|
21
|
-
}
|
22
|
-
return selectorNode.initializer.getText().slice(1, -1);
|
23
|
-
}
|
@@ -1,10 +0,0 @@
|
|
1
|
-
export interface ComponentCypressSpecGeneratorOptions {
|
2
|
-
projectName: string;
|
3
|
-
projectPath: string;
|
4
|
-
componentName: string;
|
5
|
-
componentPath: string;
|
6
|
-
componentFileName: string;
|
7
|
-
cypressProject?: string;
|
8
|
-
specDirectory?: string;
|
9
|
-
skipFormat?: boolean;
|
10
|
-
}
|
@@ -1,66 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"$schema": "https://json-schema.org/schema",
|
3
|
-
"$id": "NxAngularComponentCypressSpecGenerator",
|
4
|
-
"type": "object",
|
5
|
-
"cli": "nx",
|
6
|
-
"description": "Creates a Storybook Cypress spec for a UI component that has a story.",
|
7
|
-
"x-deprecated": "Use interactionTests instead. This option will be removed in v20.",
|
8
|
-
"properties": {
|
9
|
-
"projectName": {
|
10
|
-
"type": "string",
|
11
|
-
"description": "The name of the project.",
|
12
|
-
"$default": {
|
13
|
-
"$source": "projectName"
|
14
|
-
},
|
15
|
-
"examples": ["ui-samples"],
|
16
|
-
"x-priority": "important"
|
17
|
-
},
|
18
|
-
"projectPath": {
|
19
|
-
"type": "string",
|
20
|
-
"description": "Path to the project.",
|
21
|
-
"examples": ["libs/ui-samples"],
|
22
|
-
"x-priority": "important"
|
23
|
-
},
|
24
|
-
"componentName": {
|
25
|
-
"type": "string",
|
26
|
-
"description": "Class name of the component.",
|
27
|
-
"examples": ["AwesomeComponent"],
|
28
|
-
"x-priority": "important"
|
29
|
-
},
|
30
|
-
"componentPath": {
|
31
|
-
"type": "string",
|
32
|
-
"description": "Relative path to the component file from the project root.",
|
33
|
-
"examples": ["awesome"],
|
34
|
-
"x-priority": "important"
|
35
|
-
},
|
36
|
-
"componentFileName": {
|
37
|
-
"type": "string",
|
38
|
-
"description": "Component file name without the `.ts` extension.",
|
39
|
-
"examples": ["awesome.component"],
|
40
|
-
"x-priority": "important"
|
41
|
-
},
|
42
|
-
"cypressProject": {
|
43
|
-
"type": "string",
|
44
|
-
"description": "The Cypress project to generate the stories under. By default, inferred from `projectName`."
|
45
|
-
},
|
46
|
-
"specDirectory": {
|
47
|
-
"type": "string",
|
48
|
-
"description": "Directory where to place the generated spec file. By default matches the value of the `componentPath` option."
|
49
|
-
},
|
50
|
-
"skipFormat": {
|
51
|
-
"description": "Skip formatting files.",
|
52
|
-
"type": "boolean",
|
53
|
-
"default": false,
|
54
|
-
"x-priority": "internal"
|
55
|
-
}
|
56
|
-
},
|
57
|
-
"additionalProperties": false,
|
58
|
-
"required": [
|
59
|
-
"projectName",
|
60
|
-
"projectPath",
|
61
|
-
"componentName",
|
62
|
-
"componentPath",
|
63
|
-
"componentFileName"
|
64
|
-
],
|
65
|
-
"examplesFile": "../../../docs/component-cypress-spec-examples.md"
|
66
|
-
}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getE2EProject = getE2EProject;
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
5
|
-
function getE2EProject(tree, e2eProjectName) {
|
6
|
-
let e2eProject;
|
7
|
-
try {
|
8
|
-
e2eProject = (0, devkit_1.readProjectConfiguration)(tree, e2eProjectName);
|
9
|
-
}
|
10
|
-
catch {
|
11
|
-
e2eProject = undefined;
|
12
|
-
}
|
13
|
-
return e2eProject;
|
14
|
-
}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.validateOptions = validateOptions;
|
4
|
-
function validateOptions(options) {
|
5
|
-
if (options.generateCypressSpecs && !options.generateStories) {
|
6
|
-
throw new Error('Cannot set generateCypressSpecs to true when generateStories is set to false.');
|
7
|
-
}
|
8
|
-
}
|