All files / src/util createTypeormDataSource.ts

100% Statements 12/12
100% Branches 0/0
100% Functions 3/3
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  42x 42x   42x         33x   33x   33x 33x         33x 32x   1x 1x            
import { Logger } from 'ts-log';
import { Observable, from, switchMap } from 'rxjs';
import { PgConnectionConfig, createDataSource } from '@cardano-sdk/projection-typeorm';
 
export const createTypeormDataSource = (
  connectionConfig$: Observable<PgConnectionConfig>,
  entities: Function[],
  logger: Logger
) =>
  connectionConfig$.pipe(
    switchMap((connectionConfig) =>
      from(
        (async () => {
          try {
            const dataSource = createDataSource({
              connectionConfig,
              entities,
              logger
            });
            await dataSource.initialize();
            return dataSource;
          } catch (error) {
            logger.error(error, 'Error while creating DataSource');
            return null;
          }
        })()
      )
    )
  );