* Releases the rules from the given file and resource name. * @param filename The filename to release. * @param resourceName The release name to release these as. * @param subResourceName An optional sub-resource name to append to the * release name. This is required if resourceName ==
(
filename: string,
resourceName: RulesetServiceType,
subResourceName?: string,
)
| 269 | * release name. This is required if resourceName === FIREBASE_STORAGE. |
| 270 | */ |
| 271 | async release( |
| 272 | filename: string, |
| 273 | resourceName: RulesetServiceType, |
| 274 | subResourceName?: string, |
| 275 | ): Promise<void> { |
| 276 | // Cast as a RulesetServiceType to test the value against known types. |
| 277 | if (resourceName === RulesetServiceType.FIREBASE_STORAGE && !subResourceName) { |
| 278 | throw new FirebaseError(`Cannot release resource type "${resourceName}"`); |
| 279 | } |
| 280 | |
| 281 | const key = |
| 282 | this.type === RulesetServiceType.FIREBASE_STORAGE |
| 283 | ? filename |
| 284 | : `${filename}:${subResourceName || ""}`; |
| 285 | const releaseName = |
| 286 | subResourceName && subResourceName !== "(default)" |
| 287 | ? `${resourceName}/${subResourceName}` |
| 288 | : resourceName; |
| 289 | |
| 290 | await gcp.rules.updateOrCreateRelease( |
| 291 | this.options.project, |
| 292 | this.rulesetNames[key], |
| 293 | releaseName, |
| 294 | ); |
| 295 | utils.logLabeledSuccess( |
| 296 | RulesetType[this.type], |
| 297 | `released rules ${bold(filename)} to ${bold(resourceName)}`, |
| 298 | ); |
| 299 | } |
| 300 | |
| 301 | /** |
| 302 | * Attempts to compile a ruleset. |
no outgoing calls
no test coverage detected