icon-maker-loader
Advanced tools
Comparing version 0.1.7 to 0.1.8
const fs = require('fs'); | ||
const path = require('path'); | ||
const uuid = require('node-uuid'); | ||
// const os = require('os'); | ||
const uuid = require('uuid'); | ||
@@ -34,3 +33,2 @@ module.exports = () => { | ||
fs.mkdirSync(tmpFolder); | ||
console.log(`Created dir '${tmpFolder}'.`); | ||
} catch (e) { | ||
@@ -37,0 +35,0 @@ if (e.code !== 'EEXIST') throw e; |
83
index.js
@@ -8,8 +8,9 @@ const loaderUtils = require('loader-utils'); | ||
const tmpFolder = createTmpDir(); | ||
const tmpFolderForNode = path.join('icon-maker-loader', path.relative(__dirname, tmpFolder)).replace(/\\/g, '/'); | ||
const fonts = {}; | ||
const writeFontFiles = (fontFamily, font, cb) => { | ||
const writeFontFiles = (fontFamily, iconMaker, cb) => { | ||
const pathToFontJs = path.join(tmpFolder, `${fontFamily}.js`); | ||
font.iconMaker.run((err, outFont) => { | ||
iconMaker.run((err, outFont) => { | ||
if (err) { | ||
@@ -75,55 +76,11 @@ throw err; | ||
const pathToSvg = this.resourcePath; | ||
console.log('load', pathToSvg); | ||
const params = loaderUtils.parseQuery(this.query); | ||
const fileName = path.basename(pathToSvg, '.svg'); | ||
const fontFamily = params.fontFamily || 'icon-maker'; | ||
const font = fonts[fontFamily]; | ||
const tmpFolderForNode = path.join('icon-maker-loader', path.relative(__dirname, tmpFolder)).replace(/\\/g, '/'); | ||
const moduleContent = ` | ||
var style = require(${JSON.stringify(`${tmpFolderForNode}/${fontFamily}.js`)}); | ||
if (style) { | ||
module.exports = style[${JSON.stringify(fontFamily)}] + " " + style[${JSON.stringify(`${fontFamily}-${fileName}`)}]; | ||
} else { | ||
module.exports = ${JSON.stringify(`${fontFamily} ${fontFamily}-${fileName}`)}; | ||
} | ||
`; | ||
if (font.paths.indexOf(pathToSvg) === -1) { | ||
font.count -= 1; | ||
if (font.count === 0) { | ||
writeFontFiles(fontFamily, font, err => { | ||
if (err) { | ||
throw err; | ||
} | ||
font.doOnRun.forEach(fn => fn()); | ||
fonts[fontFamily] = { | ||
paths: fonts[fontFamily].paths, | ||
created: true | ||
}; | ||
}); | ||
} | ||
if (font.created) { | ||
return moduleContent; | ||
} else { | ||
const cb = this.async(); | ||
font.doOnRun.push(() => { | ||
font.paths.push(pathToSvg); | ||
cb(undefined, moduleContent); | ||
}); | ||
return undefined; | ||
} | ||
} else { | ||
return moduleContent; | ||
} | ||
}; | ||
module.exports.pitch = function iconMakerLoaderPitch(pathToSvg) { | ||
const params = loaderUtils.parseQuery(this.query); | ||
const fontFamily = params.fontFamily || 'icon-maker'; | ||
const isLocalCss = params.localCss !== undefined ? true : undefined; | ||
const files = params.files !== undefined ? params.files.split(',') : undefined; | ||
if (fonts[fontFamily] === undefined || fonts[fontFamily].count === undefined) { | ||
if (fonts[fontFamily] === undefined) { | ||
fonts[fontFamily] = { | ||
count: 0, | ||
paths: fonts[fontFamily] === undefined ? [] : fonts[fontFamily].paths, | ||
created: fonts[fontFamily] === undefined ? false : fonts[fontFamily].created, | ||
doOnRun: [], | ||
doOnFinish: [], | ||
iconMaker: new IconMaker({ fontFamily, files, isLocalCss }) | ||
@@ -133,7 +90,25 @@ }; | ||
const font = fonts[fontFamily]; | ||
if (font.paths.indexOf(pathToSvg) === -1) { | ||
font.count += 1; | ||
font.iconMaker.addSvg(pathToSvg, fontFamily); | ||
} | ||
clearTimeout(font.timeoutIdentifier); | ||
font.iconMaker.addSvg(pathToSvg, fontFamily); | ||
const cb = this.async(); | ||
font.doOnFinish.push(err => { | ||
const moduleContent = ` | ||
var style = require(${JSON.stringify(`${tmpFolderForNode}/${fontFamily}.js`)}); | ||
if (style) { | ||
module.exports = style[${JSON.stringify(fontFamily)}] + " " + style[${JSON.stringify(`${fontFamily}-${fileName}`)}]; | ||
} else { | ||
module.exports = ${JSON.stringify(`${fontFamily} ${fontFamily}-${fileName}`)}; | ||
} | ||
`; | ||
cb(err, moduleContent); | ||
}); | ||
font.timeoutIdentifier = setTimeout(() => { | ||
writeFontFiles(fontFamily, font.iconMaker, err => { | ||
console.log(err); | ||
setTimeout(() => { | ||
font.doOnFinish.forEach(fn => fn(err)); | ||
delete fonts[fontFamily]; | ||
}, 1000); | ||
}); | ||
}, 1000); | ||
}; | ||
module.exports.raw = true; |
{ | ||
"name": "icon-maker-loader", | ||
"version": "0.1.7", | ||
"version": "0.1.8", | ||
"description": "", | ||
@@ -32,8 +32,6 @@ "main": "index.js", | ||
"dependencies": { | ||
"glob": "^7.0.6", | ||
"icon-maker": "^0.2.4", | ||
"loader-utils": "^0.2.16", | ||
"node-uuid": "^1.4.7", | ||
"path": "^0.12.7" | ||
"uuid": "^3.0.1" | ||
} | ||
} |
@@ -0,0 +0,0 @@ [![Build Status](https://travis-ci.org/unimonkiez/icon-maker-loader.svg?branch=master)](https://travis-ci.org/unimonkiez/icon-maker-loader) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
51223
3
10
213
1
+ Addeduuid@^3.0.1
+ Addeduuid@3.4.0(transitive)
- Removedglob@^7.0.6
- Removednode-uuid@^1.4.7
- Removedpath@^0.12.7
- Removedbalanced-match@1.0.2(transitive)
- Removedbrace-expansion@1.1.11(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removedfs.realpath@1.0.0(transitive)
- Removedglob@7.2.3(transitive)
- Removedinflight@1.0.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedminimatch@3.1.2(transitive)
- Removednode-uuid@1.4.8(transitive)
- Removedonce@1.4.0(transitive)
- Removedpath-is-absolute@1.0.1(transitive)
- Removedwrappy@1.0.2(transitive)