{"version":3,"sources":["jsdelivr-header.js","/npm/gridsome-source-shopware6@0.1.0/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,IAAI,OAAS,QAAQ,eAErB,MAAM,WAAa,QAAQ,qBAAqB,MAE1C,UAAC,WAAa,QAAQ,UAG5B,MAAM,eACF,qBAAO,GACH,MAAO,CACH,OAAO,EACP,SAAU,GACV,eAAgB,GAChB,MAAO,CAAC,UAAW,WAAY,kBAAmB,YAClD,WAAY,KACZ,QAAS,IAEjB,CAEA,WAAA,CAAY,EAAK,GAIb,GAHA,KAAK,IAAM,EACX,KAAK,QAAU,GAEV,EAAQ,SAAW,MAAM,IAAI,MAAM,sBACxC,IAAK,EAAQ,eAAgB,MAAM,IAAI,MAAM,6BAC7C,IAAK,EAAQ,WAAY,MAAM,IAAI,MAAM,gCAIzC,KAAK,QAAU,OAAO,OAAO,eAAe,iBAAkB,GAE9D,EAAI,WAAW,KAAK,WAAW,KAAK,MACxC,CAEA,gBAAM,CAAW,GACb,MAAM,EAAW,OAAO,aAAa,KAAK,QAAQ,eAAgB,KAAK,QAAQ,SAG/E,IAAK,MAAM,KAAY,KAAK,QAAQ,MAAO,CACvC,IAAI,EAAM,GAAG,KAAK,QAAQ,sBAAsB,KAAK,QAAQ,cAAc,EAAS,gBAEpF,MAAM,QAAe,EAAS,KAAK,GAEnC,GAA0B,OAAtB,EAAO,WAAqB,CAC5B,KAAK,IAAI,GACT,QACJ,CAEA,IAAI,EAAO,GAEN,GAID,EADO,EAAO,MAAQ,EAAO,KAAK,SAC3B,EAAO,KAAK,SAEZ,EAAO,KAGlB,KAAK,eAAe,EAAM,EAAS,UAAU,KARzC,KAAK,IAAI,EASjB,CACJ,CAEA,cAAA,CAAe,EAAM,EAAS,GAC1B,MAAM,EAAa,EAAQ,cAAc,EAAS,QAAQ,IAAK,KAE/D,IACI,IAAK,IAAI,KAAQ,EACb,EAAW,QAAQ,EAE3B,CAAE,MAAO,GACL,QAAQ,MAAM,GACd,QAAQ,MAAM,iDAClB,CACJ,CAEA,GAAA,CAAI,GACI,KAAK,QAAQ,OAAO,QAAQ,IAAI,GAAG,eAAgB,EAC3D,EAGJ,OAAO,QAAU","file":"/npm/gridsome-source-shopware6@0.1.0/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/gridsome-source-shopware6@0.1.0/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nvar client = require('./client.js');\n\nconst pluginName = require(\"./../package.json\").name;\n\nconst {camelCase} = require('lodash');\n\n\nclass ShopwareSource {\n    static defaultOptions() {\n        return {\n            debug: false,\n            storeUrl: '',\n            apiAccessToken: '',\n            types: ['product', 'currency', 'shipping-method', 'category'],\n            apiVersion: 'v3',\n            timeout: 60000\n        }\n    }\n\n    constructor(api, options) {\n        this.api = api;\n        this.options = options;\n\n        if (!options.storeUrl ) throw new Error('Missing store url.')\n        if (!options.apiAccessToken) throw new Error('Missing API access token.')\n        if (!options.apiVersion) throw new Error('Missing API Version. E.g. v3')\n\n\n        // merge options\n        this.options = Object.assign(ShopwareSource.defaultOptions(), options);\n\n        api.loadSource(this.loadSource.bind(this));\n    }\n\n    async loadSource(actions) {\n        const client$1 = client.createClient(this.options.apiAccessToken, this.options.timeout);\n\n\n        for (const typeName of this.options.types) {\n            let url = `${this.options.storeUrl}/store-api/${this.options.apiVersion}/${typeName.toLowerCase()}`;\n\n            const result = await client$1.post(url);\n\n            if (result.statusText !== 'OK') {\n                this.log(result);\n                continue;\n            }\n\n            let data = [];\n\n            if (!result) {\n                this.log(result);\n                continue;\n            } else if (result.data && result.data.elements) {\n                data = result.data.elements;\n            } else {\n                data = result.data;\n            }\n\n            this.collectionData(data, actions, camelCase(typeName));\n        }\n    }\n\n    collectionData(data, actions, typeName) {\n        const collection = actions.addCollection(typeName.replace('-', ''));\n\n        try {\n            for (let item of data) {\n                collection.addNode(item);\n            }\n        } catch (e) {\n            console.error(e);\n            console.error(\"Have you set the right types ['product', ...]?\");\n        }\n    }\n\n    log(a) {\n        if (this.options.debug) console.log(`${pluginName}: `, a);\n    }\n}\n\nmodule.exports = ShopwareSource;\n"]}