From 5836ecb136f5ff1b865aaad393334a22532ce3ff Mon Sep 17 00:00:00 2001 From: daniel-j Date: Mon, 12 Mar 2018 22:07:31 +0100 Subject: [PATCH] font subset function --- src/subsetFont.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/subsetFont.js diff --git a/src/subsetFont.js b/src/subsetFont.js new file mode 100644 index 0000000..c12d67c --- /dev/null +++ b/src/subsetFont.js @@ -0,0 +1,29 @@ + +import isNode from 'detect-node' +import { Font } from 'fonteditor-core' +import fs from 'fs' +import fetch from './fetch' + +async function subsetFont (fontPath, glyphs, options = {}) { + let data + if (!isNode || !options.local) { + data = await fetch(fontPath, 'arraybuffer') + } else { + data = await new Promise((resolve, reject) => { + fs.readFile(fontPath, (err, data) => { + if (err) reject(err) + else resolve(data) + }) + }) + } + return Font.create(data, { + type: 'ttf', + subset: glyphs, + hinting: true + }).write({ + type: 'ttf', + hinting: true + }) +} + +export default subsetFont