UNPKG

mozu-node-sdk

Version:

Mozu JavaScript SDK for Node.js and Arc.js environments

74 lines (67 loc) 2.43 kB
'use strict'; // BEGIN INIT var fs = require('fs'); var findup = require('./tiny-findup'); var legalConfigNames = ['mozu.config','mozu.config.json']; module.exports = function getConfig() { let confJson = null; let conf = { appKey: process.env.KIBO_CLIENT_ID || process.env.KIBO_APP_KEY , sharedSecret: process.env.KIBO_SHARED_SECRET , tenantPod: process.env.KIBO_API_HOST, baseUrl : process.env.KIBO_API_BASE_URL ||'https://home.mozu.com/', basePciUrl: process.env.KIBO_API_PCI_URL || 'https://pmts.mozu.com/', developerAccountId: process.env.KIBO_DEV_ACCOUNT_ID, tenant: process.env.KIBO_TENANT || process.env.KIBO_TENANT_ID, site: process.env.KIBO_SITE || process.env.KIBO_SITE_ID, catalog: process.env.KIBO_CATALOG || process.env.KIBO_CATALOG_ID, masterCatalog: process.env.KIBO_MASTER_CATALOG || process.env.KIBO_MASTER_CATALOG_ID, locale: process.env.KIBO_LOCALE, currency: process.env.KIBO_CURRENCY, developerAccount:{ emailAddress : process.env.KIBO_USER_NAME, password : process.env.KIBO_USER_NAME } } if (process.env.mozuHosted) { try { conf = JSON.parse(process.env.mozuHosted).sdkConfig; } catch(e) { throw new Error("Mozu hosted configuration was unreadable: " + e.message); } } else { for (var i = legalConfigNames.length - 1; i >= 0; i--) { try { var filename = findup(legalConfigNames[i]); if (filename) confJson = fs.readFileSync(filename, 'utf-8'); } catch(e) { continue; } if (confJson) break; } if (confJson){ try { conf = Object.assign({}, conf, JSON.parse(confJson)); } catch(e) { throw new Error("Configuration file was unreadable: " + e.message); } } if(conf.tenantPod){ conf.tenantPod = /https*:\/\/[^\/]+\//i.exec(conf.tenantPod+'/')[0]; let m = /t(\d+)-s(\d+)/gmi.exec(conf.tenantPod); if(m){ conf.tenant = parseInt(m[1]) conf.site = parseInt(m[2]) }else{ let m = /t(\d+)/gmi.exec(conf.tenantPod); if(m){ conf.tenant = parseInt(m[1]) } } } if (!conf.appKey && !conf.workingApplicationKey) { throw new Error("No configuration found. Either set the kibo env vars , create a 'mozu.config' or 'mozu.config.json' file, or supply full config to the .client() method."); } } return conf; };