Created
December 11, 2019 16:44
-
-
Save miller45/54d244d9cad85a0d964f5271368de912 to your computer and use it in GitHub Desktop.
whenNilPipe for angular
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* @author RKlein | |
*/ | |
import { WhenNilPipe } from "./whennil.pipe"; | |
describe('WhenNilPipe', () => { | |
it('converts null to "--"', () => { | |
let converter = new WhenNilPipe(); | |
expect(converter.transform(null, "--")).toEqual("--"); | |
}); | |
it('converts undefined to "--"', () => { | |
let converter = new WhenNilPipe(); | |
expect(converter.transform(undefined, "--")).toEqual("--"); | |
}); | |
it('leaves a defined string alone', () => { | |
let converter = new WhenNilPipe(); | |
expect(converter.transform("We are not nil", "--")).toEqual("We are not nil"); | |
}); | |
it('leaves a defined number alone', () => { | |
let converter = new WhenNilPipe(); | |
expect(converter.transform(42, "--")).toEqual(42); | |
}); | |
it('does *not* convert an empty string to "--"', () => { | |
let converter = new WhenNilPipe(); | |
expect(converter.transform('', "--")).toEqual(''); | |
}); | |
it('*does* convert an empty string to "--" if we explicitly say so', () => { | |
let converter = new WhenNilPipe(); | |
expect(converter.transform('', "--", true)).toEqual('--'); | |
}); | |
it('does *not* convert an empty array to "--"', () => { | |
let converter = new WhenNilPipe(); | |
expect(converter.transform([], "--")).toEqual([]); | |
}); | |
it('*does* convert an empty array to "--" if we explicitly say so', () => { | |
let converter = new WhenNilPipe(); | |
expect(converter.transform([], "--", true)).toEqual('--'); | |
}); | |
}); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* @author RKlein | |
*/ | |
import { Injectable, Pipe, PipeTransform } from '@angular/core'; | |
import * as _ from 'lodash'; | |
/** | |
* If the value is null/undefined just display an alternative text | |
* Usage Demo: | |
```html | |
<div>{{result?.value|whenNil:'--'}}</div> | |
``` | |
* If any empty string or empty collection should also trigger the empty text then add true as last parameter | |
*/ | |
@Pipe({ | |
name: 'whenNil' | |
}) | |
@Injectable() | |
export class WhenNilPipe implements PipeTransform { | |
transform(value: any, nilText: string, emptyAlso:boolean=false): string { | |
if (_.isNil(value)) { | |
return nilText; | |
} | |
if(emptyAlso && _.isEmpty(value)){ | |
return nilText; | |
} | |
return value; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment