All files / _utils/environments synopsis.ts

100% Statements 8/8
100% Branches 0/0
100% Functions 4/4
100% Lines 8/8

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                  1x     1x     4x 4x             1x     1x     3x 3x      
import * as P from 'maasglobal-prelude-ts';
 
import { AccountAlias } from '../../_types/environments/accounts';
import { EnvironmentId } from '../../_types/environments/environments';
import { Synopsis } from '../../_types/environments/synopsis';
 
export type AccountSynopsis<A extends AccountAlias> = Synopsis & {
  environment: { account: A };
};
export function accountSynopsis<A extends AccountAlias>(
  alias: A,
): P.Refinement<Synopsis, AccountSynopsis<A>> {
  return (synopsis): synopsis is AccountSynopsis<A> => {
    const {
      environment: { account },
    } = synopsis;
    return account === alias;
  };
}
 
export type StageSynopsis<S extends EnvironmentId> = Synopsis & {
  environment: { id: S };
};
export function stageSynopsis<S extends EnvironmentId>(
  stage: S,
): P.Refinement<Synopsis, StageSynopsis<S>> {
  return (synopsis): synopsis is StageSynopsis<S> => {
    const {
      environment: { id },
    } = synopsis;
    return id === stage;
  };
}