All files / src/rest JsonTransformer.ts

33.33% Statements 2/6
100% Branches 0/0
0% Functions 0/1
33.33% Lines 2/6

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 288x         8x                                            
import { TwitarrError } from '../api/TwitarrError';
 
/**
 * Helper to transform a json string to an json object.
 */
export class JsonTransformer {
  /**
   * A convenience method for implementers to use to turn JSON into a javascript object.
   * Use this to process a JSON response before returning it in an [[TwitarrResult]] object.
   */
  public transform(data: any) {
    if (typeof data === 'string') {
      if (data.length < 1) {
        return {};
      } else {
        try {
          return JSON.parse(data);
        } catch (err) {
          throw new TwitarrError(err.message, undefined, undefined, data);
        }
      }
    } else {
      // assume it's already parsed
      return data;
    }
  }
}