cloud-native-toolkit / iascable

IasCable is a node/typescript library to build installable component infrastructure components from a catalog of available modules
MIT License
13 stars 8 forks source link

Service imports empty when consuming iascable as library #286

Open NoeSamaille opened 1 year ago

NoeSamaille commented 1 year ago

When trying to consume any service using import from import { <SERVICE_NAME>Api } from '@cloudnativetoolkit/iascable'; e.g. CatalogLoaderApi I'm getting:

Request GET /automation/catalog/boms failed with status code 500. TypeError: this.catalogLoader.loadCatalog is not a function
    at /workspace/ascent-bff/dist/helpers/services.helper.js:79:32
    at new Promise (<anonymous>)
    at ServicesHelper.fetchCatalog (/workspace/ascent-bff/dist/helpers/services.helper.js:76:16)
    at /workspace/ascent-bff/dist/helpers/services.helper.js:131:42
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

It looks like the CatalogLoaderApi (and any other api) are empty they are not bound to their corresponding implementation (in that case CatalogLoader) which is weird because I clearly see it in the built code in build/esm/index.js:

{bind: CatalogLoaderApi, to: CatalogLoader}
NoeSamaille commented 1 year ago

@seansund FYI, to fix this I exported implementation classes again <SERVICE_NAME> instead of <SERVICE_NAME>Api in index.ts files and I'll release beta.13 if you know how to fix this so I can use <SERVICE_NAME>Api instead I'll be able to revert back to those pretty quickly