@snap/camera-kit
Version:
Camera Kit Web
23 lines • 837 B
JavaScript
const nameDelimiter = "_";
const dimensionDelimiter = ".";
const delimiterRegex = new RegExp(`^${nameDelimiter}+|${nameDelimiter}+$`, "g");
export class Metric {
constructor(name, dimensions = {}) {
this.name = name;
this.dimensions = dimensions;
}
child(constructor, name, dimensions = {}) {
return new constructor(`${this.name}${nameDelimiter}${name}`, dimensions);
}
}
export function joinMetricNames(names) {
return names.join(nameDelimiter).replace(delimiterRegex, "");
}
export function serializeMetricDimensions(dimensions) {
if (Object.keys(dimensions).length === 0)
return "";
return `${dimensionDelimiter}${Array.from(Object.entries(dimensions))
.map((d) => d.join(dimensionDelimiter))
.join(dimensionDelimiter)}`;
}
//# sourceMappingURL=Metric.js.map