feat: support array as arg for CatalogBuilder.addEntityProvider and others

Allows to use e.g.

```
builder.addEntityProvider(getArrayOfProviders());
```

instead of

```
builder.addEntityProvider(...getArrayOfProviders());
```

Signed-off-by: Patrick Jungermann <Patrick.Jungermann@gmail.com>
This commit is contained in:
Patrick Jungermann
2022-05-16 18:27:29 +02:00
parent 361cebfe1b
commit b594679ae3
5 changed files with 49 additions and 14 deletions
+15
View File
@@ -0,0 +1,15 @@
---
'@backstage/plugin-catalog-backend': minor
---
Allow array as non-spread arguments at the `CatalogBuilder`.
```typescript
builder.addEntityProvider(...getArrayOfProviders());
```
can be simplified to
```typescript
builder.addEntityProvider(getArrayOfProviders());
```
+1 -1
View File
@@ -67,7 +67,7 @@ import { AwsS3EntityProvider } from '@backstage/plugin-catalog-backend-module-aw
const builder = await CatalogBuilder.create(env);
/** ... other processors and/or providers ... */
builder.addEntityProvider(
...AwsS3EntityProvider.fromConfig(env.config, {
AwsS3EntityProvider.fromConfig(env.config, {
logger: env.logger,
schedule: env.scheduler.createScheduledTaskRunner({
frequency: { minutes: 30 },
+1 -1
View File
@@ -30,7 +30,7 @@ import { Duration } from 'luxon';
const builder = await CatalogBuilder.create(env);
/** ... other processors and/or providers ... */
builder.addEntityProvider(
...GerritEntityProvider.fromConfig(env.config, {
GerritEntityProvider.fromConfig(env.config, {
logger: env.logger,
schedule: env.scheduler.createScheduledTaskRunner({
frequency: { minutes: 30 },
+14 -4
View File
@@ -110,11 +110,21 @@ export class BuiltinKindsEntityProcessor implements CatalogProcessor {
// @public
export class CatalogBuilder {
addEntityPolicy(...policies: EntityPolicy[]): CatalogBuilder;
addEntityProvider(...providers: EntityProvider[]): CatalogBuilder;
addEntityPolicy(
...policies: Array<EntityPolicy | Array<EntityPolicy>>
): CatalogBuilder;
addEntityProvider(
...providers: Array<EntityProvider | Array<EntityProvider>>
): CatalogBuilder;
// @alpha
addPermissionRules(...permissionRules: CatalogPermissionRule[]): void;
addProcessor(...processors: CatalogProcessor[]): CatalogBuilder;
addPermissionRules(
...permissionRules: Array<
CatalogPermissionRule | Array<CatalogPermissionRule>
>
): void;
addProcessor(
...processors: Array<CatalogProcessor | Array<CatalogProcessor>>
): CatalogBuilder;
build(): Promise<{
processingEngine: CatalogProcessingEngine;
router: Router;
@@ -172,8 +172,10 @@ export class CatalogBuilder {
*
* @param policies - One or more policies
*/
addEntityPolicy(...policies: EntityPolicy[]): CatalogBuilder {
this.entityPolicies.push(...policies);
addEntityPolicy(
...policies: Array<EntityPolicy | Array<EntityPolicy>>
): CatalogBuilder {
this.entityPolicies.push(...policies.flat());
return this;
}
@@ -268,8 +270,10 @@ export class CatalogBuilder {
*
* @param providers - One or more entity providers
*/
addEntityProvider(...providers: EntityProvider[]): CatalogBuilder {
this.entityProviders.push(...providers);
addEntityProvider(
...providers: Array<EntityProvider | Array<EntityProvider>>
): CatalogBuilder {
this.entityProviders.push(...providers.flat());
return this;
}
@@ -279,8 +283,10 @@ export class CatalogBuilder {
*
* @param processors - One or more processors
*/
addProcessor(...processors: CatalogProcessor[]): CatalogBuilder {
this.processors.push(...processors);
addProcessor(
...processors: Array<CatalogProcessor | Array<CatalogProcessor>>
): CatalogBuilder {
this.processors.push(...processors.flat());
return this;
}
@@ -341,8 +347,12 @@ export class CatalogBuilder {
* @param permissionRules - Additional permission rules
* @alpha
*/
addPermissionRules(...permissionRules: CatalogPermissionRule[]) {
this.permissionRules.push(...permissionRules);
addPermissionRules(
...permissionRules: Array<
CatalogPermissionRule | Array<CatalogPermissionRule>
>
) {
this.permissionRules.push(...permissionRules.flat());
}
/**