Skip to content

Commit 6604db7

Browse files
authored
Few things (#3472)
* Bump firebase, add auth#revokeAccessToken * Add development and production build/serve targets, default to development for emulators * Region select only when universal or ssr
1 parent 99a1bb1 commit 6604db7

File tree

9 files changed

+209
-457
lines changed

9 files changed

+209
-457
lines changed

package-lock.json

+160-432
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@
5555
"@angular/platform-browser-dynamic": "^17.0.0",
5656
"@angular/router": "^17.0.0",
5757
"@schematics/angular": "^17.0.0",
58-
"firebase": "^10.0.0",
58+
"firebase": "^10.7.0",
5959
"firebase-admin": "^9.11.1",
6060
"firebase-functions": "^3.6.0",
61-
"firebase-tools": "^12.2.1",
61+
"firebase-tools": "^13.0.0",
6262
"fs-extra": "^8.0.1",
6363
"fuzzy": "^0.1.3",
6464
"husky": "^4.2.5",

src/auth/firebase.ts

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"firebase-tools": { "optional": true }
3535
},
3636
"dependencies": {
37-
"firebase": "^10.5.0",
37+
"firebase": "^10.7.0",
3838
"rxfire": "^6.0.5",
3939
"@angular-devkit/schematics": "^17.0.0",
4040
"@schematics/angular": "^17.0.0",

src/schematics/interfaces.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ export interface NgAddNormalizedOptions {
4141
firebaseApp: FirebaseApp|undefined;
4242
firebaseHostingSite: FirebaseHostingSite|undefined;
4343
sdkConfig: Record<string, string>|undefined;
44-
buildTarget: string|undefined;
44+
buildTarget: [string,string]|undefined;
45+
serveTarget: [string,string]|undefined;
4546
ssrRegion: string|undefined;
4647
}
4748

src/schematics/ng-add.jasmine.ts

+12-8
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,10 @@ const initialAngularJson = `{
129129
"version": 2
130130
},
131131
"configurations": {
132-
"production": {}
132+
"production": {},
133+
"development": {}
133134
},
134-
"defaultConfiguration": "production"
135+
"defaultConfiguration": "development"
135136
}
136137
}
137138
},
@@ -192,9 +193,10 @@ const overwriteAngularJson = `{
192193
"version": 2
193194
},
194195
"configurations": {
195-
"production": {}
196+
"production": {},
197+
"development": {}
196198
},
197-
"defaultConfiguration": "production"
199+
"defaultConfiguration": "development"
198200
}
199201
}
200202
},
@@ -267,9 +269,10 @@ const projectAngularJson = `{
267269
"version": 2
268270
},
269271
"configurations": {
270-
"production": {}
272+
"production": {},
273+
"development": {}
271274
},
272-
"defaultConfiguration": "production"
275+
"defaultConfiguration": "development"
273276
}
274277
}
275278
},
@@ -288,9 +291,10 @@ const projectAngularJson = `{
288291
"version": 2
289292
},
290293
"configurations": {
291-
"production": {}
294+
"production": {},
295+
"development": {}
292296
},
293-
"defaultConfiguration": "production"
297+
"defaultConfiguration": "development"
294298
}
295299
}
296300
}

src/schematics/setup/index.ts

+10-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ export interface SetupConfig extends DeployOptions {
2727
firebaseApp?: FirebaseApp,
2828
firebaseHostingSite?: FirebaseHostingSite,
2929
sdkConfig?: Record<string, string>,
30-
buildTarget?: string,
30+
buildTarget?: [string, string],
31+
serveTarget?: [string, string],
3132
project?: string,
3233
ssrRegion?: string,
3334
}
@@ -51,6 +52,7 @@ export const setupProject =
5152
firebaseHostingSite: config.firebaseHostingSite,
5253
sdkConfig: config.sdkConfig,
5354
buildTarget: config.buildTarget,
55+
serveTarget: config.serveTarget,
5456
ssrRegion: config.ssrRegion,
5557
},
5658
tree,
@@ -187,10 +189,15 @@ export const setupFirebase = (config: {
187189
},
188190
configurations: {
189191
production: {
190-
buildTarget: options.buildTarget,
192+
buildTarget: options.buildTarget?.[0],
193+
serveTarget: options.serveTarget?.[0],
191194
},
195+
development: {
196+
buildTarget: options.buildTarget?.[1],
197+
serveTarget: options.serveTarget?.[1],
198+
}
192199
},
193-
defaultConfiguration: 'production',
200+
defaultConfiguration: 'development',
194201
};
195202

196203
tree.overwrite(workspacePath, JSON.stringify(workspace, null, 2));

src/schematics/setup/prompts.ts

+16-10
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as inquirer from 'inquirer';
44
import { shortSiteName } from '../common';
55
import { getFirebaseTools } from '../firebaseTools';
66
import { FEATURES, FirebaseApp, FirebaseHostingSite, FirebaseProject, PROJECT_TYPE, WorkspaceProject, featureOptions } from '../interfaces';
7-
import { shortAppId } from '../utils';
7+
import { isSSRApp, isUniversalApp, shortAppId } from '../utils';
88

99
// eslint-disable-next-line @typescript-eslint/no-var-requires
1010
inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt'));
@@ -251,13 +251,19 @@ const ALLOWED_SSR_REGIONS = [
251251
];
252252

253253
export const projectTypePrompt = async (project: WorkspaceProject, name: string) => {
254-
const buildTarget = `${name}:build:${project.architect?.build?.defaultConfiguration || 'production'}`;
255-
const { ssrRegion } = await inquirer.prompt({
256-
type: 'list',
257-
name: 'ssrRegion',
258-
choices: ALLOWED_SSR_REGIONS,
259-
message: 'In which region would you like to host server-side content?',
260-
default: DEFAULT_REGION,
261-
}) as { ssrRegion: string };
262-
return { projectType: PROJECT_TYPE.WebFrameworks, ssrRegion, buildTarget };
254+
const buildTarget = [`${name}:build:production`, `${name}:build:development`];
255+
const serveTarget = isUniversalApp(project) ?
256+
[`${name}:serve-ssr:production`, `${name}:serve-ssr:development`] :
257+
[`${name}:serve:production`, `${name}:serve:development`];
258+
if (isUniversalApp(project) || isSSRApp(project)) {
259+
const { ssrRegion } = await inquirer.prompt({
260+
type: 'list',
261+
name: 'ssrRegion',
262+
choices: ALLOWED_SSR_REGIONS,
263+
message: 'In which region would you like to host server-side content?',
264+
default: DEFAULT_REGION,
265+
}) as { ssrRegion: string };
266+
return { projectType: PROJECT_TYPE.WebFrameworks, ssrRegion, buildTarget, serveTarget };
267+
}
268+
return { projectType: PROJECT_TYPE.WebFrameworks, buildTarget, serveTarget };
263269
};

src/schematics/utils.ts

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ export const isUniversalApp = (
1414
project: WorkspaceProject
1515
) => project.architect?.server;
1616

17+
export const isSSRApp = (
18+
project: WorkspaceProject
19+
) => !!project.architect?.build.options?.ssr;
20+
1721
export const hasPrerenderOption = (
1822
project: WorkspaceProject
1923
) => project.architect?.prerender;

0 commit comments

Comments
 (0)