@shopify/shopify-api
Version:
Shopify API Library for Node - accelerate development with support for authentication, graphql proxy, webhooks
1 lines • 2.96 kB
Source Map (JSON)
{"version":3,"file":"load-rest-resources.mjs","sources":["../../../../../rest/load-rest-resources.ts"],"sourcesContent":["import type {ShopifyClients} from '../lib';\nimport {ConfigInterface} from '../lib/base-types';\nimport {logger} from '../lib/logger';\n\nimport {Base} from './base';\nimport {ShopifyRestResources} from './types';\n\nexport interface LoadRestResourcesParams<\n Resources extends ShopifyRestResources,\n> {\n resources: Resources;\n config: ConfigInterface;\n RestClient: ShopifyClients['Rest'];\n}\n\nexport function loadRestResources<Resources extends ShopifyRestResources>({\n resources,\n config,\n RestClient,\n}: LoadRestResourcesParams<Resources>): Resources {\n const firstResource = Object.keys(resources)[0];\n if (config.apiVersion !== resources[firstResource].apiVersion) {\n logger(config).warning(\n `Loading REST resources for API version ${resources[firstResource].apiVersion}, which doesn't match the default ${config.apiVersion}`,\n );\n }\n\n return Object.fromEntries(\n Object.entries(resources).map(([name, resource]) => {\n class NewResource extends resource {}\n\n NewResource.setClassProperties({\n Client: RestClient,\n config,\n });\n\n Object.entries(NewResource.hasOne).map(([_attribute, klass]) => {\n (klass as typeof Base).setClassProperties({\n Client: RestClient,\n config,\n });\n });\n\n Object.entries(NewResource.hasMany).map(([_attribute, klass]) => {\n (klass as typeof Base).setClassProperties({\n Client: RestClient,\n config,\n });\n });\n\n Reflect.defineProperty(NewResource, 'name', {\n value: name,\n });\n\n return [name, NewResource];\n }),\n ) as Resources;\n}\n"],"names":[],"mappings":";;AAeM,SAAU,iBAAiB,CAAyC,EACxE,SAAS,EACT,MAAM,EACN,UAAU,GACyB,EAAA;IACnC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE;AAC7D,QAAA,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CACpB,0CAA0C,SAAS,CAAC,aAAa,CAAC,CAAC,UAAU,CAAA,kCAAA,EAAqC,MAAM,CAAC,UAAU,CAAA,CAAE,CACtI;IACH;IAEA,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAI;QACjD,MAAM,WAAY,SAAQ,QAAQ,CAAA;AAAG;QAErC,WAAW,CAAC,kBAAkB,CAAC;AAC7B,YAAA,MAAM,EAAE,UAAU;YAClB,MAAM;AACP,SAAA,CAAC;AAEF,QAAA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,KAAI;YAC5D,KAAqB,CAAC,kBAAkB,CAAC;AACxC,gBAAA,MAAM,EAAE,UAAU;gBAClB,MAAM;AACP,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,KAAI;YAC7D,KAAqB,CAAC,kBAAkB,CAAC;AACxC,gBAAA,MAAM,EAAE,UAAU;gBAClB,MAAM;AACP,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE;AAC1C,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA,CAAC;AAEF,QAAA,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC;IAC5B,CAAC,CAAC,CACU;AAChB;;;;"}