All files / core/src/modules target.ts

100% Statements 6/6
100% Branches 2/2
100% Functions 3/3
100% Lines 5/5

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            5x       2x 2x 1x           1x                          
import { KeyInfo } from '../types/key-info';
 
export abstract class TargetModule {
  #prefix?: string;
 
  constructor({ prefix }: TargetModule.Options) {
    this.#prefix = prefix;
  }
 
  prefix(keyInfos: KeyInfo[]): KeyInfo[] {
    const prefix = this.#prefix;
    if (prefix) {
      return keyInfos.map((keyInfo) => ({
        name: prefix.concat(keyInfo.name),
        value: keyInfo.value,
      }));
    }
 
    return keyInfos;
  }
 
  abstract get name(): string;
 
  abstract target(keyInfos: KeyInfo[]): Promise<void>;
}
 
export namespace TargetModule {
  export type Options = {
    prefix?: string;
  };
}