Skip to content

Instantly share code, notes, and snippets.

@Bajix
Created July 22, 2016 04:34
Show Gist options
  • Save Bajix/1afdc3373dde57294fa6b72c46e5191f to your computer and use it in GitHub Desktop.
Save Bajix/1afdc3373dde57294fa6b72c46e5191f to your computer and use it in GitHub Desktop.
Opentype Font Loader
var opentype = require('opentype.js'),
loader = require("@loader");
exports.fetch = function( load ) {
if (typeof XMLHttpRequest !== 'function') {
load.metadata.build = false;
return loader.fetch(load);
}
return new Promise(function( resolve, reject ) {
var request = new XMLHttpRequest();
request.open('get', load.address, true);
request.responseType = 'arraybuffer';
request.onload = function() {
if (request.status !== 200) {
reject('Font could not be loaded: ' + request.statusText);
} else {
resolve(request.response);
}
};
request.send();
});
};
var translate = loader.translate;
loader.translate = function( load ) {
if (load.source instanceof ArrayBuffer) {
load.metadata.deps = [];
load.metadata.execute = function() {
return opentype.parse(load.source);
};
load.metadata.format = 'otf';
} else {
return translate.apply(this, arguments);
}
};
exports.build = false;
exports.includeInBuild = true;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment