Browse Source

feat: add a utility method to map enums to options

pull/3655/head
Arman Ozak 7 years ago
parent
commit
b1119cf4f0
  1. 30
      npm/ng-packs/packages/core/src/lib/tests/form-utils.spec.ts
  2. 15
      npm/ng-packs/packages/core/src/lib/utils/form-utils.ts

30
npm/ng-packs/packages/core/src/lib/tests/form-utils.spec.ts

@ -0,0 +1,30 @@
import { mapEnumToOptions } from '../utils/form-utils';
enum SomeEnum {
NotApplicable = 'N/A',
Foo = 0,
Bar,
}
describe('Form Utils', () => {
describe('#mapEnumToOptions', () => {
it('should return options from enum', () => {
const options = mapEnumToOptions(SomeEnum);
expect(options).toEqual([
{
key: 'NotApplicable',
value: SomeEnum.NotApplicable,
},
{
key: 'Foo',
value: SomeEnum.Foo,
},
{
key: 'Bar',
value: SomeEnum.Bar,
},
]);
});
});
});

15
npm/ng-packs/packages/core/src/lib/utils/form-utils.ts

@ -0,0 +1,15 @@
import { ABP } from '../models/common';
import { isNumber } from './number-utils';
export function mapEnumToOptions<T>(_enum: T): ABP.Option<T>[] {
const options: ABP.Option<T>[] = [];
for (const member in _enum)
if (!isNumber(member))
options.push({
key: member,
value: _enum[member],
});
return options;
}
Loading…
Cancel
Save