UNPKG

dynatrace-cordova-outsystems-plugin

Version:

This plugin gives you the ability to use the Dynatrace instrumentation in your hybrid application (Cordova, Ionic, ..). It uses the Mobile Agent, the JavaScript Agent and the Javascript Bridge. The Mobile Agent will give you all device specific values con

68 lines (65 loc) 1.79 kB
function Caseless (dict) { this.dict = dict || {} } Caseless.prototype.set = function (name, value, clobber) { if (typeof name === 'object') { for (var i in name) { this.set(i, name[i], value) } } else { if (typeof clobber === 'undefined') clobber = true var has = this.has(name) if (!clobber && has) this.dict[has] = this.dict[has] + ',' + value else this.dict[has || name] = value return has } } Caseless.prototype.has = function (name) { var keys = Object.keys(this.dict) , name = name.toLowerCase() ; for (var i=0;i<keys.length;i++) { if (keys[i].toLowerCase() === name) return keys[i] } return false } Caseless.prototype.get = function (name) { name = name.toLowerCase() var result, _key var headers = this.dict Object.keys(headers).forEach(function (key) { _key = key.toLowerCase() if (name === _key) result = headers[key] }) return result } Caseless.prototype.swap = function (name) { var has = this.has(name) if (has === name) return if (!has) throw new Error('There is no header than matches "'+name+'"') this.dict[name] = this.dict[has] delete this.dict[has] } Caseless.prototype.del = function (name) { var has = this.has(name) return delete this.dict[has || name] } module.exports = function (dict) {return new Caseless(dict)} module.exports.httpify = function (resp, headers) { var c = new Caseless(headers) resp.setHeader = function (key, value, clobber) { if (typeof value === 'undefined') return return c.set(key, value, clobber) } resp.hasHeader = function (key) { return c.has(key) } resp.getHeader = function (key) { return c.get(key) } resp.removeHeader = function (key) { return c.del(key) } resp.headers = c.dict return c }