@jakubmazanec/carson-templates 2.2.1 → 2.3.0-unstable.1a1eb5f

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakubmazanec/carson-templates",
3
- "version": "2.2.1",
3
+ "version": "2.3.0-unstable.1a1eb5f",
4
4
  "description": "Collection of Carson templates.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -2,6 +2,13 @@
2
2
  to: '.eslintrc.cjs'
3
3
  strategy: overwrite
4
4
  ---
5
+ <%
6
+ let lintIgnorePatterns = [
7
+ ...LINT_IGNORE_PATTERNS,
8
+ 'dbschema/edgeql-js/',
9
+ 'dbschema/interfaces.*',
10
+ ];
11
+ -%>
5
12
  /**
6
13
  * DO NOT EDIT!
7
14
  * This file was autogenerated by Carson.
@@ -17,5 +24,5 @@ module.exports = {
17
24
  '@jakubmazanec/eslint-config/nodejs',
18
25
  '@jakubmazanec/eslint-config/prettier',
19
26
  ],
20
- ignorePatterns: <%- JSON.stringify(LINT_IGNORE_PATTERNS, null, 2) %>,
27
+ ignorePatterns: <%- JSON.stringify(lintIgnorePatterns, null, 2) %>,
21
28
  };
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  to: 'Dockerfile'
3
+ if: <%- Boolean(project.config.deployment?.appName) %>
3
4
  strategy: overwrite
4
5
  ---
5
6
  <%
@@ -0,0 +1,7 @@
1
+ ---
2
+ to: 'edgedb.toml'
3
+ if: <%- Boolean(project.config.deployment?.dbInstance) %>
4
+ strategy: overwrite
5
+ ---
6
+ [edgedb]
7
+ server-version = "5.2"
@@ -12,8 +12,9 @@ let tsconfig = lodash.merge(
12
12
  noEmit: true,
13
13
  resolveJsonModule: true,
14
14
  rootDir: '.',
15
+ exactOptionalPropertyTypes: project.config.deployment?.dbInstance ? false : true, // TODO: when EdgeDB client supports `exactOptionalPropertyTypes: true`, remove this line
15
16
  },
16
- include: ['./env.d.ts', './*', './app/**/*'],
17
+ include: project.config.deployment?.dbInstance ? ['./app/**/*', './dbschema/**/*', './*'] : ['./app/**/*', './*'],
17
18
  references: getReferences(workspace, project),
18
19
  },
19
20
  project.config.overrides?.tsconfig ?? {},
@@ -2,6 +2,19 @@
2
2
  to: 'tsconfig.typecheck.json'
3
3
  strategy: overwrite
4
4
  ---
5
+ <%
6
+ let tsconfig = lodash.merge(
7
+ {
8
+ extends: './tsconfig.json',
9
+ compilerOptions: {
10
+ composite: false,
11
+ },
12
+ include: project.config.deployment?.dbInstance ? ['./app/**/*', './dbschema/**/*', './tests/**/*', './*'] : ['./app/**/*', './tests/**/*', './*'],
13
+ references: getReferences(workspace, project),
14
+ },
15
+ project.config.overrides?.tsconfig ?? {},
16
+ );
17
+ -%>
5
18
  //
6
19
  // DO NOT EDIT!
7
20
  // This file was autogenerated by Carson.
@@ -10,10 +23,4 @@ strategy: overwrite
10
23
  // Run `npx carson update workspace` to regenerate.
11
24
  //
12
25
 
13
- {
14
- "extends": "./tsconfig.json",
15
- "compilerOptions": {
16
- "composite": false
17
- },
18
- "include": ["./app/**/*", "./tests/**/*", "./*"]
19
- }
26
+ <%- JSON.stringify(tsconfig, null, 2) %>
@@ -2,6 +2,21 @@
2
2
  to: '.github/workflows/check-pull-request.yaml'
3
3
  strategy: overwrite
4
4
  ---
5
+ <%
6
+ let appsWithDb = [];
7
+
8
+ for (let project of workspace.projects) {
9
+ if (project.config.deployment?.dbInstance) {
10
+ appsWithDb.push(project.name);
11
+ }
12
+ }
13
+
14
+ let appsWithDbFilter = appsWithDb.map((name) => `--filter=!${name}`).join(' ');
15
+
16
+ if (appsWithDbFilter) {
17
+ appsWithDbFilter = `-- ${appsWithDbFilter}`;
18
+ }
19
+ -%>
5
20
  #
6
21
  # DO NOT EDIT!
7
22
  # This file was autogenerated by Carson.
@@ -45,6 +60,17 @@ jobs:
45
60
  with:
46
61
  node-version: 20
47
62
 
63
+ <%
64
+ if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
65
+ -%>
66
+
67
+ - uses: edgedb/setup-edgedb@v1
68
+ with:
69
+ server-version: none
70
+ <%
71
+ }
72
+ -%>
73
+
48
74
  - name: Install packages
49
75
  run: npm ci
50
76
 
@@ -62,8 +88,61 @@ jobs:
62
88
 
63
89
  git config --unset core.filemode
64
90
 
91
+ <%
92
+ for (let project of workspace.projects) {
93
+ if (project.config.deployment?.dbInstance) {
94
+ -%>
95
+
96
+ - name: DEBUG - Run only codegen, directly
97
+ env:
98
+ EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
99
+ EDGEDB_BRANCH: ${{ github.head_ref }}
100
+ EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
101
+ run: |
102
+ npm run codegen --workspace <%- project.name %>
103
+
104
+ <%
105
+ }
106
+ }
107
+ -%>
108
+
109
+ <%
110
+ for (let project of workspace.projects) {
111
+ if (project.config.deployment?.dbInstance) {
112
+ -%>
113
+
114
+ - name: DEBUG - Run only codegen, via Turborepo
115
+ env:
116
+ EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
117
+ EDGEDB_BRANCH: ${{ github.head_ref }}
118
+ EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
119
+ run: |
120
+ npx turbo run codegen --filter=<%- project.name %> -vv
121
+
122
+ <%
123
+ }
124
+ }
125
+ -%>
126
+
65
127
  - name: Run tests
66
- run: npm test
128
+ run: npm test <%- appsWithDbFilter %>
129
+
130
+ <%
131
+ for (let project of workspace.projects) {
132
+ if (project.config.deployment?.dbInstance) {
133
+ -%>
134
+
135
+ - name: Run tests
136
+ env:
137
+ EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
138
+ EDGEDB_BRANCH: ${{ github.head_ref }}
139
+ EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
140
+ run: |
141
+ npm run test -- --filter=<%- project.name %> -vv
142
+ <%
143
+ }
144
+ }
145
+ -%>
67
146
 
68
147
  - name: Check for changes
69
148
  run: |
@@ -2,6 +2,21 @@
2
2
  to: '.github/workflows/release-pull-request.yaml'
3
3
  strategy: overwrite
4
4
  ---
5
+ <%
6
+ let appsWithDb = [];
7
+
8
+ for (let project of workspace.projects) {
9
+ if (project.config.deployment?.dbInstance) {
10
+ appsWithDb.push(project.name);
11
+ }
12
+ }
13
+
14
+ let appsWithDbFilter = appsWithDb.map((name) => `--filter=!${name}`).join(' ');
15
+
16
+ if (appsWithDbFilter) {
17
+ appsWithDbFilter = `-- ${appsWithDbFilter}`;
18
+ }
19
+ -%>
5
20
  #
6
21
  # DO NOT EDIT!
7
22
  # This file was autogenerated by Carson.
@@ -46,6 +61,17 @@ jobs:
46
61
  node-version: 20
47
62
  registry-url: 'https://registry.npmjs.org'
48
63
 
64
+ <%
65
+ if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
66
+ -%>
67
+
68
+ - uses: edgedb/setup-edgedb@v1
69
+ with:
70
+ server-version: none
71
+ <%
72
+ }
73
+ -%>
74
+
49
75
  - name: Install packages
50
76
  run: npm ci
51
77
 
@@ -64,7 +90,24 @@ jobs:
64
90
  git config --unset core.filemode
65
91
 
66
92
  - name: Run tests
67
- run: npm test
93
+ run: npm test <%- appsWithDbFilter %>
94
+
95
+ <%
96
+ for (let project of workspace.projects) {
97
+ if (project.config.deployment?.dbInstance) {
98
+ -%>
99
+
100
+ - name: Run tests
101
+ env:
102
+ EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
103
+ EDGEDB_BRANCH: ${{ github.head_ref }}
104
+ EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
105
+ run: |
106
+ npm run test -- --filter=<%- project.name %> -vv
107
+ <%
108
+ }
109
+ }
110
+ -%>
68
111
 
69
112
  - name: Check for changes
70
113
  run: |
@@ -128,6 +128,34 @@ jobs:
128
128
  - name: Push changes
129
129
  run: |
130
130
  git push --follow-tags
131
+
132
+ <%
133
+ if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
134
+ -%>
135
+
136
+ - uses: edgedb/setup-edgedb@v1
137
+ with:
138
+ server-version: none
139
+ <%
140
+ }
141
+
142
+ for (let project of workspace.projects) {
143
+ if (project.config.deployment?.dbInstance) {
144
+ -%>
145
+
146
+ - name: Migrate "<%- project.name %>"
147
+ env:
148
+ EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
149
+ EDGEDB_BRANCH: ${{ github.ref_name }}
150
+ EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
151
+ run: |
152
+ edgedb project init --link --server-instance <%- project.config.deployment.dbInstance %> --project-dir <%- project.relativePath %>--non-interactive
153
+ edgedb migrate -I <%- project.config.deployment.dbInstance %>
154
+ <%
155
+ }
156
+ }
157
+ -%>
158
+
131
159
  <%
132
160
  if (workspace.projects.some((project) => project.config.deployment?.appName)) {
133
161
  -%>
@@ -140,7 +168,7 @@ for (let project of workspace.projects) {
140
168
  if (project.config.deployment?.appName) {
141
169
  -%>
142
170
 
143
- - name: Deploy <%- project.name %>
171
+ - name: Deploy "<%- project.name %>"
144
172
  run:
145
173
  npm run deploy --workspace <%- project.name %>
146
174
  env:
@@ -262,6 +290,32 @@ for (let project of workspace.projects) {
262
290
  NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
263
291
  NPM_CONFIG_PROVENANCE: 'true' # must be string, not boolean
264
292
  <%
293
+ if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
294
+ -%>
295
+
296
+ - uses: edgedb/setup-edgedb@v1
297
+ with:
298
+ server-version: none
299
+ <%
300
+ }
301
+
302
+ for (let project of workspace.projects) {
303
+ if (project.config.deployment?.dbInstance) {
304
+ -%>
305
+
306
+ - name: Migrate "<%- project.name %>"
307
+ env:
308
+ EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
309
+ EDGEDB_BRANCH: ${{ github.ref_name }}
310
+ EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
311
+ run: |
312
+ edgedb project init --link --server-instance <%- project.config.deployment.dbInstance %> --project-dir <%- project.relativePath %>--non-interactive
313
+ edgedb migrate -I <%- project.config.deployment.dbInstance %>
314
+ <%
315
+ }
316
+ }
317
+ -%>
318
+ <%
265
319
  if (workspace.projects.some((project) => project.config.deployment?.appName)) {
266
320
  -%>
267
321
 
@@ -273,7 +327,7 @@ for (let project of workspace.projects) {
273
327
  if (project.config.deployment?.appName) {
274
328
  -%>
275
329
 
276
- - name: Deploy <%- project.name %>
330
+ - name: Deploy "<%- project.name %>"
277
331
  run:
278
332
  npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next
279
333
  env: