Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | 4x 4x 56x 56x 56x 56x 56x 56x 1x 55x 235x 235x 235x 235x 235x 20x 22x 22x 24x 20x 20x 215x 222x 215x 215x 2x 2x 2x 2x 1x 1x 1x 235x 233x 4x | /* eslint-disable prefer-template,newline-per-chained-call,complexity */ 'use strict'; const path = require('path'); const fs = require('fs'); function getMetadataService(options = {}) { let usedUnicodes = []; // Default options options.prependUnicode = !!options.prependUnicode; options.startUnicode = 'number' === typeof options.startUnicode ? options.startUnicode : 0xea01; options.log = options.log || console.log; // eslint-disable-line options.err = options.err || console.err; // eslint-disable-line // Throw on old options usage if ('undefined' !== typeof options.appendUnicode) { throw new Error( 'The "appendUnicode" option was renamed "prependUnicode".' + ' See https://github.com/nfroidure/gulp-svgicons2svgfont/issues/33' ); } return function getMetadataFromFile(file, cb) { const basename = path.basename(file); const metadata = { path: file, name: '', unicode: [], renamed: false, }; const matches = basename.match(/^(?:((?:u[0-9a-f]{4,6},?)+)-)?(.+)\.svg$/i); metadata.name = matches && matches[2] ? matches[2] : 'icon' + options.startUnicode; if (matches && matches[1]) { metadata.unicode = matches[1].split(',').map((match) => { match = match.substr(1); return match .split('u') .map((code) => String.fromCodePoint(parseInt(code, 16))) .join(''); }); Iif (-1 !== usedUnicodes.indexOf(metadata.unicode[0])) { cb( new Error( 'The unicode codepoint of the glyph ' + metadata.name + ' seems to be already used by another glyph.' ) ); return; } usedUnicodes.push(...metadata.unicode); } else { do { metadata.unicode[0] = String.fromCodePoint(options.startUnicode++); } while (usedUnicodes.includes(metadata.unicode[0])); usedUnicodes.push(metadata.unicode[0]); if (options.prependUnicode) { metadata.renamed = true; metadata.path = path.join( path.dirname(file), 'u' + metadata.unicode[0].codePointAt(0).toString(16).toUpperCase() + '-' + basename ); fs.rename(file, metadata.path, (err) => { if (err) { cb( new Error( 'Could not save codepoint: ' + 'u' + metadata.unicode[0] .codePointAt(0) .toString(16) .toUpperCase() + ' for ' + basename ) ); return; } cb(null, metadata); }); } } if (!metadata.renamed) { setImmediate(() => cb(null, metadata)); } }; } module.exports = getMetadataService; |