@oaklean/profiler-core
Version:
Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec
27 lines • 2.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataUrlUtils = void 0;
// eslint-disable-next-line no-useless-escape
const VALID_DATA_URL_REGEX = /^(data:)([\w\/\+-]*)((?:;charset=[\w-]+)?;base64){0,1},(.*)$/i;
class DataUrlUtils {
static isDataUrl(s) {
return VALID_DATA_URL_REGEX.test((s || '').trim());
}
static parseDataUrl(s) {
if (!DataUrlUtils.isDataUrl(s)) {
return '{}';
}
const parts = s.trim().match(VALID_DATA_URL_REGEX);
if (parts === null || parts[3] === undefined || parts[4] === undefined) {
return '{}';
}
const contentType = parts[3].slice(1);
const content = parts[4];
if (contentType !== 'base64' && contentType !== 'charset=utf-8;base64') {
throw new Error(`DataUrlUtils.parseDataUrl: The Format ${contentType} is not supported`);
}
return Buffer.from(content, 'base64').toString('utf-8');
}
}
exports.DataUrlUtils = DataUrlUtils;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVVybFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlci9EYXRhVXJsVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTZDO0FBQzdDLE1BQU0sb0JBQW9CLEdBQUcsK0RBQStELENBQUE7QUFFNUYsTUFBYSxZQUFZO0lBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBUztRQUN6QixPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQVM7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQTtRQUNaLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFFbEQsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hFLE9BQU8sSUFBSSxDQUFBO1FBQ1osQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDckMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXhCLElBQUksV0FBVyxLQUFLLFFBQVEsSUFBSSxXQUFXLEtBQUssc0JBQXNCLEVBQUUsQ0FBQztZQUN4RSxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxXQUFXLG1CQUFtQixDQUFDLENBQUE7UUFDekYsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3hELENBQUM7Q0FDRDtBQXpCRCxvQ0F5QkMifQ==