sip.js
Version:
A SIP library for JavaScript
40 lines (39 loc) • 1.12 kB
JavaScript
/**
* @internal
*/
export class Parameters {
constructor(parameters) {
this.parameters = {};
// for in is required here as the Grammar parser is adding to the prototype chain
for (const param in parameters) {
// eslint-disable-next-line no-prototype-builtins
if (parameters.hasOwnProperty(param)) {
this.setParam(param, parameters[param]);
}
}
}
setParam(key, value) {
if (key) {
this.parameters[key.toLowerCase()] = (typeof value === "undefined" || value === null) ? null : value.toString();
}
}
getParam(key) {
if (key) {
return this.parameters[key.toLowerCase()];
}
}
hasParam(key) {
return !!(key && this.parameters[key.toLowerCase()] !== undefined);
}
deleteParam(key) {
key = key.toLowerCase();
if (this.hasParam(key)) {
const value = this.parameters[key];
delete this.parameters[key];
return value;
}
}
clearParams() {
this.parameters = {};
}
}