From 0a3bbdf0d1f8919bc72ccef9caab2067eb0c14c0 Mon Sep 17 00:00:00 2001 From: Roman Hotsiy Date: Mon, 14 Dec 2015 18:14:14 +0200 Subject: [PATCH] Add error messages to Pipes --- lib/utils/pipes.js | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/lib/utils/pipes.js b/lib/utils/pipes.js index b5238a38..ae75f0a1 100644 --- a/lib/utils/pipes.js +++ b/lib/utils/pipes.js @@ -1,6 +1,7 @@ 'use strict'; -import {Pipe} from 'angular2/core'; +import {Pipe, InvalidPipeArgumentException} from 'angular2/core'; +import {isString} from 'angular2/src/facade/lang'; import {JsonPointer} from './JsonPointer'; import marked from 'marked'; @@ -15,39 +16,42 @@ marked.setOptions({ }); -@Pipe({ - name: 'keys' -}) +@Pipe({ name: 'keys' }) export class KeysPipe { transform(obj) { + if (typeof obj !== 'object') { + throw new InvalidPipeArgumentException(ValuesPipe, obj); + } return Object.keys(obj); } } -@Pipe({ - name: 'values' -}) +@Pipe({ name: 'values' }) export class ValuesPipe { - transform(obj) { - return Object.keys(obj).map(key => obj[key]); + transform(value) { + if (typeof value !== 'object') { + throw new InvalidPipeArgumentException(ValuesPipe, value); + } + return Object.keys(value).map(key => value[key]); } } -@Pipe({ - name: 'jsonPointerEscape' -}) +@Pipe({ name: 'jsonPointerEscape' }) export class JsonPointerEscapePipe { - transform(str) { - return JsonPointer.escape(str); + transform(value) { + if (!isString(value)) { + throw new InvalidPipeArgumentException(JsonPointerEscapePipe, value); + } + return JsonPointer.escape(value); } } -@Pipe({ - name: 'marked' -}) +@Pipe({ name: 'marked' }) export class MarkedPipe { - transform(str) { - if (!str) return str; - return marked(str); + transform(value) { + if (!isString(value)) { + throw new InvalidPipeArgumentException(JsonPointerEscapePipe, value); + } + return marked(value); } }