UNPKG

@strapi/utils

Version:

Shared utilities for the Strapi packages

1 lines 1.73 kB
{"version":3,"file":"policy.mjs","sources":["../src/policy.ts"],"sourcesContent":["import { eq } from 'lodash/fp';\n\ninterface Options {\n name: string;\n validator?(config: unknown): void;\n handler(...args: any[]): any;\n}\n\nconst createPolicy = (options: Options) => {\n const { name = 'unnamed', validator, handler } = options;\n\n const wrappedValidator = (config: unknown) => {\n if (validator) {\n try {\n validator(config);\n } catch (e) {\n throw new Error(`Invalid config passed to \"${name}\" policy.`);\n }\n }\n };\n\n return {\n name,\n validator: wrappedValidator,\n handler,\n };\n};\n\nconst createPolicyContext = (type: string, ctx: object) => {\n return Object.assign(\n {\n is: eq(type),\n get type() {\n return type;\n },\n },\n ctx\n );\n};\n\nexport { createPolicy, createPolicyContext };\n"],"names":["createPolicy","options","name","validator","handler","wrappedValidator","config","e","Error","createPolicyContext","type","ctx","Object","assign","is","eq"],"mappings":";;AAQA,MAAMA,eAAe,CAACC,OAAAA,GAAAA;IACpB,MAAM,EAAEC,OAAO,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGH,OAAAA;AAEjD,IAAA,MAAMI,mBAAmB,CAACC,MAAAA,GAAAA;AACxB,QAAA,IAAIH,SAAW,EAAA;YACb,IAAI;gBACFA,SAAUG,CAAAA,MAAAA,CAAAA;AACZ,aAAA,CAAE,OAAOC,CAAG,EAAA;AACV,gBAAA,MAAM,IAAIC,KAAM,CAAA,CAAC,0BAA0B,EAAEN,IAAAA,CAAK,SAAS,CAAC,CAAA;AAC9D;AACF;AACF,KAAA;IAEA,OAAO;AACLA,QAAAA,IAAAA;QACAC,SAAWE,EAAAA,gBAAAA;AACXD,QAAAA;AACF,KAAA;AACF;AAEMK,MAAAA,mBAAAA,GAAsB,CAACC,IAAcC,EAAAA,GAAAA,GAAAA;IACzC,OAAOC,MAAAA,CAAOC,MAAM,CAClB;AACEC,QAAAA,EAAAA,EAAIC,EAAGL,CAAAA,IAAAA,CAAAA;AACP,QAAA,IAAIA,IAAO,CAAA,GAAA;YACT,OAAOA,IAAAA;AACT;KAEFC,EAAAA,GAAAA,CAAAA;AAEJ;;;;"}