@bcgov/plugin-catalog-backend-module-bc-data-catalogue 0.2.6-main.59c9210c → 0.2.6-main.91ee0be1

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.
@@ -12,21 +12,56 @@ class BcDataCatalogueDatasetProcessor {
12
12
  return entity.apiVersion === pluginCatalogCommonBcDataCatalogue.DATASET_API_VERSION && entity.kind === pluginCatalogCommonBcDataCatalogue.DATASET_KIND;
13
13
  }
14
14
  async postProcessEntity(entity, _location, emit) {
15
- const dataset = entity;
16
- const datasetRef = {
17
- kind: dataset.kind,
18
- namespace: dataset.metadata.namespace ?? "default",
19
- name: dataset.metadata.name
20
- };
21
- for (const apiRef of dataset.spec.providesApis ?? []) {
22
- emit(
23
- pluginCatalogNode.processingResult.relation({
24
- source: datasetRef,
25
- type: catalogModel.RELATION_PROVIDES_API,
26
- target: catalogModel.parseEntityRef(apiRef)
27
- })
28
- );
15
+ const selfRef = catalogModel.getCompoundEntityRef(entity);
16
+ function doEmit(targets, context, outgoingRelation, incomingRelation) {
17
+ if (!targets) {
18
+ return;
19
+ }
20
+ for (const target of [targets].flat()) {
21
+ const targetRef = catalogModel.parseEntityRef(target, context);
22
+ emit(
23
+ pluginCatalogNode.processingResult.relation({
24
+ source: selfRef,
25
+ type: outgoingRelation,
26
+ target: {
27
+ kind: targetRef.kind,
28
+ namespace: targetRef.namespace,
29
+ name: targetRef.name
30
+ }
31
+ })
32
+ );
33
+ emit(
34
+ pluginCatalogNode.processingResult.relation({
35
+ source: {
36
+ kind: targetRef.kind,
37
+ namespace: targetRef.namespace,
38
+ name: targetRef.name
39
+ },
40
+ type: incomingRelation,
41
+ target: selfRef
42
+ })
43
+ );
44
+ }
29
45
  }
46
+ const dataset = entity;
47
+ doEmit(
48
+ dataset.spec.owner,
49
+ { defaultKind: "Group", defaultNamespace: selfRef.namespace },
50
+ catalogModel.RELATION_OWNED_BY,
51
+ catalogModel.RELATION_OWNER_OF
52
+ );
53
+ doEmit(
54
+ dataset.spec.providesApis,
55
+ { defaultKind: "API", defaultNamespace: selfRef.namespace },
56
+ catalogModel.RELATION_PROVIDES_API,
57
+ catalogModel.RELATION_API_PROVIDED_BY
58
+ );
59
+ doEmit(
60
+ dataset.spec.system,
61
+ { defaultKind: "System", defaultNamespace: selfRef.namespace },
62
+ catalogModel.RELATION_PART_OF,
63
+ catalogModel.RELATION_HAS_PART
64
+ );
30
65
  return entity;
31
66
  }
32
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BcDataCatalogueDatasetProcessor.cjs.js","sources":["../src/BcDataCatalogueDatasetProcessor.ts"],"sourcesContent":["import {\n Entity,\n RELATION_PROVIDES_API,\n parseEntityRef,\n} from '@backstage/catalog-model';\nimport {\n CatalogProcessor,\n CatalogProcessorEmit,\n processingResult,\n} from '@backstage/plugin-catalog-node';\nimport {\n DATASET_API_VERSION,\n DATASET_KIND,\n type DatasetEntity,\n} from '@bcgov/plugin-catalog-common-bc-data-catalogue';\n\nexport class BcDataCatalogueDatasetProcessor implements CatalogProcessor {\n getProcessorName(): string {\n return 'BcDataCatalogueDatasetProcessor';\n }\n\n async validateEntityKind(entity: Entity): Promise<boolean> {\n return (\n entity.apiVersion === DATASET_API_VERSION &&\n entity.kind === DATASET_KIND\n );\n }\n\n async postProcessEntity(\n entity: Entity,\n _location: unknown,\n emit: CatalogProcessorEmit,\n ): Promise<Entity> {\n const dataset = entity as DatasetEntity;\n\n const datasetRef = {\n kind: dataset.kind,\n namespace: dataset.metadata.namespace ?? 'default',\n name: dataset.metadata.name,\n };\n\n for (const apiRef of dataset.spec.providesApis ?? []) {\n \n emit(\n processingResult.relation({\n source: datasetRef,\n type: RELATION_PROVIDES_API,\n target: parseEntityRef(apiRef),\n }),\n );\n }\n\n return entity;\n }\n}"],"names":["DATASET_API_VERSION","DATASET_KIND","processingResult","RELATION_PROVIDES_API","parseEntityRef"],"mappings":";;;;;;AAgBO,MAAM,+BAAA,CAA4D;AAAA,EACvE,gBAAA,GAA2B;AACzB,IAAA,OAAO,iCAAA;AAAA,EACT;AAAA,EAEA,MAAM,mBAAmB,MAAA,EAAkC;AACzD,IAAA,OACE,MAAA,CAAO,UAAA,KAAeA,sDAAA,IACtB,MAAA,CAAO,IAAA,KAASC,+CAAA;AAAA,EAEpB;AAAA,EAEA,MAAM,iBAAA,CACJ,MAAA,EACA,SAAA,EACA,IAAA,EACiB;AACjB,IAAA,MAAM,OAAA,GAAU,MAAA;AAEhB,IAAA,MAAM,UAAA,GAAa;AAAA,MACjB,MAAM,OAAA,CAAQ,IAAA;AAAA,MACd,SAAA,EAAW,OAAA,CAAQ,QAAA,CAAS,SAAA,IAAa,SAAA;AAAA,MACzC,IAAA,EAAM,QAAQ,QAAA,CAAS;AAAA,KACzB;AAEA,IAAA,KAAA,MAAW,MAAA,IAAU,OAAA,CAAQ,IAAA,CAAK,YAAA,IAAgB,EAAC,EAAG;AAEpD,MAAA,IAAA;AAAA,QACEC,mCAAiB,QAAA,CAAS;AAAA,UACxB,MAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAMC,kCAAA;AAAA,UACN,MAAA,EAAQC,4BAAe,MAAM;AAAA,SAC9B;AAAA,OACH;AAAA,IACF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AACF;;;;"}
1
+ {"version":3,"file":"BcDataCatalogueDatasetProcessor.cjs.js","sources":["../src/BcDataCatalogueDatasetProcessor.ts"],"sourcesContent":["import {\n Entity,\n RELATION_OWNED_BY,\n RELATION_OWNER_OF,\n RELATION_API_PROVIDED_BY,\n RELATION_PROVIDES_API,\n RELATION_PART_OF,\n RELATION_HAS_PART,\n parseEntityRef,\n getCompoundEntityRef\n} from '@backstage/catalog-model';\nimport {\n CatalogProcessor,\n CatalogProcessorEmit,\n processingResult,\n} from '@backstage/plugin-catalog-node';\nimport {\n DATASET_API_VERSION,\n DATASET_KIND,\n type DatasetEntity,\n} from '@bcgov/plugin-catalog-common-bc-data-catalogue';\n\nexport class BcDataCatalogueDatasetProcessor implements CatalogProcessor {\n getProcessorName(): string {\n return 'BcDataCatalogueDatasetProcessor';\n }\n\n async validateEntityKind(entity: Entity): Promise<boolean> {\n return (\n entity.apiVersion === DATASET_API_VERSION &&\n entity.kind === DATASET_KIND\n );\n }\n\n async postProcessEntity(\n entity: Entity,\n _location: unknown,\n emit: CatalogProcessorEmit,\n ): Promise<Entity> {\n const selfRef = getCompoundEntityRef(entity);\n\n function doEmit(\n targets: string | string[] | undefined,\n context: { defaultKind?: string; defaultNamespace: string },\n outgoingRelation: string,\n incomingRelation: string,\n ): void {\n if (!targets) {\n return;\n }\n for (const target of [targets].flat()) {\n const targetRef = parseEntityRef(target, context);\n emit(\n processingResult.relation({\n source: selfRef,\n type: outgoingRelation,\n target: {\n kind: targetRef.kind,\n namespace: targetRef.namespace,\n name: targetRef.name,\n },\n }),\n );\n emit(\n processingResult.relation({\n source: {\n kind: targetRef.kind,\n namespace: targetRef.namespace,\n name: targetRef.name,\n },\n type: incomingRelation,\n target: selfRef,\n }),\n );\n }\n }\n\n const dataset = entity as DatasetEntity;\n doEmit(\n dataset.spec.owner,\n { defaultKind: 'Group', defaultNamespace: selfRef.namespace },\n RELATION_OWNED_BY,\n RELATION_OWNER_OF,\n );\n doEmit(\n dataset.spec.providesApis,\n { defaultKind: 'API', defaultNamespace: selfRef.namespace },\n RELATION_PROVIDES_API,\n RELATION_API_PROVIDED_BY,\n );\n doEmit(\n dataset.spec.system,\n { defaultKind: 'System', defaultNamespace: selfRef.namespace },\n RELATION_PART_OF,\n RELATION_HAS_PART,\n );\n\n return entity;\n }\n}"],"names":["DATASET_API_VERSION","DATASET_KIND","getCompoundEntityRef","parseEntityRef","processingResult","RELATION_OWNED_BY","RELATION_OWNER_OF","RELATION_PROVIDES_API","RELATION_API_PROVIDED_BY","RELATION_PART_OF","RELATION_HAS_PART"],"mappings":";;;;;;AAsBO,MAAM,+BAAA,CAA4D;AAAA,EACvE,gBAAA,GAA2B;AACzB,IAAA,OAAO,iCAAA;AAAA,EACT;AAAA,EAEA,MAAM,mBAAmB,MAAA,EAAkC;AACzD,IAAA,OACE,MAAA,CAAO,UAAA,KAAeA,sDAAA,IACtB,MAAA,CAAO,IAAA,KAASC,+CAAA;AAAA,EAEpB;AAAA,EAEA,MAAM,iBAAA,CACJ,MAAA,EACA,SAAA,EACA,IAAA,EACiB;AACjB,IAAA,MAAM,OAAA,GAAUC,kCAAqB,MAAM,CAAA;AAE3C,IAAA,SAAS,MAAA,CACP,OAAA,EACA,OAAA,EACA,gBAAA,EACA,gBAAA,EACM;AACN,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA;AAAA,MACF;AACA,MAAA,KAAA,MAAW,MAAA,IAAU,CAAC,OAAO,CAAA,CAAE,MAAK,EAAG;AACrC,QAAA,MAAM,SAAA,GAAYC,2BAAA,CAAe,MAAA,EAAQ,OAAO,CAAA;AAChD,QAAA,IAAA;AAAA,UACEC,mCAAiB,QAAA,CAAS;AAAA,YACxB,MAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAM,gBAAA;AAAA,YACN,MAAA,EAAQ;AAAA,cACN,MAAM,SAAA,CAAU,IAAA;AAAA,cAChB,WAAW,SAAA,CAAU,SAAA;AAAA,cACrB,MAAM,SAAA,CAAU;AAAA;AAClB,WACD;AAAA,SACH;AACA,QAAA,IAAA;AAAA,UACEA,mCAAiB,QAAA,CAAS;AAAA,YACxB,MAAA,EAAQ;AAAA,cACN,MAAM,SAAA,CAAU,IAAA;AAAA,cAChB,WAAW,SAAA,CAAU,SAAA;AAAA,cACrB,MAAM,SAAA,CAAU;AAAA,aAClB;AAAA,YACA,IAAA,EAAM,gBAAA;AAAA,YACN,MAAA,EAAQ;AAAA,WACT;AAAA,SACH;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,OAAA,GAAU,MAAA;AAChB,IAAA,MAAA;AAAA,MACE,QAAQ,IAAA,CAAK,KAAA;AAAA,MACb,EAAE,WAAA,EAAa,OAAA,EAAS,gBAAA,EAAkB,QAAQ,SAAA,EAAU;AAAA,MAC5DC,8BAAA;AAAA,MACAC;AAAA,KACF;AACA,IAAA,MAAA;AAAA,MACE,QAAQ,IAAA,CAAK,YAAA;AAAA,MACb,EAAE,WAAA,EAAa,KAAA,EAAO,gBAAA,EAAkB,QAAQ,SAAA,EAAU;AAAA,MAC1DC,kCAAA;AAAA,MACAC;AAAA,KACF;AACA,IAAA,MAAA;AAAA,MACE,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,EAAE,WAAA,EAAa,QAAA,EAAU,gBAAA,EAAkB,QAAQ,SAAA,EAAU;AAAA,MAC7DC,6BAAA;AAAA,MACAC;AAAA,KACF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AACF;;;;"}