{"version":3,"file":"get-wildcard-fields-factory.cjs","sources":["../../../src/factories/get-wildcard-fields-factory.ts"],"sourcesContent":["import { type GetFieldsFunction } from \"./get-fields-function\";\n\n/**\n * Returns a function that returns the fields to apply to a model\n *\n * @param includeFields\n * @param excludeFields\n */\nexport default function getWildcardFieldsFactory(\n  includeFields: string[],\n  excludeFields: string[] = [],\n): GetFieldsFunction {\n  return (operationModel: string) => {\n    const includeFieldsForModel = includeFields\n      .filter((includeField) => {\n        const [model] = includeField.split(\":\");\n        return model === \"*\" || model === operationModel;\n      })\n      .map((includeField) => {\n        const [, field] = includeField.split(\":\");\n        return field;\n      });\n\n    const excludeFieldsForModel = excludeFields\n      .filter((excludeField) => {\n        const [model] = excludeField.split(\":\");\n        return model === operationModel;\n      })\n      .map((excludeField) => {\n        const [, field] = excludeField.split(\":\");\n        return field;\n      });\n\n    if (excludeFieldsForModel.includes(\"*\")) {\n      return [];\n    }\n\n    return includeFieldsForModel.filter((includeField) => !excludeFieldsForModel.includes(includeField));\n  };\n}\n"],"names":[],"mappings":";AAQA,SAAwB,yBACtB,eACA,gBAA0B,IACP;AACnB,SAAO,CAAC,mBAA2B;AACjC,UAAM,wBAAwB,cAC3B,OAAO,CAAC,iBAAiB;AACxB,YAAM,CAAC,KAAK,IAAI,aAAa,MAAM,GAAG;AAC/B,aAAA,UAAU,OAAO,UAAU;AAAA,IAAA,CACnC,EACA,IAAI,CAAC,iBAAiB;AACrB,YAAM,CAAG,EAAA,KAAK,IAAI,aAAa,MAAM,GAAG;AACjC,aAAA;AAAA,IAAA,CACR;AAEH,UAAM,wBAAwB,cAC3B,OAAO,CAAC,iBAAiB;AACxB,YAAM,CAAC,KAAK,IAAI,aAAa,MAAM,GAAG;AACtC,aAAO,UAAU;AAAA,IAAA,CAClB,EACA,IAAI,CAAC,iBAAiB;AACrB,YAAM,CAAG,EAAA,KAAK,IAAI,aAAa,MAAM,GAAG;AACjC,aAAA;AAAA,IAAA,CACR;AAEC,QAAA,sBAAsB,SAAS,GAAG,GAAG;AACvC,aAAO;IACT;AAEO,WAAA,sBAAsB,OAAO,CAAC,iBAAiB,CAAC,sBAAsB,SAAS,YAAY,CAAC;AAAA,EAAA;AAEvG;;"}