diff --git a/src/__tests__/safeStringify.spec.ts b/src/__tests__/safeStringify.spec.ts index b6d5f23..521e727 100644 --- a/src/__tests__/safeStringify.spec.ts +++ b/src/__tests__/safeStringify.spec.ts @@ -4,9 +4,16 @@ describe('safeStringify', () => { it('should work', () => { const val = { foo: true }; - expect(safeStringify(val)).toEqual(`foo: true -`); + expect(safeStringify(val)).toEqual('foo: true\n'); + }); + + it('should not stringify strings twice', () => { expect(safeStringify('foo: true')).toEqual('foo: true'); + expect(safeStringify('')).toEqual(''); + }); + + it.each([0, null, false])('should stringify falsy value: %s', value => { + expect(safeStringify(value)).toEqual(`${value}\n`); }); it('should respect lineWidth for multi-line strings', () => { diff --git a/src/safeStringify.ts b/src/safeStringify.ts index bdfb332..01d9074 100644 --- a/src/safeStringify.ts +++ b/src/safeStringify.ts @@ -1,7 +1,4 @@ import { DumpOptions, safeDump } from '@stoplight/yaml-ast-parser'; -export const safeStringify = (value: any, options?: DumpOptions): string => { - if (!value || typeof value === 'string') return value; - - return safeDump(value, options); -}; +export const safeStringify = (value: unknown, options?: DumpOptions): string => + typeof value === 'string' ? value : safeDump(value, options);