@jakubmazanec/carson-templates 2.3.0 → 2.4.0-next.83fd9d1

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.
@@ -0,0 +1,2 @@
1
+ import { type Project } from '@jakubmazanec/carson';
2
+ export declare function getAppUrl(project: Project, deploymentEnvironment?: string): string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ export function getAppUrl(project, deploymentEnvironment) {
3
+ let appName = project.config.deployment?.appName;
4
+ let appUrl = project.config.deployment?.appUrl;
5
+ if (appUrl && deploymentEnvironment === void 0 || !appName && appUrl) {
6
+ return appUrl;
7
+ }
8
+ if (!appName) {
9
+ return `http://localhost:5000`;
10
+ }
11
+ return `https://${deploymentEnvironment ? `${appName}-${deploymentEnvironment}` : appName}.fly.dev`;
12
+ }
13
+ //# sourceMappingURL=getAppUrl.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../source/getAppUrl.ts"],
4
+ "sourcesContent": ["import {type Project} from '@jakubmazanec/carson';\n\nexport function getAppUrl(project: Project, deploymentEnvironment?: string) {\n let appName = (project.config as {deployment?: {appName?: string}}).deployment?.appName;\n let appUrl = (project.config as {deployment?: {appUrl?: string}}).deployment?.appUrl;\n\n if ((appUrl && deploymentEnvironment === undefined) || (!appName && appUrl)) {\n return appUrl;\n }\n\n if (!appName) {\n return `http://localhost:5000`;\n }\n\n return `https://${deploymentEnvironment ? `${appName}-${deploymentEnvironment}` : appName}.fly.dev`;\n}\n"],
5
+ "mappings": ";AAEO,gBAAS,UAAU,SAAkB,uBAAgC;AAC1E,MAAI,UAAW,QAAQ,OAA6C,YAAY;AAChF,MAAI,SAAU,QAAQ,OAA4C,YAAY;AAE9E,MAAK,UAAU,0BAA0B,UAAe,CAAC,WAAW,QAAS;AAC3E,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SAAO,WAAW,wBAAwB,GAAG,OAAO,IAAI,qBAAqB,KAAK,OAAO;AAC3F;",
6
+ "names": []
7
+ }
package/build/main.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './constants.js';
2
+ export * from './getAppUrl.js';
2
3
  export * from './getDependencies.js';
3
4
  export * from './getDevelopmentBranch.js';
4
5
  export * from './getMainBranch.js';
package/build/main.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  export * from "./constants.js";
3
+ export * from "./getAppUrl.js";
3
4
  export * from "./getDependencies.js";
4
5
  export * from "./getDevelopmentBranch.js";
5
6
  export * from "./getMainBranch.js";
package/build/main.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../source/main.ts"],
4
- "sourcesContent": ["export * from './constants.js';\nexport * from './getDependencies.js';\nexport * from './getDevelopmentBranch.js';\nexport * from './getMainBranch.js';\nexport * from './getReferences.js';\nexport * from './getWorkspaceName.js';\nexport {default as lodash} from 'lodash';\nexport {default as semver} from 'semver';\n"],
5
- "mappings": ";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAQ,WAAW,cAAa;AAChC,SAAQ,WAAW,cAAa;",
4
+ "sourcesContent": ["export * from './constants.js';\nexport * from './getAppUrl.js';\nexport * from './getDependencies.js';\nexport * from './getDevelopmentBranch.js';\nexport * from './getMainBranch.js';\nexport * from './getReferences.js';\nexport * from './getWorkspaceName.js';\nexport {default as lodash} from 'lodash';\nexport {default as semver} from 'semver';\n"],
5
+ "mappings": ";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAQ,WAAW,cAAa;AAChC,SAAQ,WAAW,cAAa;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakubmazanec/carson-templates",
3
- "version": "2.3.0",
3
+ "version": "2.4.0-next.83fd9d1",
4
4
  "description": "Collection of Carson templates.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,16 @@
1
+ import {type Project} from '@jakubmazanec/carson';
2
+
3
+ export function getAppUrl(project: Project, deploymentEnvironment?: string) {
4
+ let appName = (project.config as {deployment?: {appName?: string}}).deployment?.appName;
5
+ let appUrl = (project.config as {deployment?: {appUrl?: string}}).deployment?.appUrl;
6
+
7
+ if ((appUrl && deploymentEnvironment === undefined) || (!appName && appUrl)) {
8
+ return appUrl;
9
+ }
10
+
11
+ if (!appName) {
12
+ return `http://localhost:5000`;
13
+ }
14
+
15
+ return `https://${deploymentEnvironment ? `${appName}-${deploymentEnvironment}` : appName}.fly.dev`;
16
+ }
package/source/main.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './constants.js';
2
+ export * from './getAppUrl.js';
2
3
  export * from './getDependencies.js';
3
4
  export * from './getDevelopmentBranch.js';
4
5
  export * from './getMainBranch.js';
@@ -43,6 +43,13 @@ WORKDIR /workspace
43
43
  # Set up env variables
44
44
  ENV NODE_ENV=production
45
45
  <%
46
+ if (project.config.deployment?.appName) {
47
+ -%>
48
+ ARG VITE_APP_URL
49
+ ENV VITE_APP_URL=$VITE_APP_URL
50
+ <%
51
+ }
52
+
46
53
  if (project.config.deployment?.dbInstance) {
47
54
  -%>
48
55
  ARG EDGEDB_INSTANCE
@@ -171,21 +171,23 @@ for (let project of workspace.projects) {
171
171
 
172
172
  - name: Deploy <%- project.name %>
173
173
  run: |
174
- npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
174
+ npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
175
175
  env:
176
- FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
177
- FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
176
+ VITE_APP_URL: <%- getAppUrl(project, 'unstable') %>
178
177
  EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
179
178
  EDGEDB_BRANCH: ${{ github.head_ref }}
180
179
  EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
180
+ FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
181
+ FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
181
182
  <%
182
183
  } else if (project.config.deployment?.appName) {
183
184
  -%>
184
185
 
185
186
  - name: Deploy <%- project.name %>
186
187
  run: |
187
- npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable
188
+ npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable --build-arg "VITE_APP_URL=$VITE_APP_URL"
188
189
  env:
190
+ VITE_APP_URL: <%- getAppUrl(project, 'unstable') %>
189
191
  FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
190
192
  FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
191
193
  <%
@@ -214,21 +214,23 @@ for (let project of workspace.projects) {
214
214
 
215
215
  - name: Deploy "<%- project.name %>"
216
216
  run: |
217
- npm run deploy --workspace <%- project.name %> -- --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
217
+ npm run deploy --workspace <%- project.name %> -- --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
218
218
  env:
219
- FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
220
- FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
219
+ VITE_APP_URL: <%- getAppUrl(project) %>
221
220
  EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
222
221
  EDGEDB_BRANCH: ${{ github.ref_name }}
223
222
  EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
223
+ FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
224
+ FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
224
225
  <%
225
226
  } else if (project.config.deployment?.appName) {
226
227
  -%>
227
228
 
228
229
  - name: Deploy "<%- project.name %>"
229
230
  run: |
230
- npm run deploy --workspace <%- project.name %>
231
+ npm run deploy --workspace <%- project.name %> -- --build-arg "VITE_APP_URL=$VITE_APP_URL"
231
232
  env:
233
+ VITE_APP_URL: <%- getAppUrl(project) %>
232
234
  FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
233
235
  FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
234
236
  <%
@@ -405,21 +407,23 @@ for (let project of workspace.projects) {
405
407
 
406
408
  - name: Deploy "<%- project.name %>"
407
409
  run: |
408
- npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
410
+ npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
409
411
  env:
410
- FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
411
- FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
412
+ VITE_APP_URL: <%- getAppUrl(project, 'next') %>
412
413
  EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
413
414
  EDGEDB_BRANCH: ${{ github.ref_name }}
414
415
  EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
416
+ FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
417
+ FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
415
418
  <%
416
419
  } else if (project.config.deployment?.appName) {
417
420
  -%>
418
421
 
419
422
  - name: Deploy "<%- project.name %>"
420
423
  run: |
421
- npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next
424
+ npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next --build-arg "VITE_APP_URL=$VITE_APP_URL"
422
425
  env:
426
+ VITE_APP_URL: <%- getAppUrl(project, 'next') %>
423
427
  FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
424
428
  FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
425
429
  <%
@@ -41,7 +41,7 @@ let turboConfig = {
41
41
  outputs: [],
42
42
  },
43
43
  },
44
- globalEnv: workspace.projects.some((project) => project.config.deployment?.dbInstance) ? ['EDGEDB_INSTANCE', 'EDGEDB_BRANCH', 'EDGEDB_SECRET_KEY'] : [],
44
+ globalEnv: [],
45
45
  globalDependencies: [
46
46
  '.editorconfig',
47
47
  '.eslintrc.cjs',
@@ -50,9 +50,16 @@ let turboConfig = {
50
50
  'tsconfig.json',
51
51
  'tsconfig.typecheck.json',
52
52
  ],
53
-
54
53
  };
55
54
 
55
+ if (workspace.projects.some((project) => project.config.deployment?.appName)) {
56
+ turboConfig.globalEnv.push('VITE_APP_URL');
57
+ }
58
+
59
+ if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
60
+ turboConfig.globalEnv.push('EDGEDB_INSTANCE', 'EDGEDB_BRANCH', 'EDGEDB_SECRET_KEY');
61
+ }
62
+
56
63
  if (workspace.projects.find((project) => project.name === LINTER_CONFIG_PACKAGE_NAME)) {
57
64
  turboConfig.pipeline.lint.dependsOn = [`${LINTER_CONFIG_PACKAGE_NAME}#build`, '^build', 'codegen'];
58
65
  }