"use strict" ; import { _ } from 'streamline-runtime' ; export interface ParseOptions { sep ? : string ; encoding ? : string ; } export function parse ( options ? ) { const opts = options || { } ; const sep = opts . sep == null ? ',' : opts . sep ; return ( _ , data ) => { var str ; if ( Buffer . isBuffer ( data ) ) str = data . toString ( opts . encoding || 'utf8' ) ; else str = data ; if ( str === '' ) return ; if ( sep && str . substring ( str . length - sep . length ) === sep ) str = str . substring ( 0 , str . length - sep . length ) ; return JSON . parse ( str ) ; } ; } export interface FormatterOptions { sep ? : string ; replacer ? : ( key : string , value : any ) => any ; space ? : string ; } export function stringify ( options ? ) { const opts = options || { } ; const sep = opts . sep == null ? ',\n' : opts . sep ; return ( _ , data ) => { return JSON . stringify ( data , opts . replacer , opts . space ) + sep ; } ; }