MCPcopy Index your code
hub / github.com/angular/angularfire / featureToRules

Function featureToRules

src/schematics/utils.ts:151–309  ·  view source on GitHub ↗
(
  features: FEATURES[],
  projectName: string,
  dataConnectConfig?: DataConnectConnectorConfig | null
)

Source from the content-addressed store, hash-verified

149}
150
151export function featureToRules(
152 features: FEATURES[],
153 projectName: string,
154 dataConnectConfig?: DataConnectConnectorConfig | null
155) {
156 return features
157 .map((feature) => {
158 switch (feature) {
159 case FEATURES.AppCheck:
160 // TODO make this smarter in Angular Universal
161 return addRootProvider(projectName, ({ code, external }) => {
162 external("initializeAppCheck", "@angular/fire/app-check");
163 external("ReCaptchaEnterpriseProvider", "@angular/fire/app-check");
164 return code`${external(
165 "provideAppCheck",
166 "@angular/fire/app-check"
167 )}(() => {
168 // TODO get a reCAPTCHA Enterprise here https://console.cloud.google.com/security/recaptcha?project=_
169 const provider = new ReCaptchaEnterpriseProvider(/* reCAPTCHA Enterprise site key */);
170 return initializeAppCheck(undefined, { provider, isTokenAutoRefreshEnabled: true });
171})`;
172 });
173 case FEATURES.Analytics:
174 return chain([
175 addRootProvider(projectName, ({ code, external }) => {
176 external("getAnalytics", "@angular/fire/analytics");
177 return code`${external(
178 "provideAnalytics",
179 "@angular/fire/analytics"
180 )}(() => getAnalytics())`;
181 }),
182 // TODO if using Angular router
183 addRootProvider(projectName, ({ code, external }) => {
184 return code`${external(
185 "ScreenTrackingService",
186 "@angular/fire/analytics"
187 )}`;
188 }),
189 ...(features.includes(FEATURES.Authentication)
190 ? [
191 addRootProvider(projectName, ({ code, external }) => {
192 return code`${external(
193 "UserTrackingService",
194 "@angular/fire/analytics"
195 )}`;
196 }),
197 ]
198 : []),
199 ]);
200 case FEATURES.Authentication:
201 return addRootProvider(projectName, ({ code, external }) => {
202 external("getAuth", "@angular/fire/auth");
203 return code`${external(
204 "provideAuth",
205 "@angular/fire/auth"
206 )}(() => getAuth())`;
207 });
208 case FEATURES.Database:

Callers 1

setupProjectFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected