All files / src/impl AutoCloseFactory.impl.ts

100% Statements 9/9
100% Branches 0/0
100% Functions 6/6
100% Lines 9/9

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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4625x     25x 25x                     25x 16x                     5x       4x       5x       16x            
import { AutoClose, AutoCloseMany, AutoCloseOne, AutoCloseType, typeToAutoClose } from "@jonloucks/contracts-ts/api/AutoClose";
import { AutoCloseFactory } from "@jonloucks/contracts-ts/api/AutoCloseFactory";
import { RequiredType } from "@jonloucks/contracts-ts/api/Types";
import { create as createAutoCloseMany } from "./AutoCloseMany.impl";
import { create as createAutoCloseOne } from "./AutoCloseOne.impl";
 
export { AutoClose, AutoCloseMany, AutoCloseOne, AutoCloseType } from "@jonloucks/contracts-ts/api/AutoClose";
export { AutoCloseFactory } from "@jonloucks/contracts-ts/api/AutoCloseFactory";
export { RequiredType } from "@jonloucks/contracts-ts/api/Types";
 
/**
 * Create an AutoCloseFactory instance.
 *
 * @returns the AutoCloseFactory implementation
 */
export function create(): RequiredType<AutoCloseFactory> {
  return AutoCloseFactoryImpl.internalCreate();
}
 
// ---- Implementation details below ----
 
/**
 * The AutoCloseFactory implementation
 */
class AutoCloseFactoryImpl implements AutoCloseFactory {
 
  createAutoClose(type: RequiredType<AutoCloseType>): RequiredType<AutoClose> {
    return typeToAutoClose(type);
  }
 
  createAutoCloseMany(): RequiredType<AutoCloseMany> {
    return createAutoCloseMany()
  }
 
  createAutoCloseOne(): RequiredType<AutoCloseOne> {
    return createAutoCloseOne();
  }
 
  static internalCreate(): RequiredType<AutoCloseFactory> {
    return new AutoCloseFactoryImpl();
  }
 
  private constructor() {
  }
}