Skip to content

Commit

Permalink
add browser support (#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
killmenot committed Apr 20, 2020
1 parent 5f46465 commit fc39c1a
Showing 1 changed file with 43 additions and 25 deletions.
68 changes: 43 additions & 25 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,36 +1,54 @@
'use strict';
/*global define */

(function (root, factory) {
// https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignore-a-umd-wrapper
/* istanbul ignore next */
if (typeof define === 'function' && define.amd) {
define(['valid-data-url'], factory);
} else if (typeof module === 'object' && module.exports) {
module.exports = factory(
require('valid-data-url')
);
} else {
root.parseDataUrl = factory(
root.validDataUrl
);
}
}(this, function (validDataUrl) {
if (typeof validDataUrl === 'undefined') {
throw new Error('valid-data-url is not defined');
}

const validDataUrl = require('valid-data-url');
return function (s) {
if (!validDataUrl(s)) {
return false;
}

module.exports = (s) => {
if (!validDataUrl(s)) {
return false;
}
const parts = s.trim().match(validDataUrl.regex);
const parsed = {};

const parts = s.trim().match(validDataUrl.regex);
const parsed = {};
if (parts[1]) {
parsed.mediaType = parts[1].toLowerCase();

if (parts[1]) {
parsed.mediaType = parts[1].toLowerCase();
const mediaTypeParts = parts[1].split(';').map(x => x.toLowerCase());

const mediaTypeParts = parts[1].split(';').map(x => x.toLowerCase());
parsed.contentType = mediaTypeParts[0];

parsed.contentType = mediaTypeParts[0];
mediaTypeParts.slice(1).forEach((attribute) => {
const p = attribute.split('=');
parsed[p[0]] = p[1];
});
}

mediaTypeParts.slice(1).forEach((attribute) => {
const p = attribute.split('=');
parsed[p[0]] = p[1];
});
}
parsed.base64 = !!parts[parts.length - 2];
parsed.data = parts[parts.length - 1] || '';

parsed.base64 = !!parts[parts.length - 2];
parsed.data = parts[parts.length - 1] || '';
parsed.toBuffer = () => {
const encoding = parsed.base64 ? 'base64' : 'utf8';

parsed.toBuffer = () => {
const encoding = parsed.base64 ? 'base64' : 'utf8';
return Buffer.from(parsed.data, encoding);
};

return Buffer.from(parsed.data, encoding);
return parsed;
};

return parsed;
};
}));

0 comments on commit fc39c1a

Please sign in to comment.