| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import {AnyJson, DataProviderArgs, EnumChoice, EnumChoices, Provider} from "~/types/interfaces";
- import BaseProvider from "~/services/dataProvider/provider/baseProvider";
- import {QUERY_TYPE} from "~/types/enums";
- import * as _ from "lodash";
- import {Context} from "@nuxt/types/app";
- class EnumProvider extends BaseProvider implements Provider{
- constructor(ctx: Context, args: DataProviderArgs) {
- super(ctx, args);
- }
- async invoke(data: AnyJson): Promise<any>{
- const enums:EnumChoices = []
- _.each(data['items'], (item, key) =>{
- const entry:EnumChoice = {
- value: key,
- label: this.ctx.app.i18n.t(item) as string
- };
- enums.push(entry)
- })
- return this.sortEnum(enums)
- }
- private sortEnum(enums:EnumChoices){
- return enums.sort( (a, b) => {
- if (a.label > b.label)
- return 1;
- if (a.label < b.label)
- return -1;
- return 0;
- });
- }
- static support(args:DataProviderArgs): boolean{
- return args.type === QUERY_TYPE.ENUM
- }
- }
- export default EnumProvider
|