@jttc/projen-project-types 1.0.0-beta.0 → 1.0.0-beta.10
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/.cz-config.js +83 -43
- package/.czrc +1 -1
- package/.jsii +4637 -14
- package/AGENTS.md +132 -0
- package/API.md +31146 -7
- package/README.md +197 -29
- package/docs/components/cdk8s.md +724 -0
- package/docs/components/commitzent.md +261 -0
- package/docs/components/k3d.md +456 -0
- package/docs/default-configurations.md +267 -0
- package/docs/index.md +86 -1
- package/docs/project-types/cdk-app.md +481 -0
- package/docs/project-types/cdk-library.md +321 -0
- package/docs/project-types/cdk8s-app.md +353 -0
- package/docs/project-types/cdk8s-library.md +442 -0
- package/docs/project-types/nx-monorepo.md +382 -0
- package/lib/cdk/cdk-app-project.d.ts +12 -0
- package/lib/cdk/cdk-app-project.js +28 -0
- package/lib/cdk/cdk-library-project.d.ts +12 -0
- package/lib/cdk/cdk-library-project.js +28 -0
- package/lib/cdk/cdk8s-app-project.d.ts +14 -0
- package/lib/cdk/cdk8s-app-project.js +54 -0
- package/lib/cdk/cdk8s-library-project.d.ts +14 -0
- package/lib/cdk/cdk8s-library-project.js +50 -0
- package/lib/cdk/index.d.ts +5 -0
- package/lib/cdk/index.js +22 -0
- package/lib/cdk/interfaces/cdk-app-options.d.ts +7 -0
- package/lib/cdk/interfaces/cdk-app-options.js +3 -0
- package/lib/cdk/interfaces/cdk-library-options.d.ts +7 -0
- package/lib/cdk/interfaces/cdk-library-options.js +3 -0
- package/lib/cdk/interfaces/cdk8s-app-options.d.ts +18 -0
- package/lib/cdk/interfaces/cdk8s-app-options.js +3 -0
- package/lib/cdk/interfaces/cdk8s-library-options.d.ts +8 -0
- package/lib/cdk/interfaces/cdk8s-library-options.js +3 -0
- package/lib/cdk/interfaces/index.d.ts +5 -0
- package/lib/cdk/interfaces/index.js +22 -0
- package/lib/cdk/interfaces/jsii-options.d.ts +7 -0
- package/lib/cdk/interfaces/jsii-options.js +3 -0
- package/lib/cdk/interfaces/project-global-options.d.ts +15 -0
- package/lib/cdk/interfaces/project-global-options.js +3 -0
- package/lib/cdk/jsii-project.d.ts +12 -0
- package/lib/cdk/jsii-project.js +24 -0
- package/lib/common/common-options.d.ts +40 -0
- package/lib/common/common-options.js +110 -0
- package/lib/components/agents/agents.d.ts +21 -0
- package/lib/components/agents/agents.js +476 -0
- package/lib/components/agents/index.d.ts +1 -0
- package/lib/components/agents/index.js +18 -0
- package/lib/components/cdk8s/cdk8s.d.ts +11 -0
- package/lib/components/cdk8s/cdk8s.js +124 -0
- package/lib/components/cdk8s/index.d.ts +2 -0
- package/lib/components/cdk8s/index.js +19 -0
- package/lib/components/cdk8s/interfaces/Cdk8s.d.ts +34 -0
- package/lib/components/cdk8s/interfaces/Cdk8s.js +12 -0
- package/lib/components/cdk8s/main-library.ts.template +35 -0
- package/lib/components/cdk8s/main.test.ts.template +3 -0
- package/lib/components/cdk8s/main.ts.template +38 -0
- package/lib/components/commitzent/commitzent.d.ts +8 -0
- package/lib/components/commitzent/commitzent.js +100 -0
- package/lib/components/commitzent/index.d.ts +2 -0
- package/lib/components/commitzent/index.js +19 -0
- package/lib/components/commitzent/interfaces/Icommitzent.d.ts +34 -0
- package/lib/components/commitzent/interfaces/Icommitzent.js +3 -0
- package/lib/components/index.d.ts +4 -0
- package/lib/components/index.js +21 -0
- package/lib/components/k3d/index.d.ts +3 -0
- package/lib/components/k3d/index.js +20 -0
- package/lib/components/k3d/k3d.d.ts +33 -0
- package/lib/components/k3d/k3d.js +109 -0
- package/lib/components/k3d/k3dBase.d.ts +4 -0
- package/lib/components/k3d/k3dBase.js +23 -0
- package/lib/components/k3d/types.d.ts +64 -0
- package/lib/components/k3d/types.js +8 -0
- package/lib/index.d.ts +5 -3
- package/lib/index.js +20 -12
- package/lib/monorepo/components/NxConfiguration.d.ts +17 -0
- package/lib/monorepo/components/NxConfiguration.js +105 -0
- package/lib/monorepo/components/index.d.ts +2 -0
- package/lib/monorepo/components/index.js +19 -0
- package/lib/monorepo/components/publish-release.d.ts +5 -0
- package/lib/monorepo/components/publish-release.js +80 -0
- package/lib/monorepo/index.d.ts +3 -0
- package/lib/monorepo/index.js +20 -0
- package/lib/monorepo/interfaces/Nx.d.ts +130 -0
- package/lib/monorepo/interfaces/Nx.js +3 -0
- package/lib/monorepo/interfaces/NxMonorepo.d.ts +3 -0
- package/lib/monorepo/interfaces/NxMonorepo.js +3 -0
- package/lib/monorepo/interfaces/index.d.ts +2 -0
- package/lib/monorepo/interfaces/index.js +19 -0
- package/lib/monorepo/monorepo.d.ts +16 -0
- package/lib/monorepo/monorepo.js +131 -0
- package/lib/terraform/components/index.d.ts +2 -0
- package/lib/terraform/components/index.js +19 -0
- package/lib/terraform/components/terraform-deploy-github-workflow.d.ts +26 -0
- package/lib/terraform/components/terraform-deploy-github-workflow.js +92 -0
- package/lib/terraform/components/terraform-plan-github-workflow.d.ts +31 -0
- package/lib/terraform/components/terraform-plan-github-workflow.js +155 -0
- package/lib/terraform/index.d.ts +5 -0
- package/lib/terraform/index.js +22 -0
- package/lib/terraform/providers/hetzner-provider.d.ts +105 -0
- package/lib/terraform/providers/hetzner-provider.js +83 -0
- package/lib/terraform/providers/index.d.ts +2 -0
- package/lib/terraform/providers/index.js +19 -0
- package/lib/terraform/providers/provider-strategy.d.ts +44 -0
- package/lib/terraform/providers/provider-strategy.js +38 -0
- package/lib/terraform/terraform-base-project.d.ts +38 -0
- package/lib/terraform/terraform-base-project.js +97 -0
- package/lib/terraform/terraform-module-project.d.ts +24 -0
- package/lib/terraform/terraform-module-project.js +77 -0
- package/lib/terraform/terraform-stack-project.d.ts +28 -0
- package/lib/terraform/terraform-stack-project.js +83 -0
- package/mkdocs.yml +12 -0
- package/package.json +14 -7
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
# Default Configurations
|
|
2
|
+
|
|
3
|
+
This document describes the default configurations applied to all project types in this package.
|
|
4
|
+
|
|
5
|
+
## Prettier Configuration
|
|
6
|
+
|
|
7
|
+
All projects include Prettier with the following default settings:
|
|
8
|
+
|
|
9
|
+
### Settings Applied
|
|
10
|
+
|
|
11
|
+
```json title=".prettierrc.json" linenums="1"
|
|
12
|
+
{
|
|
13
|
+
"trailingComma": "es5",
|
|
14
|
+
"singleQuote": true,
|
|
15
|
+
"bracketSpacing": true,
|
|
16
|
+
"semi": true
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Rationale
|
|
21
|
+
|
|
22
|
+
- **`trailingComma: "es5"`**: Ensures consistent trailing commas in objects and arrays, making diffs cleaner
|
|
23
|
+
- **`singleQuote: true`**: Uses single quotes for strings, which is common in JavaScript/TypeScript projects
|
|
24
|
+
- **`bracketSpacing: true`**: Adds spaces inside object literal braces `{ foo: bar }`
|
|
25
|
+
- **`semi: true`**: Always includes semicolons for statement termination
|
|
26
|
+
|
|
27
|
+
### Customization
|
|
28
|
+
|
|
29
|
+
You can override these settings by providing custom `prettierOptions`:
|
|
30
|
+
|
|
31
|
+
```typescript title="Custom Prettier Configuration" linenums="1" hl_lines="5 6 7 8"
|
|
32
|
+
const project = new ProjectType({
|
|
33
|
+
// ... other options
|
|
34
|
+
prettierOptions: {
|
|
35
|
+
settings: {
|
|
36
|
+
singleQuote: false,
|
|
37
|
+
semi: false,
|
|
38
|
+
tabWidth: 4,
|
|
39
|
+
printWidth: 120,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Highlighted lines explanation:**
|
|
46
|
+
|
|
47
|
+
- **Line 5**: Use double quotes instead of single quotes
|
|
48
|
+
- **Line 6**: Omit semicolons for cleaner code
|
|
49
|
+
- **Line 7**: Use 4 spaces for indentation instead of 2
|
|
50
|
+
- **Line 8**: Allow longer line length
|
|
51
|
+
|
|
52
|
+
### Disabling Prettier
|
|
53
|
+
|
|
54
|
+
To completely disable Prettier:
|
|
55
|
+
|
|
56
|
+
```typescript title="Disable Prettier" linenums="1" hl_lines="3"
|
|
57
|
+
const project = new ProjectType({
|
|
58
|
+
// ... other options
|
|
59
|
+
prettier: false,
|
|
60
|
+
});
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Highlighted line explanation:**
|
|
64
|
+
|
|
65
|
+
- **Line 3**: No `.prettierrc.json` file will be created
|
|
66
|
+
|
|
67
|
+
## VSCode Configuration
|
|
68
|
+
|
|
69
|
+
All projects include VSCode workspace configuration when enabled (default behavior).
|
|
70
|
+
|
|
71
|
+
### Settings Applied
|
|
72
|
+
|
|
73
|
+
```json title=".vscode/settings.json" linenums="1"
|
|
74
|
+
{
|
|
75
|
+
"editor.formatOnSave": true,
|
|
76
|
+
"editor.indentSize": 2,
|
|
77
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
78
|
+
"eslint.nodePath": "./node_modules",
|
|
79
|
+
"eslint.useFlatConfig": false
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Recommended Extensions
|
|
84
|
+
|
|
85
|
+
The following extensions are automatically recommended for all projects:
|
|
86
|
+
|
|
87
|
+
```json title=".vscode/extensions.json" linenums="1"
|
|
88
|
+
{
|
|
89
|
+
"recommendations": [
|
|
90
|
+
"amazonwebservices.aws-toolkit-vscode",
|
|
91
|
+
"DanielThielking.aws-cloudformation-yaml",
|
|
92
|
+
"ms-azuretools.vscode-containers",
|
|
93
|
+
"dbaeumer.vscode-eslint",
|
|
94
|
+
"esbenp.prettier-vscode",
|
|
95
|
+
"mhutchie.git-graph",
|
|
96
|
+
"github.vscode-github-actions",
|
|
97
|
+
"GitHub.vscode-pull-request-github",
|
|
98
|
+
"eamodio.gitlens",
|
|
99
|
+
"spmeesseman.vscode-taskexplorer",
|
|
100
|
+
"wayou.vscode-todo-highlight",
|
|
101
|
+
"vscode-icons-team.vscode-icons",
|
|
102
|
+
"ms-vscode-remote.vscode-remote-extensionpack"
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
#### Development Tools
|
|
108
|
+
- **AWS Toolkit for VS Code** (`amazonwebservices.aws-toolkit-vscode`)
|
|
109
|
+
- **CloudFormation YAML** (`DanielThielking.aws-cloudformation-yaml`)
|
|
110
|
+
- **Docker** (`ms-azuretools.vscode-containers`)
|
|
111
|
+
|
|
112
|
+
#### Code Quality & Formatting
|
|
113
|
+
- **ESLint** (`dbaeumer.vscode-eslint`)
|
|
114
|
+
- **Prettier** (`esbenp.prettier-vscode`)
|
|
115
|
+
|
|
116
|
+
#### Git & Version Control
|
|
117
|
+
- **Git Graph** (`mhutchie.git-graph`)
|
|
118
|
+
- **GitHub Actions** (`github.vscode-github-actions`)
|
|
119
|
+
- **GitHub Pull Requests** (`GitHub.vscode-pull-request-github`)
|
|
120
|
+
- **GitLens** (`eamodio.gitlens`)
|
|
121
|
+
|
|
122
|
+
#### Productivity
|
|
123
|
+
- **Task Explorer** (`spmeesseman.vscode-taskexplorer`)
|
|
124
|
+
- **TODO Highlight** (`wayou.vscode-todo-highlight`)
|
|
125
|
+
- **VSCode Icons** (`vscode-icons-team.vscode-icons`)
|
|
126
|
+
- **Remote Development Extension Pack** (`ms-vscode-remote.vscode-remote-extensionpack`)
|
|
127
|
+
|
|
128
|
+
### Rationale
|
|
129
|
+
|
|
130
|
+
- **Format on save**: Automatically formats code when saving, ensuring consistency
|
|
131
|
+
- **Prettier as default formatter**: Uses the configured prettier settings
|
|
132
|
+
- **ESLint integration**: Provides real-time linting and error detection
|
|
133
|
+
- **AWS-focused extensions**: Optimized for AWS and cloud development workflows
|
|
134
|
+
- **Git workflow tools**: Enhanced git management and collaboration features
|
|
135
|
+
|
|
136
|
+
### Customization
|
|
137
|
+
|
|
138
|
+
You can disable VSCode configuration entirely:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
const project = new ProjectType({
|
|
142
|
+
// ... other options
|
|
143
|
+
vscode: false,
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Currently, there's no built-in way to customize individual VSCode settings or extensions, but this may be added in future versions.
|
|
148
|
+
|
|
149
|
+
## Configuration Behavior
|
|
150
|
+
|
|
151
|
+
### Default Behavior (Recommended)
|
|
152
|
+
|
|
153
|
+
When no explicit configuration is provided:
|
|
154
|
+
|
|
155
|
+
```typescript title="Default Configuration" linenums="1"
|
|
156
|
+
const project = new ProjectType({
|
|
157
|
+
name: 'my-project',
|
|
158
|
+
// ... other required options
|
|
159
|
+
// prettier: undefined (defaults to true)
|
|
160
|
+
// vscode: undefined (defaults to true)
|
|
161
|
+
});
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Result**: Both Prettier and VSCode configurations are applied with default settings.
|
|
165
|
+
|
|
166
|
+
### Mixed Configurations
|
|
167
|
+
|
|
168
|
+
You can mix and match configurations:
|
|
169
|
+
|
|
170
|
+
=== "Prettier Only"
|
|
171
|
+
|
|
172
|
+
```typescript linenums="1" title="Prettier Only Configuration" hl_lines="3 4"
|
|
173
|
+
const project = new ProjectType({
|
|
174
|
+
// ... other options
|
|
175
|
+
prettier: true,
|
|
176
|
+
vscode: false,
|
|
177
|
+
});
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Highlighted lines explanation:**
|
|
181
|
+
|
|
182
|
+
- **Line 3**: Enable prettier with default settings
|
|
183
|
+
- **Line 4**: No VSCode configuration files created
|
|
184
|
+
|
|
185
|
+
=== "VSCode Only"
|
|
186
|
+
|
|
187
|
+
```typescript linenums="1" title="VSCode Only Configuration" hl_lines="3 4"
|
|
188
|
+
const project = new ProjectType({
|
|
189
|
+
// ... other options
|
|
190
|
+
prettier: false,
|
|
191
|
+
vscode: true,
|
|
192
|
+
});
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Highlighted lines explanation:**
|
|
196
|
+
|
|
197
|
+
- **Line 3**: No prettier configuration files created
|
|
198
|
+
- **Line 4**: Enable VSCode with default settings
|
|
199
|
+
|
|
200
|
+
=== "Both Disabled"
|
|
201
|
+
|
|
202
|
+
```typescript linenums="1" title="Minimal Configuration" hl_lines="3 4"
|
|
203
|
+
const project = new ProjectType({
|
|
204
|
+
// ... other options
|
|
205
|
+
prettier: false,
|
|
206
|
+
vscode: false,
|
|
207
|
+
});
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Highlighted lines explanation:**
|
|
211
|
+
|
|
212
|
+
- **Line 3**: No prettier files
|
|
213
|
+
- **Line 4**: No VSCode files
|
|
214
|
+
|
|
215
|
+
## Files Created
|
|
216
|
+
|
|
217
|
+
### When Prettier is Enabled
|
|
218
|
+
|
|
219
|
+
- `.prettierrc.json` - Prettier configuration file
|
|
220
|
+
- `.prettierignore` - Files to ignore during formatting (if applicable)
|
|
221
|
+
|
|
222
|
+
### When VSCode is Enabled
|
|
223
|
+
|
|
224
|
+
- `.vscode/settings.json` - Workspace settings
|
|
225
|
+
- `.vscode/extensions.json` - Recommended extensions
|
|
226
|
+
|
|
227
|
+
## Best Practices
|
|
228
|
+
|
|
229
|
+
### 1. Stick with Defaults
|
|
230
|
+
|
|
231
|
+
The default configurations have been carefully chosen for optimal development experience across teams. Unless you have specific requirements, it's recommended to use the defaults.
|
|
232
|
+
|
|
233
|
+
### 2. Team Consistency
|
|
234
|
+
|
|
235
|
+
If you customize configurations, ensure all team members are aware of the changes and update their local environments accordingly.
|
|
236
|
+
|
|
237
|
+
### 3. Document Customizations
|
|
238
|
+
|
|
239
|
+
If you deviate from defaults, document the reasons in your project's README or contributing guidelines.
|
|
240
|
+
|
|
241
|
+
### 4. Extension Installation
|
|
242
|
+
|
|
243
|
+
Encourage team members to install the recommended VSCode extensions for the best development experience.
|
|
244
|
+
|
|
245
|
+
## Future Enhancements
|
|
246
|
+
|
|
247
|
+
Planned improvements to the default configurations:
|
|
248
|
+
|
|
249
|
+
- **ESLint default configuration**: Common ESLint rules for TypeScript projects
|
|
250
|
+
- **Jest configuration**: Default test setup and configuration
|
|
251
|
+
- **GitHub Actions**: Standard CI/CD workflows
|
|
252
|
+
- **Dependabot**: Automated dependency updates
|
|
253
|
+
- **Customizable VSCode settings**: Allow overriding individual settings and extensions
|
|
254
|
+
|
|
255
|
+
## Contributing
|
|
256
|
+
|
|
257
|
+
To propose changes to the default configurations:
|
|
258
|
+
|
|
259
|
+
1. Open an issue describing the proposed change and rationale
|
|
260
|
+
2. Discuss with maintainers and community
|
|
261
|
+
3. Submit a pull request with the changes
|
|
262
|
+
4. Update documentation and tests
|
|
263
|
+
5. Ensure backward compatibility
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
*These configurations are maintained by [Jump to the Cloud](https://jumptothecloud.tech) and are designed to provide productive development environments out of the box.*
|
package/docs/index.md
CHANGED
|
@@ -29,7 +29,92 @@ While projen provides excellent base project types, real-world projects often re
|
|
|
29
29
|
|
|
30
30
|
## Getting Started
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Choose from our available project types and components:
|
|
33
|
+
|
|
34
|
+
### 📦 Project Types
|
|
35
|
+
|
|
36
|
+
| Project Type | Description | Use Case | Quick Start |
|
|
37
|
+
|--------------|-------------|----------|-------------|
|
|
38
|
+
| **[CDK Library](project-types/cdk-library.md)** | AWS CDK construct libraries | Creating reusable CDK constructs | `npx projen new --from @jttc/projen-project-types cdk-library` |
|
|
39
|
+
| **[CDK App](project-types/cdk-app.md)** | AWS CDK applications | Building deployable AWS infrastructure | `npx projen new --from @jttc/projen-project-types cdk-app` |
|
|
40
|
+
| **[CDK8s Library](project-types/cdk8s-library.md)** | CDK8s construct libraries with Kubernetes support | Creating reusable Kubernetes constructs | `npx projen new --from @jttc/projen-project-types cdk8s-library` |
|
|
41
|
+
| **[CDK8s App](project-types/cdk8s-app.md)** | CDK8s applications with Kubernetes support | Building deployable Kubernetes applications | `npx projen new --from @jttc/projen-project-types cdk8s-app` |
|
|
42
|
+
| **[NX Monorepo](project-types/nx-monorepo.md)** | NX monorepo workspace | Managing multiple related packages in a single repository | `npx projen new --from @jttc/projen-project-types nx-monorepo` |
|
|
43
|
+
|
|
44
|
+
### 🧩 Components
|
|
45
|
+
|
|
46
|
+
| Component | Description | Integration | Documentation |
|
|
47
|
+
|-----------|-------------|-------------|---------------|
|
|
48
|
+
| **[CDK8s Component](components/cdk8s.md)** | Kubernetes manifest generation with CDK8s | Can be added to any project type | [View Details](components/cdk8s.md) |
|
|
49
|
+
| **[K3d Component](components/k3d.md)** | Local Kubernetes development with K3d | Included in CDK8s apps, can be added to any project | [View Details](components/k3d.md) |
|
|
50
|
+
| **[Commitzent Component](components/commitzent.md)** | Conventional Commits with interactive prompts | Included by default in all project types | [View Details](components/commitzent.md) |
|
|
51
|
+
|
|
52
|
+
### ⚙️ Common Features
|
|
53
|
+
|
|
54
|
+
All project types include:
|
|
55
|
+
|
|
56
|
+
- **[Prettier Configuration](default-configurations.md#prettier-configuration)** - Consistent code formatting
|
|
57
|
+
- **[VSCode Integration](default-configurations.md#vscode-configuration)** - Optimized editor experience
|
|
58
|
+
- **[Commitzent Component](components/commitzent.md)** - Conventional commits with interactive prompts
|
|
59
|
+
- **TypeScript Setup** - Best practices and configurations
|
|
60
|
+
- **Testing Framework** - Jest with appropriate configurations
|
|
61
|
+
- **CI/CD Ready** - GitHub Actions workflows included
|
|
62
|
+
|
|
63
|
+
!!! tip "Getting Started"
|
|
64
|
+
After running any project creation command, follow the interactive prompts to configure your project, then customize further by editing `.projenrc.ts`
|
|
65
|
+
|
|
66
|
+
## Quick Examples
|
|
67
|
+
|
|
68
|
+
### CDK Library Example
|
|
69
|
+
```typescript title=".projenrc.ts"
|
|
70
|
+
import { CdkLibrary } from '@jttc/projen-project-types';
|
|
71
|
+
|
|
72
|
+
const project = new CdkLibrary({
|
|
73
|
+
name: 'my-awesome-constructs',
|
|
74
|
+
author: 'Your Name',
|
|
75
|
+
authorAddress: 'your@email.com',
|
|
76
|
+
repositoryUrl: 'https://github.com/yourusername/my-awesome-constructs.git',
|
|
77
|
+
cdkVersion: '2.1.0',
|
|
78
|
+
defaultReleaseBranch: 'main',
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
project.synth();
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### CDK8s Library Example
|
|
85
|
+
```typescript title=".projenrc.ts"
|
|
86
|
+
import { Cdk8sLibrary, K8sVersion } from '@jttc/projen-project-types';
|
|
87
|
+
|
|
88
|
+
const project = new Cdk8sLibrary({
|
|
89
|
+
name: 'my-k8s-constructs',
|
|
90
|
+
author: 'Your Name',
|
|
91
|
+
authorAddress: 'your@email.com',
|
|
92
|
+
repositoryUrl: 'https://github.com/yourusername/my-k8s-constructs.git',
|
|
93
|
+
cdkVersion: '2.1.0',
|
|
94
|
+
defaultReleaseBranch: 'main',
|
|
95
|
+
k8sVersion: K8sVersion.V1_31,
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
project.synth();
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Architecture
|
|
102
|
+
|
|
103
|
+
This project follows a modular architecture:
|
|
104
|
+
|
|
105
|
+
- **Project Types**: Complete project templates with full configuration
|
|
106
|
+
- **Components**: Reusable functionality that can be added to any project
|
|
107
|
+
- **Common Configurations**: Shared settings applied across all project types
|
|
108
|
+
|
|
109
|
+
## Roadmap
|
|
110
|
+
|
|
111
|
+
Future project types and components planned:
|
|
112
|
+
|
|
113
|
+
- **Next.js Projects** - Full-stack TypeScript applications
|
|
114
|
+
- **Node.js APIs** - REST and GraphQL API templates
|
|
115
|
+
- **React Libraries** - Component library templates
|
|
116
|
+
- **Terraform Modules** - Infrastructure as Code templates
|
|
117
|
+
- **Docker Components** - Containerization support
|
|
33
118
|
|
|
34
119
|
## Contributing
|
|
35
120
|
|