@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,382 @@
|
|
|
1
|
+
# NX Monorepo Project
|
|
2
|
+
|
|
3
|
+
The NX Monorepo Project type provides an opinionated setup for creating NX monorepo workspaces with best practices and common configurations pre-configured.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This project type extends the standard `TypeScriptProject` from projen with NX-specific features:
|
|
8
|
+
|
|
9
|
+
- **NX configuration** with sensible defaults and caching
|
|
10
|
+
- **Monorepo workspace setup** with package management
|
|
11
|
+
- **GitHub Actions workflow** for publishing releases
|
|
12
|
+
- **Common project structure** optimized for monorepos
|
|
13
|
+
- **Task orchestration** using NX run-many commands
|
|
14
|
+
- **Conventional commits** and automated release management
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
To create a new NX Monorepo project, use the projen CLI:
|
|
19
|
+
|
|
20
|
+
```bash linenums="1"
|
|
21
|
+
npx projen new --from @jttc/projen-project-types nx-monorepo
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
This command will create a new monorepo workspace with the NX template and prompt you for the required configuration options such as:
|
|
25
|
+
|
|
26
|
+
- Project name
|
|
27
|
+
- Default branch
|
|
28
|
+
- Description
|
|
29
|
+
|
|
30
|
+
After the project is created, you can customize it further by editing the `.projenrc.ts` file:
|
|
31
|
+
|
|
32
|
+
```typescript linenums="1" title=".projenrc.ts" hl_lines="4 5 8"
|
|
33
|
+
import { NxMonorepo } from '@jttc/projen-project-types';
|
|
34
|
+
|
|
35
|
+
const project = new NxMonorepo({
|
|
36
|
+
name: 'my-awesome-monorepo',
|
|
37
|
+
defaultReleaseBranch: 'main',
|
|
38
|
+
description: 'My awesome NX monorepo',
|
|
39
|
+
|
|
40
|
+
// Add any additional TypeScript project customizations here
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
project.synth();
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Highlighted lines explanation:**
|
|
47
|
+
|
|
48
|
+
- **Line 4**: Choose a descriptive name for your monorepo
|
|
49
|
+
- **Line 5**: Configure the main branch name
|
|
50
|
+
- **Line 8**: Add any additional customizations supported by TypeScriptProject
|
|
51
|
+
|
|
52
|
+
## Features
|
|
53
|
+
|
|
54
|
+
### NX Configuration
|
|
55
|
+
|
|
56
|
+
The project automatically configures NX with optimal settings:
|
|
57
|
+
|
|
58
|
+
```json title="nx.json" linenums="1"
|
|
59
|
+
{
|
|
60
|
+
"affected": {
|
|
61
|
+
"defaultBase": "main"
|
|
62
|
+
},
|
|
63
|
+
"namedInput": {
|
|
64
|
+
"default": [
|
|
65
|
+
"{projectRoot}/**/*",
|
|
66
|
+
"!{projectRoot}/**/*.{spec,test}.*",
|
|
67
|
+
"!{projectRoot}/node_modules/**/*"
|
|
68
|
+
],
|
|
69
|
+
"production": ["default"],
|
|
70
|
+
"testing": ["{projectRoot}/**/*.{spec,test}.*"]
|
|
71
|
+
},
|
|
72
|
+
"targetDefaults": {
|
|
73
|
+
"build": {
|
|
74
|
+
"dependsOn": ["^build"]
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"release": {
|
|
78
|
+
"projects": ["*"],
|
|
79
|
+
"version": {
|
|
80
|
+
"conventionalCommits": true
|
|
81
|
+
},
|
|
82
|
+
"changelog": {
|
|
83
|
+
"workspaceChangelog": {
|
|
84
|
+
"createRelease": "github"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Task Orchestration
|
|
92
|
+
|
|
93
|
+
The project configures NX-optimized tasks that work across the entire monorepo:
|
|
94
|
+
|
|
95
|
+
| Task | Description | Command |
|
|
96
|
+
|------|-------------|---------|
|
|
97
|
+
| `build` | Build all affected projects | `nx run-many --target=build` |
|
|
98
|
+
| `test` | Test all affected projects | `nx run-many --target=test` |
|
|
99
|
+
| `test:watch` | Watch mode testing | `nx run-many --target=test:watch --skip-nx-cache` |
|
|
100
|
+
| `lint` | Lint all affected projects | `nx run-many --target=eslint` |
|
|
101
|
+
| `package` | Package all affected projects | `nx run-many --target=package` |
|
|
102
|
+
| `graph` | Generate dependency graph | `nx graph` |
|
|
103
|
+
| `release` | Full release with conventional commits | Custom release workflow |
|
|
104
|
+
|
|
105
|
+
### Workspace Structure
|
|
106
|
+
|
|
107
|
+
The monorepo is configured with a standard workspace structure:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
my-monorepo/
|
|
111
|
+
├── packages/ # Individual projects/libraries
|
|
112
|
+
│ ├── project-a/
|
|
113
|
+
│ └── project-b/
|
|
114
|
+
├── nx.json # NX configuration
|
|
115
|
+
├── package.json # Workspace package.json
|
|
116
|
+
├── .projenrc.ts # Projen configuration
|
|
117
|
+
└── .github/
|
|
118
|
+
└── workflows/
|
|
119
|
+
└── publish.yml # Automated publishing
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Configuration Options
|
|
123
|
+
|
|
124
|
+
### Basic Configuration
|
|
125
|
+
|
|
126
|
+
All standard `TypeScriptProjectOptions` are supported. Here are the most common options:
|
|
127
|
+
|
|
128
|
+
```typescript linenums="1" title="Basic NX Monorepo Configuration"
|
|
129
|
+
const project = new NxMonorepo({
|
|
130
|
+
// Required options
|
|
131
|
+
name: 'my-nx-monorepo',
|
|
132
|
+
defaultReleaseBranch: 'main',
|
|
133
|
+
|
|
134
|
+
// Optional TypeScript configurations
|
|
135
|
+
description: 'My awesome NX monorepo',
|
|
136
|
+
authorName: 'Your Name',
|
|
137
|
+
authorEmail: 'your.email@example.com',
|
|
138
|
+
repository: 'https://github.com/username/my-nx-monorepo.git',
|
|
139
|
+
|
|
140
|
+
// Any other TypeScriptProject options...
|
|
141
|
+
});
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Common Configuration Options
|
|
145
|
+
|
|
146
|
+
For Prettier and VSCode configuration options, refer to [Default Configurations](../default-configurations.md):
|
|
147
|
+
|
|
148
|
+
- **Prettier**: [Customization Guide](../default-configurations.md#customization)
|
|
149
|
+
- **VSCode**: [Configuration Options](../default-configurations.md#customization)
|
|
150
|
+
|
|
151
|
+
!!! info "Inherited Configurations"
|
|
152
|
+
The NX Monorepo project inherits all common configurations from the base TypeScriptProject. See [Default Configurations](../default-configurations.md) for complete details.
|
|
153
|
+
|
|
154
|
+
## Package Management
|
|
155
|
+
|
|
156
|
+
### Workspace Configuration
|
|
157
|
+
|
|
158
|
+
The project automatically configures the workspace in `package.json`:
|
|
159
|
+
|
|
160
|
+
```json title="package.json" linenums="1" hl_lines="2 3"
|
|
161
|
+
{
|
|
162
|
+
"private": "true",
|
|
163
|
+
"workspaces": ["packages/*"],
|
|
164
|
+
"devDependencies": {
|
|
165
|
+
"nx": "*",
|
|
166
|
+
"@nx/workspace": "*",
|
|
167
|
+
"@nx/devkit": "*"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Highlighted lines explanation:**
|
|
173
|
+
|
|
174
|
+
- **Line 2**: Marks the root as private (not publishable)
|
|
175
|
+
- **Line 3**: Configures workspace pattern for packages
|
|
176
|
+
|
|
177
|
+
### Adding Packages
|
|
178
|
+
|
|
179
|
+
To add new packages to your monorepo:
|
|
180
|
+
|
|
181
|
+
1. **Create a new directory** in the `packages/` folder:
|
|
182
|
+
```bash
|
|
183
|
+
mkdir packages/my-new-package
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
2. **Initialize the package** with its own projen configuration:
|
|
187
|
+
```typescript title="packages/my-new-package/.projenrc.ts"
|
|
188
|
+
import { TypeScriptProject } from 'projen/lib/typescript';
|
|
189
|
+
|
|
190
|
+
const project = new TypeScriptProject({
|
|
191
|
+
name: 'my-new-package',
|
|
192
|
+
defaultReleaseBranch: 'main',
|
|
193
|
+
parent: '../..', // Reference to monorepo root
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
project.synth();
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
3. **Run projen** to generate the package structure:
|
|
200
|
+
```bash
|
|
201
|
+
cd packages/my-new-package
|
|
202
|
+
npx projen
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Release Management
|
|
206
|
+
|
|
207
|
+
### Automated Publishing
|
|
208
|
+
|
|
209
|
+
The project includes a GitHub Actions workflow that automatically publishes packages:
|
|
210
|
+
|
|
211
|
+
```yaml title=".github/workflows/publish.yml" linenums="1"
|
|
212
|
+
name: publish
|
|
213
|
+
on:
|
|
214
|
+
release:
|
|
215
|
+
types: [published]
|
|
216
|
+
workflow_dispatch:
|
|
217
|
+
inputs:
|
|
218
|
+
version:
|
|
219
|
+
description: 'Version to Publish'
|
|
220
|
+
required: false
|
|
221
|
+
default: ''
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Release Process
|
|
225
|
+
|
|
226
|
+
1. **Create releases** using conventional commits:
|
|
227
|
+
```bash
|
|
228
|
+
yarn release
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
2. **Version management** with NX release:
|
|
232
|
+
```bash
|
|
233
|
+
# Automatic versioning
|
|
234
|
+
yarn nx release version
|
|
235
|
+
|
|
236
|
+
# Specific version
|
|
237
|
+
yarn nx release version --specifier 1.2.3
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
3. **Publish packages**:
|
|
241
|
+
```bash
|
|
242
|
+
yarn nx release publish
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Development Workflow
|
|
246
|
+
|
|
247
|
+
### Daily Development Commands
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
# Install all dependencies
|
|
251
|
+
yarn install
|
|
252
|
+
|
|
253
|
+
# Build all affected projects
|
|
254
|
+
yarn build
|
|
255
|
+
|
|
256
|
+
# Test all affected projects
|
|
257
|
+
yarn test
|
|
258
|
+
|
|
259
|
+
# Lint all affected projects
|
|
260
|
+
yarn lint
|
|
261
|
+
|
|
262
|
+
# Watch mode for testing
|
|
263
|
+
yarn test:watch
|
|
264
|
+
|
|
265
|
+
# View dependency graph
|
|
266
|
+
yarn graph
|
|
267
|
+
|
|
268
|
+
# Run custom nx commands
|
|
269
|
+
yarn nx [command]
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Working with Affected Changes
|
|
273
|
+
|
|
274
|
+
NX automatically detects which projects are affected by your changes:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
# Build only affected projects
|
|
278
|
+
yarn nx affected:build
|
|
279
|
+
|
|
280
|
+
# Test only affected projects
|
|
281
|
+
yarn nx affected:test
|
|
282
|
+
|
|
283
|
+
# Lint only affected projects
|
|
284
|
+
yarn nx affected:lint
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## Best Practices
|
|
288
|
+
|
|
289
|
+
### Project Organization
|
|
290
|
+
|
|
291
|
+
1. **Keep packages focused** - Each package should have a single responsibility
|
|
292
|
+
2. **Use consistent naming** - Follow a clear naming convention for packages
|
|
293
|
+
3. **Shared dependencies** - Put common dependencies in the root package.json
|
|
294
|
+
4. **Type definitions** - Share types between packages when appropriate
|
|
295
|
+
|
|
296
|
+
### Development Guidelines
|
|
297
|
+
|
|
298
|
+
1. **Conventional commits** - Use conventional commit format for automatic changelog generation
|
|
299
|
+
2. **Testing strategy** - Ensure each package has comprehensive tests
|
|
300
|
+
3. **Documentation** - Document each package's API and usage
|
|
301
|
+
4. **Dependencies** - Carefully manage dependencies to avoid conflicts
|
|
302
|
+
|
|
303
|
+
### Performance Optimization
|
|
304
|
+
|
|
305
|
+
1. **Leverage NX cache** - Ensure tasks are cacheable where possible
|
|
306
|
+
2. **Affected builds** - Use affected commands to build only what changed
|
|
307
|
+
3. **Parallel execution** - Configure tasks to run in parallel when possible
|
|
308
|
+
|
|
309
|
+
## Troubleshooting
|
|
310
|
+
|
|
311
|
+
### Common Issues
|
|
312
|
+
|
|
313
|
+
#### Cache Issues
|
|
314
|
+
```bash
|
|
315
|
+
# Clear NX cache
|
|
316
|
+
yarn nx reset
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
#### Dependency Conflicts
|
|
320
|
+
```bash
|
|
321
|
+
# Clean install
|
|
322
|
+
rm -rf node_modules yarn.lock
|
|
323
|
+
yarn install
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
#### Build Failures
|
|
327
|
+
```bash
|
|
328
|
+
# Build with verbose output
|
|
329
|
+
yarn nx run-many --target=build --verbose
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Getting Help
|
|
333
|
+
|
|
334
|
+
- **NX Documentation**: [https://nx.dev](https://nx.dev)
|
|
335
|
+
- **Projen Documentation**: [https://projen.io](https://projen.io)
|
|
336
|
+
- **Project Issues**: Report issues in the project repository
|
|
337
|
+
|
|
338
|
+
## Examples
|
|
339
|
+
|
|
340
|
+
### Complete Configuration
|
|
341
|
+
|
|
342
|
+
```typescript linenums="1" title=".projenrc.ts"
|
|
343
|
+
import { NxMonorepo } from '@jttc/projen-project-types';
|
|
344
|
+
|
|
345
|
+
const project = new NxMonorepo({
|
|
346
|
+
name: 'enterprise-monorepo',
|
|
347
|
+
defaultReleaseBranch: 'main',
|
|
348
|
+
description: 'Enterprise-scale NX monorepo',
|
|
349
|
+
|
|
350
|
+
// Author information
|
|
351
|
+
authorName: 'Enterprise Team',
|
|
352
|
+
authorEmail: 'team@enterprise.com',
|
|
353
|
+
|
|
354
|
+
// Repository configuration
|
|
355
|
+
repository: 'https://github.com/enterprise/monorepo.git',
|
|
356
|
+
|
|
357
|
+
// TypeScript configuration
|
|
358
|
+
tsconfig: {
|
|
359
|
+
compilerOptions: {
|
|
360
|
+
target: 'ES2022',
|
|
361
|
+
lib: ['ES2022'],
|
|
362
|
+
},
|
|
363
|
+
},
|
|
364
|
+
|
|
365
|
+
// Testing configuration
|
|
366
|
+
jestOptions: {
|
|
367
|
+
coverage: true,
|
|
368
|
+
coverageThreshold: {
|
|
369
|
+
global: {
|
|
370
|
+
branches: 80,
|
|
371
|
+
functions: 80,
|
|
372
|
+
lines: 80,
|
|
373
|
+
statements: 80,
|
|
374
|
+
},
|
|
375
|
+
},
|
|
376
|
+
},
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
project.synth();
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
This example shows a complete configuration suitable for an enterprise monorepo with high test coverage requirements and modern TypeScript settings.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
|
|
2
|
+
import { Commitzent } from '../components';
|
|
3
|
+
import { CdkAppOptions } from './interfaces/cdk-app-options';
|
|
4
|
+
/**
|
|
5
|
+
* CDK TypeScript App Project
|
|
6
|
+
*
|
|
7
|
+
* @pjid cdk-app
|
|
8
|
+
*/
|
|
9
|
+
export declare class CdkApp extends AwsCdkTypeScriptApp {
|
|
10
|
+
readonly commitzent?: Commitzent;
|
|
11
|
+
constructor(options: CdkAppOptions);
|
|
12
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CdkApp = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const awscdk_1 = require("projen/lib/awscdk");
|
|
7
|
+
const common_options_1 = require("../common/common-options");
|
|
8
|
+
/**
|
|
9
|
+
* CDK TypeScript App Project
|
|
10
|
+
*
|
|
11
|
+
* @pjid cdk-app
|
|
12
|
+
*/
|
|
13
|
+
class CdkApp extends awscdk_1.AwsCdkTypeScriptApp {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
const opts = common_options_1.CommonOptionsConfig.withCommonOptionsDefaults({
|
|
16
|
+
...options,
|
|
17
|
+
});
|
|
18
|
+
super({
|
|
19
|
+
...opts,
|
|
20
|
+
});
|
|
21
|
+
const components = common_options_1.CommonOptionsConfig.withCommonComponents(this, opts);
|
|
22
|
+
this.commitzent = components.commitzent;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.CdkApp = CdkApp;
|
|
26
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
27
|
+
CdkApp[_a] = { fqn: "@jttc/projen-project-types.CdkApp", version: "1.0.0-beta.10" };
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFwcC1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nkay9jZGstYXBwLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBd0Q7QUFDeEQsNkRBQStEO0FBSS9EOzs7O0dBSUc7QUFDSCxNQUFhLE1BQU8sU0FBUSw0QkFBbUI7SUFFN0MsWUFBWSxPQUFzQjtRQUNoQyxNQUFNLElBQUksR0FBRyxvQ0FBbUIsQ0FBQyx5QkFBeUIsQ0FBQztZQUN6RCxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUM7WUFDSixHQUFHLElBQUk7U0FDUixDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxvQ0FBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQzFDLENBQUM7O0FBWEgsd0JBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgQ29tbW9uT3B0aW9uc0NvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi9jb21tb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBDb21taXR6ZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDZGtBcHBPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Nkay1hcHAtb3B0aW9ucyc7XG5cbi8qKlxuICogQ0RLIFR5cGVTY3JpcHQgQXBwIFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGstYXBwXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtBcHAgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgcmVhZG9ubHkgY29tbWl0emVudD86IENvbW1pdHplbnQ7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka0FwcE9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0gQ29tbW9uT3B0aW9uc0NvbmZpZy53aXRoQ29tbW9uT3B0aW9uc0RlZmF1bHRzKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgICBjb25zdCBjb21wb25lbnRzID0gQ29tbW9uT3B0aW9uc0NvbmZpZy53aXRoQ29tbW9uQ29tcG9uZW50cyh0aGlzLCBvcHRzKTtcbiAgICB0aGlzLmNvbW1pdHplbnQgPSBjb21wb25lbnRzLmNvbW1pdHplbnQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AwsCdkConstructLibrary } from 'projen/lib/awscdk';
|
|
2
|
+
import { Commitzent } from '../components';
|
|
3
|
+
import { CdkLibraryOptions } from './interfaces/cdk-library-options';
|
|
4
|
+
/**
|
|
5
|
+
* CDK Construct Library Project
|
|
6
|
+
*
|
|
7
|
+
* @pjid cdk-library
|
|
8
|
+
*/
|
|
9
|
+
export declare class CdkLibrary extends AwsCdkConstructLibrary {
|
|
10
|
+
readonly commitzent?: Commitzent;
|
|
11
|
+
constructor(options: CdkLibraryOptions);
|
|
12
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CdkLibrary = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const awscdk_1 = require("projen/lib/awscdk");
|
|
7
|
+
const common_options_1 = require("../common/common-options");
|
|
8
|
+
/**
|
|
9
|
+
* CDK Construct Library Project
|
|
10
|
+
*
|
|
11
|
+
* @pjid cdk-library
|
|
12
|
+
*/
|
|
13
|
+
class CdkLibrary extends awscdk_1.AwsCdkConstructLibrary {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
const opts = common_options_1.CommonOptionsConfig.withCommonOptionsDefaults({
|
|
16
|
+
...options,
|
|
17
|
+
});
|
|
18
|
+
super({
|
|
19
|
+
...opts,
|
|
20
|
+
});
|
|
21
|
+
const components = common_options_1.CommonOptionsConfig.withCommonComponents(this, opts);
|
|
22
|
+
this.commitzent = components.commitzent;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.CdkLibrary = CdkLibrary;
|
|
26
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
27
|
+
CdkLibrary[_a] = { fqn: "@jttc/projen-project-types.CdkLibrary", version: "1.0.0-beta.10" };
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWxpYnJhcnktcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvY2RrLWxpYnJhcnktcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUEyRDtBQUMzRCw2REFBK0Q7QUFJL0Q7Ozs7R0FJRztBQUNILE1BQWEsVUFBVyxTQUFRLCtCQUFzQjtJQUVwRCxZQUFZLE9BQTBCO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLG9DQUFtQixDQUFDLHlCQUF5QixDQUFDO1lBQ3pELEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQztZQUNKLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFHLG9DQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7SUFDMUMsQ0FBQzs7QUFYSCxnQ0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF3c0Nka0NvbnN0cnVjdExpYnJhcnkgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5pbXBvcnQgeyBDb21tb25PcHRpb25zQ29uZmlnIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi1vcHRpb25zJztcbmltcG9ydCB7IENvbW1pdHplbnQgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IENka0xpYnJhcnlPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Nkay1saWJyYXJ5LW9wdGlvbnMnO1xuXG4vKipcbiAqIENESyBDb25zdHJ1Y3QgTGlicmFyeSBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrLWxpYnJhcnlcbiAqL1xuZXhwb3J0IGNsYXNzIENka0xpYnJhcnkgZXh0ZW5kcyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5IHtcbiAgcmVhZG9ubHkgY29tbWl0emVudD86IENvbW1pdHplbnQ7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka0xpYnJhcnlPcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0cyA9IENvbW1vbk9wdGlvbnNDb25maWcud2l0aENvbW1vbk9wdGlvbnNEZWZhdWx0cyh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdHMsXG4gICAgfSk7XG4gICAgY29uc3QgY29tcG9uZW50cyA9IENvbW1vbk9wdGlvbnNDb25maWcud2l0aENvbW1vbkNvbXBvbmVudHModGhpcywgb3B0cyk7XG4gICAgdGhpcy5jb21taXR6ZW50ID0gY29tcG9uZW50cy5jb21taXR6ZW50O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TypeScriptProject } from 'projen/lib/typescript';
|
|
2
|
+
import { Cdk8sComponent, Commitzent } from '../components';
|
|
3
|
+
import { Cdk8sAppOptions } from './interfaces/cdk8s-app-options';
|
|
4
|
+
/**
|
|
5
|
+
* CDK8s Application Project
|
|
6
|
+
*
|
|
7
|
+
* @pjid cdk8s-app
|
|
8
|
+
*/
|
|
9
|
+
export declare class Cdk8App extends TypeScriptProject {
|
|
10
|
+
readonly cdk8s: Cdk8sComponent;
|
|
11
|
+
readonly commitzent?: Commitzent;
|
|
12
|
+
constructor(options: Cdk8sAppOptions);
|
|
13
|
+
postSynthesize(): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Cdk8App = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const child_process_1 = require("child_process");
|
|
7
|
+
const typescript_1 = require("projen/lib/typescript");
|
|
8
|
+
const common_options_1 = require("../common/common-options");
|
|
9
|
+
const components_1 = require("../components");
|
|
10
|
+
/**
|
|
11
|
+
* CDK8s Application Project
|
|
12
|
+
*
|
|
13
|
+
* @pjid cdk8s-app
|
|
14
|
+
*/
|
|
15
|
+
class Cdk8App extends typescript_1.TypeScriptProject {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
const opts = common_options_1.CommonOptionsConfig.withCommonOptionsDefaults({
|
|
18
|
+
...options,
|
|
19
|
+
sampleCode: false,
|
|
20
|
+
eslintOptions: {
|
|
21
|
+
dirs: ['src', 'test', 'build-tools', 'projenrc', '.projenrc.ts'],
|
|
22
|
+
ignorePatterns: [
|
|
23
|
+
'*.js',
|
|
24
|
+
'*.d.ts',
|
|
25
|
+
'node_modules/',
|
|
26
|
+
'*.generated.ts',
|
|
27
|
+
'coverage',
|
|
28
|
+
'**/k8s.ts',
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
super(opts);
|
|
33
|
+
// Add constructs dependency
|
|
34
|
+
this.addDeps('constructs@^10.4.2');
|
|
35
|
+
this.cdk8s = new components_1.Cdk8sComponent(this, 'cdk8s-component', options);
|
|
36
|
+
if (options.k3d != false) {
|
|
37
|
+
new components_1.K3d(this, 'k3d-component', options.k3dOptions);
|
|
38
|
+
}
|
|
39
|
+
const components = common_options_1.CommonOptionsConfig.withCommonComponents(this, opts);
|
|
40
|
+
this.commitzent = components.commitzent;
|
|
41
|
+
}
|
|
42
|
+
postSynthesize() {
|
|
43
|
+
const cdk8sImportTask = this.tasks.tryFind('cdk8s:import');
|
|
44
|
+
if (cdk8sImportTask) {
|
|
45
|
+
(0, child_process_1.execSync)(this.runTaskCommand(cdk8sImportTask), {
|
|
46
|
+
cwd: this.outdir,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.Cdk8App = Cdk8App;
|
|
52
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
53
|
+
Cdk8App[_a] = { fqn: "@jttc/projen-project-types.Cdk8App", version: "1.0.0-beta.10" };
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrOHMtYXBwLXByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2RrL2NkazhzLWFwcC1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQXlDO0FBQ3pDLHNEQUEwRDtBQUMxRCw2REFBK0Q7QUFDL0QsOENBQWdFO0FBR2hFOzs7O0dBSUc7QUFDSCxNQUFhLE9BQVEsU0FBUSw4QkFBaUI7SUFHNUMsWUFBWSxPQUF3QjtRQUNsQyxNQUFNLElBQUksR0FBRyxvQ0FBbUIsQ0FBQyx5QkFBeUIsQ0FBQztZQUN6RCxHQUFHLE9BQU87WUFDVixVQUFVLEVBQUUsS0FBSztZQUNqQixhQUFhLEVBQUU7Z0JBQ2IsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQztnQkFDaEUsY0FBYyxFQUFFO29CQUNkLE1BQU07b0JBQ04sUUFBUTtvQkFDUixlQUFlO29CQUNmLGdCQUFnQjtvQkFDaEIsVUFBVTtvQkFDVixXQUFXO2lCQUNaO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFWiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVsRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxnQkFBRyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxvQ0FBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQzFDLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFBLHdCQUFRLEVBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsRUFBRTtnQkFDN0MsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQTFDSCwwQkEyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFByb2plY3QgfSBmcm9tICdwcm9qZW4vbGliL3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgQ29tbW9uT3B0aW9uc0NvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi9jb21tb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGs4c0NvbXBvbmVudCwgQ29tbWl0emVudCwgSzNkIH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDZGs4c0FwcE9wdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMvY2RrOHMtYXBwLW9wdGlvbnMnO1xuXG4vKipcbiAqIENESzhzIEFwcGxpY2F0aW9uIFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGs4cy1hcHBcbiAqL1xuZXhwb3J0IGNsYXNzIENkazhBcHAgZXh0ZW5kcyBUeXBlU2NyaXB0UHJvamVjdCB7XG4gIHJlYWRvbmx5IGNkazhzOiBDZGs4c0NvbXBvbmVudDtcbiAgcmVhZG9ubHkgY29tbWl0emVudD86IENvbW1pdHplbnQ7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENkazhzQXBwT3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSBDb21tb25PcHRpb25zQ29uZmlnLndpdGhDb21tb25PcHRpb25zRGVmYXVsdHMoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgZXNsaW50T3B0aW9uczoge1xuICAgICAgICBkaXJzOiBbJ3NyYycsICd0ZXN0JywgJ2J1aWxkLXRvb2xzJywgJ3Byb2plbnJjJywgJy5wcm9qZW5yYy50cyddLFxuICAgICAgICBpZ25vcmVQYXR0ZXJuczogW1xuICAgICAgICAgICcqLmpzJyxcbiAgICAgICAgICAnKi5kLnRzJyxcbiAgICAgICAgICAnbm9kZV9tb2R1bGVzLycsXG4gICAgICAgICAgJyouZ2VuZXJhdGVkLnRzJyxcbiAgICAgICAgICAnY292ZXJhZ2UnLFxuICAgICAgICAgICcqKi9rOHMudHMnLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHN1cGVyKG9wdHMpO1xuXG4gICAgLy8gQWRkIGNvbnN0cnVjdHMgZGVwZW5kZW5jeVxuICAgIHRoaXMuYWRkRGVwcygnY29uc3RydWN0c0BeMTAuNC4yJyk7XG5cbiAgICB0aGlzLmNkazhzID0gbmV3IENkazhzQ29tcG9uZW50KHRoaXMsICdjZGs4cy1jb21wb25lbnQnLCBvcHRpb25zKTtcblxuICAgIGlmIChvcHRpb25zLmszZCAhPSBmYWxzZSkge1xuICAgICAgbmV3IEszZCh0aGlzLCAnazNkLWNvbXBvbmVudCcsIG9wdGlvbnMuazNkT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50cyA9IENvbW1vbk9wdGlvbnNDb25maWcud2l0aENvbW1vbkNvbXBvbmVudHModGhpcywgb3B0cyk7XG4gICAgdGhpcy5jb21taXR6ZW50ID0gY29tcG9uZW50cy5jb21taXR6ZW50O1xuICB9XG5cbiAgcG9zdFN5bnRoZXNpemUoKTogdm9pZCB7XG4gICAgY29uc3QgY2RrOHNJbXBvcnRUYXNrID0gdGhpcy50YXNrcy50cnlGaW5kKCdjZGs4czppbXBvcnQnKTtcbiAgICBpZiAoY2RrOHNJbXBvcnRUYXNrKSB7XG4gICAgICBleGVjU3luYyh0aGlzLnJ1blRhc2tDb21tYW5kKGNkazhzSW1wb3J0VGFzayksIHtcbiAgICAgICAgY3dkOiB0aGlzLm91dGRpcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AwsCdkConstructLibrary } from 'projen/lib/awscdk';
|
|
2
|
+
import { Cdk8sComponent, Commitzent } from '../components';
|
|
3
|
+
import { Cdk8sLibraryOptions } from './interfaces/cdk8s-library-options';
|
|
4
|
+
/**
|
|
5
|
+
* CDK Construct Library Project
|
|
6
|
+
*
|
|
7
|
+
* @pjid cdk8s-library
|
|
8
|
+
*/
|
|
9
|
+
export declare class Cdk8sLibrary extends AwsCdkConstructLibrary {
|
|
10
|
+
readonly cdk8s: Cdk8sComponent;
|
|
11
|
+
readonly commitzent?: Commitzent;
|
|
12
|
+
constructor(options: Cdk8sLibraryOptions);
|
|
13
|
+
postSynthesize(): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Cdk8sLibrary = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const child_process_1 = require("child_process");
|
|
7
|
+
const awscdk_1 = require("projen/lib/awscdk");
|
|
8
|
+
const common_options_1 = require("../common/common-options");
|
|
9
|
+
const components_1 = require("../components");
|
|
10
|
+
/**
|
|
11
|
+
* CDK Construct Library Project
|
|
12
|
+
*
|
|
13
|
+
* @pjid cdk8s-library
|
|
14
|
+
*/
|
|
15
|
+
class Cdk8sLibrary extends awscdk_1.AwsCdkConstructLibrary {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
const opts = common_options_1.CommonOptionsConfig.withCommonOptionsDefaults({
|
|
18
|
+
...options,
|
|
19
|
+
sampleCode: false,
|
|
20
|
+
eslintOptions: {
|
|
21
|
+
dirs: ['src', 'test', 'build-tools', 'projenrc', '.projenrc.ts'],
|
|
22
|
+
ignorePatterns: [
|
|
23
|
+
'*.js',
|
|
24
|
+
'*.d.ts',
|
|
25
|
+
'node_modules/',
|
|
26
|
+
'*.generated.ts',
|
|
27
|
+
'coverage',
|
|
28
|
+
'**/k8s.ts',
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
super(opts);
|
|
33
|
+
this.cdk8s = new components_1.Cdk8sComponent(this, 'cdk8s-component', opts);
|
|
34
|
+
this.addDeps('constructs@^10.4.2');
|
|
35
|
+
const components = common_options_1.CommonOptionsConfig.withCommonComponents(this, opts);
|
|
36
|
+
this.commitzent = components.commitzent;
|
|
37
|
+
}
|
|
38
|
+
postSynthesize() {
|
|
39
|
+
const cdk8sImportTask = this.tasks.tryFind('cdk8s:import');
|
|
40
|
+
if (cdk8sImportTask) {
|
|
41
|
+
(0, child_process_1.execSync)(this.runTaskCommand(cdk8sImportTask), {
|
|
42
|
+
cwd: this.outdir,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.Cdk8sLibrary = Cdk8sLibrary;
|
|
48
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
49
|
+
Cdk8sLibrary[_a] = { fqn: "@jttc/projen-project-types.Cdk8sLibrary", version: "1.0.0-beta.10" };
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrOHMtbGlicmFyeS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nkay9jZGs4cy1saWJyYXJ5LXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpREFBeUM7QUFDekMsOENBQTJEO0FBQzNELDZEQUErRDtBQUMvRCw4Q0FBMkQ7QUFHM0Q7Ozs7R0FJRztBQUNILE1BQWEsWUFBYSxTQUFRLCtCQUFzQjtJQUd0RCxZQUFZLE9BQTRCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLG9DQUFtQixDQUFDLHlCQUF5QixDQUFDO1lBQ3pELEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGFBQWEsRUFBRTtnQkFDYixJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDO2dCQUNoRSxjQUFjLEVBQUU7b0JBQ2QsTUFBTTtvQkFDTixRQUFRO29CQUNSLGVBQWU7b0JBQ2YsZ0JBQWdCO29CQUNoQixVQUFVO29CQUNWLFdBQVc7aUJBQ1o7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVaLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFbkMsTUFBTSxVQUFVLEdBQUcsb0NBQW1CLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsSUFBQSx3QkFBUSxFQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQzdDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTTthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUFwQ0gsb0NBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IEF3c0Nka0NvbnN0cnVjdExpYnJhcnkgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5pbXBvcnQgeyBDb21tb25PcHRpb25zQ29uZmlnIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi1vcHRpb25zJztcbmltcG9ydCB7IENkazhzQ29tcG9uZW50LCBDb21taXR6ZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDZGs4c0xpYnJhcnlPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NkazhzLWxpYnJhcnktb3B0aW9ucyc7XG5cbi8qKlxuICogQ0RLIENvbnN0cnVjdCBMaWJyYXJ5IFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGs4cy1saWJyYXJ5XG4gKi9cbmV4cG9ydCBjbGFzcyBDZGs4c0xpYnJhcnkgZXh0ZW5kcyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5IHtcbiAgcmVhZG9ubHkgY2RrOHM6IENkazhzQ29tcG9uZW50O1xuICByZWFkb25seSBjb21taXR6ZW50PzogQ29tbWl0emVudDtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrOHNMaWJyYXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSBDb21tb25PcHRpb25zQ29uZmlnLndpdGhDb21tb25PcHRpb25zRGVmYXVsdHMoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgZXNsaW50T3B0aW9uczoge1xuICAgICAgICBkaXJzOiBbJ3NyYycsICd0ZXN0JywgJ2J1aWxkLXRvb2xzJywgJ3Byb2plbnJjJywgJy5wcm9qZW5yYy50cyddLFxuICAgICAgICBpZ25vcmVQYXR0ZXJuczogW1xuICAgICAgICAgICcqLmpzJyxcbiAgICAgICAgICAnKi5kLnRzJyxcbiAgICAgICAgICAnbm9kZV9tb2R1bGVzLycsXG4gICAgICAgICAgJyouZ2VuZXJhdGVkLnRzJyxcbiAgICAgICAgICAnY292ZXJhZ2UnLFxuICAgICAgICAgICcqKi9rOHMudHMnLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHN1cGVyKG9wdHMpO1xuXG4gICAgdGhpcy5jZGs4cyA9IG5ldyBDZGs4c0NvbXBvbmVudCh0aGlzLCAnY2RrOHMtY29tcG9uZW50Jywgb3B0cyk7XG4gICAgdGhpcy5hZGREZXBzKCdjb25zdHJ1Y3RzQF4xMC40LjInKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBDb21tb25PcHRpb25zQ29uZmlnLndpdGhDb21tb25Db21wb25lbnRzKHRoaXMsIG9wdHMpO1xuICAgIHRoaXMuY29tbWl0emVudCA9IGNvbXBvbmVudHMuY29tbWl0emVudDtcbiAgfVxuXG4gIHBvc3RTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IGNkazhzSW1wb3J0VGFzayA9IHRoaXMudGFza3MudHJ5RmluZCgnY2RrOHM6aW1wb3J0Jyk7XG4gICAgaWYgKGNkazhzSW1wb3J0VGFzaykge1xuICAgICAgZXhlY1N5bmModGhpcy5ydW5UYXNrQ29tbWFuZChjZGs4c0ltcG9ydFRhc2spLCB7XG4gICAgICAgIGN3ZDogdGhpcy5vdXRkaXIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/lib/cdk/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cdk-app-project"), exports);
|
|
18
|
+
__exportStar(require("./cdk-library-project"), exports);
|
|
19
|
+
__exportStar(require("./cdk8s-app-project"), exports);
|
|
20
|
+
__exportStar(require("./cdk8s-library-project"), exports);
|
|
21
|
+
__exportStar(require("./interfaces"), exports);
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2RrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBa0M7QUFDbEMsd0RBQXNDO0FBQ3RDLHNEQUFvQztBQUNwQywwREFBd0M7QUFDeEMsK0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jZGstYXBwLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGstbGlicmFyeS1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vY2RrOHMtYXBwLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGs4cy1saWJyYXJ5LXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AwsCdkTypeScriptAppOptions } from 'projen/lib/awscdk';
|
|
2
|
+
import { ProjectGlobalOptions } from './project-global-options';
|
|
3
|
+
/**
|
|
4
|
+
* CDK TypeScript App Project options
|
|
5
|
+
*/
|
|
6
|
+
export interface CdkAppOptions extends AwsCdkTypeScriptAppOptions, ProjectGlobalOptions {
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFwcC1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nkay9pbnRlcmZhY2VzL2Nkay1hcHAtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5pbXBvcnQgeyBQcm9qZWN0R2xvYmFsT3B0aW9ucyB9IGZyb20gJy4vcHJvamVjdC1nbG9iYWwtb3B0aW9ucyc7XG5cbi8qKlxuICogQ0RLIFR5cGVTY3JpcHQgQXBwIFByb2plY3Qgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENka0FwcE9wdGlvbnNcbiAgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucywgUHJvamVjdEdsb2JhbE9wdGlvbnMge1xuICAvLyBGdXR1cmUgQ0RLIEFwcCBzcGVjaWZpYyBvcHRpb25zIGNhbiBiZSBhZGRlZCBoZXJlXG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AwsCdkConstructLibraryOptions } from 'projen/lib/awscdk';
|
|
2
|
+
import { ProjectGlobalOptions } from './project-global-options';
|
|
3
|
+
/**
|
|
4
|
+
* CDK Construct Library Project options
|
|
5
|
+
*/
|
|
6
|
+
export interface CdkLibraryOptions extends AwsCdkConstructLibraryOptions, ProjectGlobalOptions {
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWxpYnJhcnktb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jZGsvaW50ZXJmYWNlcy9jZGstbGlicmFyeS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IFByb2plY3RHbG9iYWxPcHRpb25zIH0gZnJvbSAnLi9wcm9qZWN0LWdsb2JhbC1vcHRpb25zJztcblxuLyoqXG4gKiBDREsgQ29uc3RydWN0IExpYnJhcnkgUHJvamVjdCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrTGlicmFyeU9wdGlvbnNcbiAgZXh0ZW5kcyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucywgUHJvamVjdEdsb2JhbE9wdGlvbnMge1xuICAvLyBGdXR1cmUgQ0RLIExpYnJhcnkgc3BlY2lmaWMgb3B0aW9ucyBjYW4gYmUgYWRkZWQgaGVyZVxufVxuIl19
|