@rxap/plugin-storybook 20.0.5-dev.3 → 20.1.0-dev.2
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 +16 -0
- package/README.md +11 -11
- package/package.json +6 -6
- package/src/generators/init/schema.json +29 -5
- package/src/generators/init-application/schema.json +72 -14
- package/src/generators/init-library/schema.json +72 -14
- package/src/lib/coerce-main.js +37 -40
- package/src/lib/coerce-main.js.map +1 -1
- package/src/lib/coerce-preview.js +81 -84
- package/src/lib/coerce-preview.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [20.1.0-dev.2](https://gitlab.com/rxap/packages/compare/@rxap/plugin-storybook@20.1.0-dev.1...@rxap/plugin-storybook@20.1.0-dev.2) (2026-01-13)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @rxap/plugin-storybook
|
|
9
|
+
|
|
10
|
+
# [20.1.0-dev.1](https://gitlab.com/rxap/packages/compare/@rxap/plugin-storybook@20.1.0-dev.0...@rxap/plugin-storybook@20.1.0-dev.1) (2026-01-12)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- update package groups ([ba8753f](https://gitlab.com/rxap/packages/commit/ba8753f5f34680adc282d84c557fc43385bfa987))
|
|
15
|
+
|
|
16
|
+
# [20.1.0-dev.0](https://gitlab.com/rxap/packages/compare/@rxap/plugin-storybook@20.0.5-dev.3...@rxap/plugin-storybook@20.1.0-dev.0) (2026-01-12)
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
- **schema:** enhance generator schema documentation with descriptions and examples ([0ae4939](https://gitlab.com/rxap/packages/commit/0ae4939d77e3e313ace4a77d8f5dd86c3c918d29))
|
|
21
|
+
|
|
6
22
|
## [20.0.5-dev.3](https://gitlab.com/rxap/packages/compare/@rxap/plugin-storybook@20.0.5-dev.2...@rxap/plugin-storybook@20.0.5-dev.3) (2025-09-18)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @rxap/plugin-storybook
|
package/README.md
CHANGED
|
@@ -34,11 +34,11 @@ nx g @rxap/plugin-storybook:init
|
|
|
34
34
|
|
|
35
35
|
Option | Type | Default | Description
|
|
36
36
|
--- | --- | --- | ---
|
|
37
|
-
project | string | |
|
|
38
|
-
projects | array | |
|
|
39
|
-
skipFormat | boolean | false |
|
|
40
|
-
overwrite | boolean | false | Whether to overwrite existing files
|
|
41
|
-
skipProjects | boolean | false | Whether to skip executing project
|
|
37
|
+
project | string | | The name of the project to initialize.
|
|
38
|
+
projects | array | | A list of projects to initialize.
|
|
39
|
+
skipFormat | boolean | false | Whether to skip formatting generated files.
|
|
40
|
+
overwrite | boolean | false | Whether to overwrite existing files.
|
|
41
|
+
skipProjects | boolean | false | Whether to skip executing project-specific initialization logic.
|
|
42
42
|
|
|
43
43
|
## init-application
|
|
44
44
|
> init-application generator
|
|
@@ -49,9 +49,9 @@ nx g @rxap/plugin-storybook:init-application
|
|
|
49
49
|
|
|
50
50
|
Option | Type | Default | Description
|
|
51
51
|
--- | --- | --- | ---
|
|
52
|
-
project | string | |
|
|
53
|
-
projects | array | |
|
|
54
|
-
overwrite | boolean | false | Whether to overwrite existing files
|
|
52
|
+
project | string | | The name of the project.
|
|
53
|
+
projects | array | | A list of projects to initialize Storybook for.
|
|
54
|
+
overwrite | boolean | false | Whether to overwrite existing files.
|
|
55
55
|
skipProjects | boolean | false | Whether to skip executing project specific initialization
|
|
56
56
|
interactionTests | boolean | true | Set up Storybook interaction tests.
|
|
57
57
|
configureCypress | boolean | | Specifies whether to configure Cypress or not.
|
|
@@ -74,9 +74,9 @@ nx g @rxap/plugin-storybook:init-library
|
|
|
74
74
|
|
|
75
75
|
Option | Type | Default | Description
|
|
76
76
|
--- | --- | --- | ---
|
|
77
|
-
project | string | |
|
|
78
|
-
projects | array | |
|
|
79
|
-
overwrite | boolean | false | Whether to overwrite existing files
|
|
77
|
+
project | string | | The name of the project.
|
|
78
|
+
projects | array | | A list of projects to initialize Storybook for.
|
|
79
|
+
overwrite | boolean | false | Whether to overwrite existing files.
|
|
80
80
|
skipProjects | boolean | false | Whether to skip executing project specific initialization
|
|
81
81
|
interactionTests | boolean | true | Set up Storybook interaction tests.
|
|
82
82
|
configureCypress | boolean | | Specifies whether to configure Cypress or not.
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "20.0
|
|
2
|
+
"version": "20.1.0-dev.2",
|
|
3
3
|
"name": "@rxap/plugin-storybook",
|
|
4
4
|
"description": "This package provides generators to initialize Storybook for Angular projects within an Nx workspace. It automates the configuration of Storybook, including adding dependencies, setting up configurations, and generating stories. It supports both application and library projects, and offers options to customize the setup, such as enabling Compodoc integration and skipping format checks.\n",
|
|
5
5
|
"license": "MIT",
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
"@nx/angular": "20.5.0",
|
|
8
8
|
"@nx/devkit": "20.5.0",
|
|
9
9
|
"@nx/eslint": "^20.5.0",
|
|
10
|
-
"@rxap/ts-morph": "^1.6.0-dev.
|
|
11
|
-
"@rxap/utilities": "^16.5.0-dev.
|
|
12
|
-
"@rxap/workspace-ts-morph": "^19.1.13-dev.
|
|
13
|
-
"@rxap/workspace-utilities": "^19.8.1-dev.
|
|
10
|
+
"@rxap/ts-morph": "^1.6.0-dev.3",
|
|
11
|
+
"@rxap/utilities": "^16.5.0-dev.1",
|
|
12
|
+
"@rxap/workspace-ts-morph": "^19.1.13-dev.4",
|
|
13
|
+
"@rxap/workspace-utilities": "^19.8.1-dev.3",
|
|
14
14
|
"colors": "^1.4.0",
|
|
15
15
|
"ts-morph": "^18.0.0",
|
|
16
16
|
"tslib": "2.6.2"
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"schematics": "./generators.json",
|
|
46
46
|
"type": "commonjs",
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "69d6ee61a20632f52b77de621089334a34f45e03",
|
|
48
48
|
"types": "./src/index.d.ts",
|
|
49
49
|
"main": "./src/index.js"
|
|
50
50
|
}
|
|
@@ -5,27 +5,51 @@
|
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
7
|
"project": {
|
|
8
|
-
"type": "string"
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The name of the project to initialize.",
|
|
10
|
+
"examples": [
|
|
11
|
+
"my-app"
|
|
12
|
+
]
|
|
9
13
|
},
|
|
10
14
|
"projects": {
|
|
11
15
|
"type": "array",
|
|
12
16
|
"items": {
|
|
13
17
|
"type": "string"
|
|
14
|
-
}
|
|
18
|
+
},
|
|
19
|
+
"description": "A list of projects to initialize.",
|
|
20
|
+
"examples": [
|
|
21
|
+
[
|
|
22
|
+
"app1",
|
|
23
|
+
"app2"
|
|
24
|
+
]
|
|
25
|
+
]
|
|
15
26
|
},
|
|
16
27
|
"skipFormat": {
|
|
17
28
|
"type": "boolean",
|
|
18
|
-
"default": false
|
|
29
|
+
"default": false,
|
|
30
|
+
"description": "Whether to skip formatting generated files.",
|
|
31
|
+
"examples": [
|
|
32
|
+
true,
|
|
33
|
+
false
|
|
34
|
+
]
|
|
19
35
|
},
|
|
20
36
|
"overwrite": {
|
|
21
37
|
"type": "boolean",
|
|
22
38
|
"default": false,
|
|
23
|
-
"description": "Whether to overwrite existing files"
|
|
39
|
+
"description": "Whether to overwrite existing files.",
|
|
40
|
+
"examples": [
|
|
41
|
+
true,
|
|
42
|
+
false
|
|
43
|
+
]
|
|
24
44
|
},
|
|
25
45
|
"skipProjects": {
|
|
26
46
|
"type": "boolean",
|
|
27
47
|
"default": false,
|
|
28
|
-
"description": "Whether to skip executing project
|
|
48
|
+
"description": "Whether to skip executing project-specific initialization logic.",
|
|
49
|
+
"examples": [
|
|
50
|
+
true,
|
|
51
|
+
false
|
|
52
|
+
]
|
|
29
53
|
}
|
|
30
54
|
},
|
|
31
55
|
"required": []
|
|
@@ -5,72 +5,126 @@
|
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
7
|
"project": {
|
|
8
|
-
"type": "string"
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The name of the project.",
|
|
10
|
+
"examples": [
|
|
11
|
+
"my-app"
|
|
12
|
+
]
|
|
9
13
|
},
|
|
10
14
|
"projects": {
|
|
11
15
|
"type": "array",
|
|
12
16
|
"items": {
|
|
13
17
|
"type": "string"
|
|
14
|
-
}
|
|
18
|
+
},
|
|
19
|
+
"description": "A list of projects to initialize Storybook for.",
|
|
20
|
+
"examples": [
|
|
21
|
+
[
|
|
22
|
+
"app1",
|
|
23
|
+
"app2"
|
|
24
|
+
]
|
|
25
|
+
]
|
|
15
26
|
},
|
|
16
27
|
"overwrite": {
|
|
17
28
|
"type": "boolean",
|
|
18
29
|
"default": false,
|
|
19
|
-
"description": "Whether to overwrite existing files"
|
|
30
|
+
"description": "Whether to overwrite existing files.",
|
|
31
|
+
"examples": [
|
|
32
|
+
true,
|
|
33
|
+
false
|
|
34
|
+
]
|
|
20
35
|
},
|
|
21
36
|
"skipProjects": {
|
|
22
37
|
"type": "boolean",
|
|
23
38
|
"default": false,
|
|
24
|
-
"description": "Whether to skip executing project specific initialization"
|
|
39
|
+
"description": "Whether to skip executing project specific initialization",
|
|
40
|
+
"examples": [
|
|
41
|
+
true,
|
|
42
|
+
false
|
|
43
|
+
]
|
|
25
44
|
},
|
|
26
45
|
"interactionTests": {
|
|
27
46
|
"type": "boolean",
|
|
28
47
|
"description": "Set up Storybook interaction tests.",
|
|
29
48
|
"alias": ["configureTestRunner"],
|
|
30
49
|
"x-priority": "important",
|
|
31
|
-
"default": true
|
|
50
|
+
"default": true,
|
|
51
|
+
"examples": [
|
|
52
|
+
true,
|
|
53
|
+
false
|
|
54
|
+
]
|
|
32
55
|
},
|
|
33
56
|
"configureCypress": {
|
|
34
57
|
"type": "boolean",
|
|
35
|
-
"description": "Specifies whether to configure Cypress or not."
|
|
58
|
+
"description": "Specifies whether to configure Cypress or not.",
|
|
59
|
+
"examples": [
|
|
60
|
+
true,
|
|
61
|
+
false
|
|
62
|
+
]
|
|
36
63
|
},
|
|
37
64
|
"generateStories": {
|
|
38
65
|
"type": "boolean",
|
|
39
66
|
"description": "Specifies whether to automatically generate `*.stories.ts` files for components declared in this project or not.",
|
|
40
67
|
"default": true,
|
|
41
|
-
"x-priority": "important"
|
|
68
|
+
"x-priority": "important",
|
|
69
|
+
"examples": [
|
|
70
|
+
true,
|
|
71
|
+
false
|
|
72
|
+
]
|
|
42
73
|
},
|
|
43
74
|
"generateCypressSpecs": {
|
|
44
75
|
"type": "boolean",
|
|
45
|
-
"description": "Specifies whether to automatically generate test files in the generated Cypress e2e app."
|
|
76
|
+
"description": "Specifies whether to automatically generate test files in the generated Cypress e2e app.",
|
|
77
|
+
"examples": [
|
|
78
|
+
true,
|
|
79
|
+
false
|
|
80
|
+
]
|
|
46
81
|
},
|
|
47
82
|
"configureStaticServe": {
|
|
48
83
|
"type": "boolean",
|
|
49
84
|
"description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.",
|
|
50
85
|
"default": true,
|
|
51
|
-
"x-priority": "important"
|
|
86
|
+
"x-priority": "important",
|
|
87
|
+
"examples": [
|
|
88
|
+
true,
|
|
89
|
+
false
|
|
90
|
+
]
|
|
52
91
|
},
|
|
53
92
|
"cypressDirectory": {
|
|
54
93
|
"type": "string",
|
|
55
|
-
"description": "A directory where the Cypress project will be placed. Placed at the root by default."
|
|
94
|
+
"description": "A directory where the Cypress project will be placed. Placed at the root by default.",
|
|
95
|
+
"examples": [
|
|
96
|
+
"apps/my-app-e2e"
|
|
97
|
+
]
|
|
56
98
|
},
|
|
57
99
|
"linter": {
|
|
58
100
|
"description": "The tool to use for running lint checks.",
|
|
59
101
|
"type": "string",
|
|
60
102
|
"enum": ["eslint", "none"],
|
|
61
|
-
"default": "eslint"
|
|
103
|
+
"default": "eslint",
|
|
104
|
+
"examples": [
|
|
105
|
+
"eslint",
|
|
106
|
+
"none"
|
|
107
|
+
]
|
|
62
108
|
},
|
|
63
109
|
"tsConfiguration": {
|
|
64
110
|
"type": "boolean",
|
|
65
111
|
"description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.",
|
|
66
112
|
"default": true,
|
|
67
|
-
"x-priority": "important"
|
|
113
|
+
"x-priority": "important",
|
|
114
|
+
"examples": [
|
|
115
|
+
true,
|
|
116
|
+
false
|
|
117
|
+
]
|
|
68
118
|
},
|
|
69
119
|
"skipFormat": {
|
|
70
120
|
"description": "Skip formatting files.",
|
|
71
121
|
"type": "boolean",
|
|
72
122
|
"default": false,
|
|
73
|
-
"x-priority": "internal"
|
|
123
|
+
"x-priority": "internal",
|
|
124
|
+
"examples": [
|
|
125
|
+
true,
|
|
126
|
+
false
|
|
127
|
+
]
|
|
74
128
|
},
|
|
75
129
|
"ignorePaths": {
|
|
76
130
|
"type": "array",
|
|
@@ -90,7 +144,11 @@
|
|
|
90
144
|
"compodoc": {
|
|
91
145
|
"type": "boolean",
|
|
92
146
|
"description": "Generate documentation using Compodoc.",
|
|
93
|
-
"default": true
|
|
147
|
+
"default": true,
|
|
148
|
+
"examples": [
|
|
149
|
+
true,
|
|
150
|
+
false
|
|
151
|
+
]
|
|
94
152
|
}
|
|
95
153
|
},
|
|
96
154
|
"required": []
|
|
@@ -5,72 +5,126 @@
|
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
7
|
"project": {
|
|
8
|
-
"type": "string"
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The name of the project.",
|
|
10
|
+
"examples": [
|
|
11
|
+
"my-lib"
|
|
12
|
+
]
|
|
9
13
|
},
|
|
10
14
|
"projects": {
|
|
11
15
|
"type": "array",
|
|
12
16
|
"items": {
|
|
13
17
|
"type": "string"
|
|
14
|
-
}
|
|
18
|
+
},
|
|
19
|
+
"description": "A list of projects to initialize Storybook for.",
|
|
20
|
+
"examples": [
|
|
21
|
+
[
|
|
22
|
+
"lib1",
|
|
23
|
+
"lib2"
|
|
24
|
+
]
|
|
25
|
+
]
|
|
15
26
|
},
|
|
16
27
|
"overwrite": {
|
|
17
28
|
"type": "boolean",
|
|
18
29
|
"default": false,
|
|
19
|
-
"description": "Whether to overwrite existing files"
|
|
30
|
+
"description": "Whether to overwrite existing files.",
|
|
31
|
+
"examples": [
|
|
32
|
+
true,
|
|
33
|
+
false
|
|
34
|
+
]
|
|
20
35
|
},
|
|
21
36
|
"skipProjects": {
|
|
22
37
|
"type": "boolean",
|
|
23
38
|
"default": false,
|
|
24
|
-
"description": "Whether to skip executing project specific initialization"
|
|
39
|
+
"description": "Whether to skip executing project specific initialization",
|
|
40
|
+
"examples": [
|
|
41
|
+
true,
|
|
42
|
+
false
|
|
43
|
+
]
|
|
25
44
|
},
|
|
26
45
|
"interactionTests": {
|
|
27
46
|
"type": "boolean",
|
|
28
47
|
"description": "Set up Storybook interaction tests.",
|
|
29
48
|
"alias": ["configureTestRunner"],
|
|
30
49
|
"x-priority": "important",
|
|
31
|
-
"default": true
|
|
50
|
+
"default": true,
|
|
51
|
+
"examples": [
|
|
52
|
+
true,
|
|
53
|
+
false
|
|
54
|
+
]
|
|
32
55
|
},
|
|
33
56
|
"configureCypress": {
|
|
34
57
|
"type": "boolean",
|
|
35
|
-
"description": "Specifies whether to configure Cypress or not."
|
|
58
|
+
"description": "Specifies whether to configure Cypress or not.",
|
|
59
|
+
"examples": [
|
|
60
|
+
true,
|
|
61
|
+
false
|
|
62
|
+
]
|
|
36
63
|
},
|
|
37
64
|
"generateStories": {
|
|
38
65
|
"type": "boolean",
|
|
39
66
|
"description": "Specifies whether to automatically generate `*.stories.ts` files for components declared in this project or not.",
|
|
40
67
|
"default": true,
|
|
41
|
-
"x-priority": "important"
|
|
68
|
+
"x-priority": "important",
|
|
69
|
+
"examples": [
|
|
70
|
+
true,
|
|
71
|
+
false
|
|
72
|
+
]
|
|
42
73
|
},
|
|
43
74
|
"generateCypressSpecs": {
|
|
44
75
|
"type": "boolean",
|
|
45
|
-
"description": "Specifies whether to automatically generate test files in the generated Cypress e2e app."
|
|
76
|
+
"description": "Specifies whether to automatically generate test files in the generated Cypress e2e app.",
|
|
77
|
+
"examples": [
|
|
78
|
+
true,
|
|
79
|
+
false
|
|
80
|
+
]
|
|
46
81
|
},
|
|
47
82
|
"configureStaticServe": {
|
|
48
83
|
"type": "boolean",
|
|
49
84
|
"description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.",
|
|
50
85
|
"default": true,
|
|
51
|
-
"x-priority": "important"
|
|
86
|
+
"x-priority": "important",
|
|
87
|
+
"examples": [
|
|
88
|
+
true,
|
|
89
|
+
false
|
|
90
|
+
]
|
|
52
91
|
},
|
|
53
92
|
"cypressDirectory": {
|
|
54
93
|
"type": "string",
|
|
55
|
-
"description": "A directory where the Cypress project will be placed. Placed at the root by default."
|
|
94
|
+
"description": "A directory where the Cypress project will be placed. Placed at the root by default.",
|
|
95
|
+
"examples": [
|
|
96
|
+
"libs/my-lib-e2e"
|
|
97
|
+
]
|
|
56
98
|
},
|
|
57
99
|
"linter": {
|
|
58
100
|
"description": "The tool to use for running lint checks.",
|
|
59
101
|
"type": "string",
|
|
60
102
|
"enum": ["eslint", "none"],
|
|
61
|
-
"default": "eslint"
|
|
103
|
+
"default": "eslint",
|
|
104
|
+
"examples": [
|
|
105
|
+
"eslint",
|
|
106
|
+
"none"
|
|
107
|
+
]
|
|
62
108
|
},
|
|
63
109
|
"tsConfiguration": {
|
|
64
110
|
"type": "boolean",
|
|
65
111
|
"description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.",
|
|
66
112
|
"default": true,
|
|
67
|
-
"x-priority": "important"
|
|
113
|
+
"x-priority": "important",
|
|
114
|
+
"examples": [
|
|
115
|
+
true,
|
|
116
|
+
false
|
|
117
|
+
]
|
|
68
118
|
},
|
|
69
119
|
"skipFormat": {
|
|
70
120
|
"description": "Skip formatting files.",
|
|
71
121
|
"type": "boolean",
|
|
72
122
|
"default": false,
|
|
73
|
-
"x-priority": "internal"
|
|
123
|
+
"x-priority": "internal",
|
|
124
|
+
"examples": [
|
|
125
|
+
true,
|
|
126
|
+
false
|
|
127
|
+
]
|
|
74
128
|
},
|
|
75
129
|
"ignorePaths": {
|
|
76
130
|
"type": "array",
|
|
@@ -90,7 +144,11 @@
|
|
|
90
144
|
"compodoc": {
|
|
91
145
|
"type": "boolean",
|
|
92
146
|
"description": "Generate documentation using Compodoc.",
|
|
93
|
-
"default": true
|
|
147
|
+
"default": true,
|
|
148
|
+
"examples": [
|
|
149
|
+
true,
|
|
150
|
+
false
|
|
151
|
+
]
|
|
94
152
|
}
|
|
95
153
|
},
|
|
96
154
|
"required": []
|
package/src/lib/coerce-main.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.coerceMain = coerceMain;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const ts_morph_1 = require("@rxap/ts-morph");
|
|
6
5
|
const workspace_ts_morph_1 = require("@rxap/workspace-ts-morph");
|
|
7
6
|
const workspace_utilities_1 = require("@rxap/workspace-utilities");
|
|
@@ -20,44 +19,42 @@ function CoerceObjectLiteralExpressionPropertyAssignment(objectLiteralExpression
|
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
21
|
function coerceMain(tree, projectName, project, options) {
|
|
23
|
-
return
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}, '.storybook/main.ts');
|
|
61
|
-
});
|
|
22
|
+
return (0, workspace_ts_morph_1.TsMorphProjectTransform)(tree, {
|
|
23
|
+
project: projectName,
|
|
24
|
+
}, (_, sourceFile) => {
|
|
25
|
+
const config = (0, ts_morph_1.CoerceVariableDeclaration)(sourceFile, 'config', { initializer: '{}' });
|
|
26
|
+
const objectLiteralExpression = config.getInitializerIfKind(ts_morph_2.SyntaxKind.ObjectLiteralExpression);
|
|
27
|
+
// region staticDirs
|
|
28
|
+
const projectRoot = (0, workspace_utilities_1.GetProjectRoot)(tree, projectName);
|
|
29
|
+
if ((0, workspace_utilities_1.IsApplicationProject)(project)) {
|
|
30
|
+
const storiesPA = CoerceObjectLiteralExpressionPropertyAssignment(objectLiteralExpression, 'stories', { initializer: '[]' });
|
|
31
|
+
const storiesArrayLiteralExpression = storiesPA.getInitializerIfKind(ts_morph_2.SyntaxKind.ArrayLiteralExpression);
|
|
32
|
+
(0, ts_morph_1.CoerceArrayElement)(storiesArrayLiteralExpression, `'../src/feature/**/*.stories.@(js|jsx|ts|tsx|mdx)'`);
|
|
33
|
+
}
|
|
34
|
+
CoerceObjectLiteralExpressionPropertyAssignment(objectLiteralExpression, 'staticDirs', {
|
|
35
|
+
initializer: w => {
|
|
36
|
+
w.writeLine('[');
|
|
37
|
+
ts_morph_2.Writers.object({
|
|
38
|
+
from: w => w.quote((0, path_1.join)((0, path_1.relative)((0, path_1.join)(projectRoot, '.storybook'), tree.root), 'shared/angular/assets')),
|
|
39
|
+
to: w => w.quote('/'),
|
|
40
|
+
})(w);
|
|
41
|
+
w.writeLine(']');
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
// endregion
|
|
45
|
+
// region docs
|
|
46
|
+
const docs = CoerceObjectLiteralExpressionPropertyAssignment(objectLiteralExpression, 'docs', {
|
|
47
|
+
initializer: '{}',
|
|
48
|
+
});
|
|
49
|
+
const docsObjectLiteralExpression = docs.getInitializerIfKind(ts_morph_2.SyntaxKind.ObjectLiteralExpression);
|
|
50
|
+
CoerceObjectLiteralExpressionPropertyAssignment(docsObjectLiteralExpression, 'autodocs', { initializer: 'true' });
|
|
51
|
+
// endregion
|
|
52
|
+
// region addons
|
|
53
|
+
const addons = CoerceObjectLiteralExpressionPropertyAssignment(objectLiteralExpression, 'addons', { initializer: '[]' });
|
|
54
|
+
const addonsArrayLiteralExpression = addons.getInitializerIfKind(ts_morph_2.SyntaxKind.ArrayLiteralExpression);
|
|
55
|
+
(0, ts_morph_1.CoerceArrayElement)(addonsArrayLiteralExpression, `'@storybook/addon-interactions'`);
|
|
56
|
+
(0, ts_morph_1.CoerceArrayElement)(addonsArrayLiteralExpression, `'@storybook/addon-themes'`);
|
|
57
|
+
// endregion
|
|
58
|
+
}, '.storybook/main.ts');
|
|
62
59
|
}
|
|
63
60
|
//# sourceMappingURL=coerce-main.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerce-main.js","sourceRoot":"","sources":["../../../../../../packages/plugin/storybook/src/lib/coerce-main.ts"],"names":[],"mappings":";;AA6CA,gCA4CC
|
|
1
|
+
{"version":3,"file":"coerce-main.js","sourceRoot":"","sources":["../../../../../../packages/plugin/storybook/src/lib/coerce-main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,99 +1,96 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.coercePreview = coercePreview;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const ts_morph_1 = require("@rxap/ts-morph");
|
|
6
5
|
const workspace_ts_morph_1 = require("@rxap/workspace-ts-morph");
|
|
7
6
|
const ts_morph_2 = require("ts-morph");
|
|
8
7
|
function coercePreview(tree, projectName, options) {
|
|
9
|
-
return
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (options.compodoc) {
|
|
14
|
-
(0, ts_morph_1.CoerceImports)(sourceFile, [
|
|
15
|
-
{
|
|
16
|
-
defaultImport: 'docJson',
|
|
17
|
-
moduleSpecifier: '../documentation.json',
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
namedImports: ['setCompodocJson'],
|
|
21
|
-
moduleSpecifier: '@storybook/addon-docs/angular',
|
|
22
|
-
}
|
|
23
|
-
]);
|
|
24
|
-
// add the setCompodocJson call to the preview.ts file if not already exists
|
|
25
|
-
if (!sourceFile.getStatements().find(statement => statement.getText().includes('setCompodocJson(docJson)'))) {
|
|
26
|
-
sourceFile.addStatements(['setCompodocJson(docJson);']);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
const decoratorsDeclaration = (0, ts_morph_1.CoerceVariableDeclaration)(sourceFile, 'decorators', { initializer: '[]' });
|
|
30
|
-
const arrayLiteralExpression = decoratorsDeclaration.getInitializerIfKind(ts_morph_2.SyntaxKind.ArrayLiteralExpression);
|
|
31
|
-
(0, ts_morph_1.CoerceArrayElement)(arrayLiteralExpression, w => {
|
|
32
|
-
w.write('withThemeByClassName(');
|
|
33
|
-
ts_morph_2.Writers.object({
|
|
34
|
-
themes: ts_morph_2.Writers.object({
|
|
35
|
-
// nameOfTheme: 'classNameForTheme',
|
|
36
|
-
light: w => w.quote(''),
|
|
37
|
-
dark: w => w.quote('dark'),
|
|
38
|
-
}),
|
|
39
|
-
defaultTheme: w => w.quote('light'),
|
|
40
|
-
parentSelector: w => w.quote('body'),
|
|
41
|
-
})(w);
|
|
42
|
-
w.write(')');
|
|
43
|
-
}, e => e.getText().startsWith('withThemeByClassName'));
|
|
44
|
-
(0, ts_morph_1.CoerceArrayElement)(arrayLiteralExpression, w => {
|
|
45
|
-
w.write('applicationConfig(');
|
|
46
|
-
ts_morph_2.Writers.object({
|
|
47
|
-
providers: w => {
|
|
48
|
-
w.writeLine('[');
|
|
49
|
-
w.writeLine('provideHttpClient(),');
|
|
50
|
-
w.writeLine('ProvideIconAssetPath([');
|
|
51
|
-
w.quote('mdi.svg');
|
|
52
|
-
w.write(',');
|
|
53
|
-
w.quote('custom.svg');
|
|
54
|
-
w.writeLine(']),');
|
|
55
|
-
w.writeLine('provideNoopAnimations(),');
|
|
56
|
-
w.writeLine('ProvideConfig(),');
|
|
57
|
-
w.writeLine(`ProvideEnvironment({app: '${projectName}-storybook', production: false}),`);
|
|
58
|
-
w.writeLine('],');
|
|
59
|
-
}
|
|
60
|
-
})(w);
|
|
61
|
-
w.write(')');
|
|
62
|
-
}, e => e.getText().startsWith('applicationConfig'));
|
|
8
|
+
return (0, workspace_ts_morph_1.TsMorphProjectTransform)(tree, {
|
|
9
|
+
project: projectName,
|
|
10
|
+
}, (project, sourceFile) => {
|
|
11
|
+
if (options.compodoc) {
|
|
63
12
|
(0, ts_morph_1.CoerceImports)(sourceFile, [
|
|
64
13
|
{
|
|
65
|
-
|
|
66
|
-
moduleSpecifier: '
|
|
14
|
+
defaultImport: 'docJson',
|
|
15
|
+
moduleSpecifier: '../documentation.json',
|
|
67
16
|
},
|
|
68
17
|
{
|
|
69
|
-
namedImports: ['
|
|
70
|
-
moduleSpecifier: '@
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
namedImports: ['ProvideIconAssetPath'],
|
|
74
|
-
moduleSpecifier: '@rxap/icon',
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
namedImports: ['ProvideConfig'],
|
|
78
|
-
moduleSpecifier: '@rxap/config',
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
namedImports: ['ProvideEnvironment'],
|
|
82
|
-
moduleSpecifier: '@rxap/environment',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
namedImports: ['withThemeByClassName'],
|
|
86
|
-
moduleSpecifier: '@storybook/addon-themes',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
namedImports: ['applicationConfig'],
|
|
90
|
-
moduleSpecifier: '@storybook/angular',
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
moduleSpecifier: '@angular/localize/init',
|
|
18
|
+
namedImports: ['setCompodocJson'],
|
|
19
|
+
moduleSpecifier: '@storybook/addon-docs/angular',
|
|
94
20
|
}
|
|
95
21
|
]);
|
|
96
|
-
|
|
97
|
-
|
|
22
|
+
// add the setCompodocJson call to the preview.ts file if not already exists
|
|
23
|
+
if (!sourceFile.getStatements().find(statement => statement.getText().includes('setCompodocJson(docJson)'))) {
|
|
24
|
+
sourceFile.addStatements(['setCompodocJson(docJson);']);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const decoratorsDeclaration = (0, ts_morph_1.CoerceVariableDeclaration)(sourceFile, 'decorators', { initializer: '[]' });
|
|
28
|
+
const arrayLiteralExpression = decoratorsDeclaration.getInitializerIfKind(ts_morph_2.SyntaxKind.ArrayLiteralExpression);
|
|
29
|
+
(0, ts_morph_1.CoerceArrayElement)(arrayLiteralExpression, w => {
|
|
30
|
+
w.write('withThemeByClassName(');
|
|
31
|
+
ts_morph_2.Writers.object({
|
|
32
|
+
themes: ts_morph_2.Writers.object({
|
|
33
|
+
// nameOfTheme: 'classNameForTheme',
|
|
34
|
+
light: w => w.quote(''),
|
|
35
|
+
dark: w => w.quote('dark'),
|
|
36
|
+
}),
|
|
37
|
+
defaultTheme: w => w.quote('light'),
|
|
38
|
+
parentSelector: w => w.quote('body'),
|
|
39
|
+
})(w);
|
|
40
|
+
w.write(')');
|
|
41
|
+
}, e => e.getText().startsWith('withThemeByClassName'));
|
|
42
|
+
(0, ts_morph_1.CoerceArrayElement)(arrayLiteralExpression, w => {
|
|
43
|
+
w.write('applicationConfig(');
|
|
44
|
+
ts_morph_2.Writers.object({
|
|
45
|
+
providers: w => {
|
|
46
|
+
w.writeLine('[');
|
|
47
|
+
w.writeLine('provideHttpClient(),');
|
|
48
|
+
w.writeLine('ProvideIconAssetPath([');
|
|
49
|
+
w.quote('mdi.svg');
|
|
50
|
+
w.write(',');
|
|
51
|
+
w.quote('custom.svg');
|
|
52
|
+
w.writeLine(']),');
|
|
53
|
+
w.writeLine('provideNoopAnimations(),');
|
|
54
|
+
w.writeLine('ProvideConfig(),');
|
|
55
|
+
w.writeLine(`ProvideEnvironment({app: '${projectName}-storybook', production: false}),`);
|
|
56
|
+
w.writeLine('],');
|
|
57
|
+
}
|
|
58
|
+
})(w);
|
|
59
|
+
w.write(')');
|
|
60
|
+
}, e => e.getText().startsWith('applicationConfig'));
|
|
61
|
+
(0, ts_morph_1.CoerceImports)(sourceFile, [
|
|
62
|
+
{
|
|
63
|
+
namedImports: ['provideHttpClient'],
|
|
64
|
+
moduleSpecifier: '@angular/common/http',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
namedImports: ['provideNoopAnimations'],
|
|
68
|
+
moduleSpecifier: '@angular/platform-browser/animations',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
namedImports: ['ProvideIconAssetPath'],
|
|
72
|
+
moduleSpecifier: '@rxap/icon',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
namedImports: ['ProvideConfig'],
|
|
76
|
+
moduleSpecifier: '@rxap/config',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
namedImports: ['ProvideEnvironment'],
|
|
80
|
+
moduleSpecifier: '@rxap/environment',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
namedImports: ['withThemeByClassName'],
|
|
84
|
+
moduleSpecifier: '@storybook/addon-themes',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
namedImports: ['applicationConfig'],
|
|
88
|
+
moduleSpecifier: '@storybook/angular',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
moduleSpecifier: '@angular/localize/init',
|
|
92
|
+
}
|
|
93
|
+
]);
|
|
94
|
+
}, '.storybook/preview.ts');
|
|
98
95
|
}
|
|
99
96
|
//# sourceMappingURL=coerce-preview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerce-preview.js","sourceRoot":"","sources":["../../../../../../packages/plugin/storybook/src/lib/coerce-preview.ts"],"names":[],"mappings":";;AAaA,sCA8FC
|
|
1
|
+
{"version":3,"file":"coerce-preview.js","sourceRoot":"","sources":["../../../../../../packages/plugin/storybook/src/lib/coerce-preview.ts"],"names":[],"mappings":"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"}
|