UNPKG

logo.svg

Version:

Generate a svg logo, then you can embed it in you README.md

76 lines (55 loc) 1.42 kB
'use strict'; var fs = require('fs'); var path = require('path'); var loadrc = require('loadrc'); var Text2svg = require('text2svg'); var fonts = require('./fonts'); var defauts = require('./defaults'); exports.generate = function (options, hasExternal) { if (hasExternal) { options = merge(defauts, options); } else { options = merge(defauts, loadrc.load('logorc'), options); } if (!options.desc) { options.desc = 'Generated by logo.svg, https://github.com/bubkoo/logo.svg'; } var font = fonts.getFontPath(options.font); var logo = parseLogoName(options); var parser = new Text2svg(font); if (parser) { return parser.toSVG(logo, options).svg; } }; // helpers // ------- function parseLogoName(options) { var logo = options.logo || getPackageName(); if (!logo) { throw new Error('You must specify the logo name'); } return logo; } function getPackageName() { var pkgPath = path.join(process.cwd(), 'package.json'); try { var pkg = require(pkgPath); return pkg.name || ''; } catch (e) { return ''; } } function merge() { var sources = [].slice.call(arguments); var result = {}; sources.forEach(function (source) { if (source) { for (var name in source) { if ({}.hasOwnProperty.call(source, name)) { result[name] = source[name]; } } } }); return result; }