UNPKG

google-fonts-cli

Version:

a quick way to add a google font to your project

51 lines (42 loc) 1.35 kB
var B = require('boots-utils'); module.exports = FontCollection; /** * @constructor * @param {Font[]} data - A json blob from the google-fonts-api */ function FontCollection(data) { this.FONTS = data.items; } /** currently only searches for family */ FontCollection.prototype.find = function(options) { var family = options.family; for (var i = 0; i < this.FONTS.length; i++) { if (this.FONTS[i].family === family) { return this.FONTS[i]; } } }; FontCollection.prototype.random = function(category, variants) { var fonts = []; // TODO - refactor. can this in one pass instead of two // TODO - resolve whether the parameters are treated as "and" or "or"w if (variants) { fonts = this.FONTS.filter(_fontVariantFilter); } if (category) { fonts = fonts.concat(this.FONTS.filter(_fontCategoryFilter)); } if (fonts.length === 0) fonts = this.FONTS; return B.array.randomInArray(fonts); function _fontCategoryFilter(font) { return font.category === category; } function _fontVariantFilter(font) { // TODO - optimize, low priority return variants.some(function(variant) { return font.variants.some(function(fontVariant) { return variant === fontVariant; }); }); } };