All files / modules/10-common/utils YamlHelperMethods.ts

100% Statements 10/10
80% Branches 4/5
100% Functions 2/2
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              348x   348x     348x 467x 467x 467x 467x     348x 88x    
/*
 * Copyright 2021 Harness Inc. All rights reserved.
 * Use of this source code is governed by the PolyForm Shield 1.0.0 license
 * that can be found in the licenses directory at the root of this repository, also available at
 * https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt.
 */
 
import { Document } from 'yaml'
import type { Options } from 'yaml'
import { load } from 'js-yaml'
 
// https://github.com/eemeli/yaml/issues/211
export const yamlStringify = (obj: any, options: Options = {}): string => {
  const doc = new Document({ version: '1.1', simpleKeys: true, ...options })
  doc.setSchema()
  doc.contents = doc.schema?.createNode(obj)
  return String(doc)
}
 
export function yamlParse<T = unknown>(input: string): T {
  return load(input) as T
}