ngrx-forms
Version:
Proper integration of forms in Angular 4 applications using ngrx
40 lines • 3.27 kB
JavaScript
import { unbox } from 'ngrx-forms';
/**
* A validation function that requires the value to be strictly equal (i.e. `===`)
* to another value.
*
* The validation error returned by this validation function has the following shape:
*
```typescript
{
equalTo: {
comparand: T;
actual: T;
};
}
```
*
* Usually you would use this validation function in conjunction with the `validate`
* update function to perform synchronous validation in your reducer:
*
```typescript
updateGroup<MyFormValue>({
name: validate(equalTo('John Doe')),
})
```
*/
export function equalTo(comparand) {
return (value) => {
value = unbox(value);
if (value === comparand) {
return {};
}
return {
equalTo: {
comparand,
actual: value,
},
};
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWwtdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92YWxpZGF0aW9uL3NyYy9lcXVhbC10by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsS0FBSyxFQUFvQixNQUFNLFlBQVksQ0FBQztBQWM1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFJLFNBQVk7SUFDckMsT0FBTyxDQUE4QixLQUFTLEVBQW9CLEVBQUU7UUFDbEUsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQVksQ0FBQztRQUVoQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1AsU0FBUztnQkFDVCxNQUFNLEVBQUUsS0FBSzthQUNkO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3hlZCwgdW5ib3gsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICduZ3J4LWZvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXF1YWxUb1ZhbGlkYXRpb25FcnJvcjxUPiB7XHJcbiAgY29tcGFyYW5kOiBUO1xyXG4gIGFjdHVhbDogVDtcclxufVxyXG5cclxuLy8gQHRzLWlnbm9yZVxyXG5kZWNsYXJlIG1vZHVsZSAnbmdyeC1mb3Jtcycge1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbkVycm9ycyB7XHJcbiAgICBlcXVhbFRvPzogRXF1YWxUb1ZhbGlkYXRpb25FcnJvcjxhbnk+O1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEEgdmFsaWRhdGlvbiBmdW5jdGlvbiB0aGF0IHJlcXVpcmVzIHRoZSB2YWx1ZSB0byBiZSBzdHJpY3RseSBlcXVhbCAoaS5lLiBgPT09YClcclxuICogdG8gYW5vdGhlciB2YWx1ZS5cclxuICpcclxuICogVGhlIHZhbGlkYXRpb24gZXJyb3IgcmV0dXJuZWQgYnkgdGhpcyB2YWxpZGF0aW9uIGZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIHNoYXBlOlxyXG4gKlxyXG5gYGB0eXBlc2NyaXB0XHJcbntcclxuICBlcXVhbFRvOiB7XHJcbiAgICBjb21wYXJhbmQ6IFQ7XHJcbiAgICBhY3R1YWw6IFQ7XHJcbiAgfTtcclxufVxyXG5gYGBcclxuICpcclxuICogVXN1YWxseSB5b3Ugd291bGQgdXNlIHRoaXMgdmFsaWRhdGlvbiBmdW5jdGlvbiBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBgdmFsaWRhdGVgXHJcbiAqIHVwZGF0ZSBmdW5jdGlvbiB0byBwZXJmb3JtIHN5bmNocm9ub3VzIHZhbGlkYXRpb24gaW4geW91ciByZWR1Y2VyOlxyXG4gKlxyXG5gYGB0eXBlc2NyaXB0XHJcbnVwZGF0ZUdyb3VwPE15Rm9ybVZhbHVlPih7XHJcbiAgbmFtZTogdmFsaWRhdGUoZXF1YWxUbygnSm9obiBEb2UnKSksXHJcbn0pXHJcbmBgYFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGVxdWFsVG88VD4oY29tcGFyYW5kOiBUKSB7XHJcbiAgcmV0dXJuIDxUViBleHRlbmRzIFQgfCBCb3hlZDxUPiA9IFQ+KHZhbHVlOiBUVik6IFZhbGlkYXRpb25FcnJvcnMgPT4ge1xyXG4gICAgdmFsdWUgPSB1bmJveCh2YWx1ZSkgYXMgVCBhcyBUVjtcclxuXHJcbiAgICBpZiAodmFsdWUgPT09IGNvbXBhcmFuZCkge1xyXG4gICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXF1YWxUbzoge1xyXG4gICAgICAgIGNvbXBhcmFuZCxcclxuICAgICAgICBhY3R1YWw6IHZhbHVlLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==