All files / src/context/yaml/handlers organizations.ts

94.11% Statements 16/17
75% Branches 6/8
100% Functions 4/4
100% Lines 15/15

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 46 47 48 49 50 51                  41x   41x   1x           5x   5x   5x   1x 1x   1x 1x 1x   1x             1x         1x         1x  
import { YAMLHandler } from '.';
import YAMLContext from '..';
import { Asset, ParsedAsset } from '../../../types';
 
type ParsedOrganizations = {
  organizations: Asset[] | null;
};
 
async function parse(context: YAMLContext): Promise<ParsedOrganizations> {
  const { organizations } = context.assets;
 
  if (!organizations) return { organizations: null };
 
  return {
    organizations,
  };
}
 
async function dump(context: YAMLContext): Promise<ParsedOrganizations> {
  const { organizations } = context.assets;
 
  Iif (!organizations) return { organizations: null };
 
  return {
    organizations: organizations.map((org) => {
      Eif (org.connections.length > 0) {
        org.connections = org.connections.map((c) => {
          // connection is a computed field
          const name = c.connection && c.connection.name;
          delete c.connection_id;
          delete c.connection;
 
          return {
            name,
            ...c,
          };
        });
      }
 
      return org;
    }),
  };
}
 
const organizationsHandler: YAMLHandler<ParsedOrganizations> = {
  parse,
  dump,
};
 
export default organizationsHandler;