svg-to-ico
Advanced tools
Comparing version
{ | ||
"name": "svg-to-ico", | ||
"version": "1.0.7", | ||
"version": "1.0.8", | ||
"description": "Utility that translates an SVG Image to a .ico format", | ||
@@ -10,3 +10,4 @@ "main": "svg-to-ico.js", | ||
"scripts": { | ||
"test": "node index.js koala.svg" | ||
"test": "node index.js koala.svg", | ||
"test2": "node index.js logview.svg logview.ico" | ||
}, | ||
@@ -27,6 +28,5 @@ "repository": { | ||
"dependencies": { | ||
"png-to-ico": "^2.1.2", | ||
"svgexport": "^0.4.2", | ||
"uuid": "^8.3.2" | ||
}, | ||
"ico-packer": "^1.0.0", | ||
"sharp": "^0.29.0" | ||
}, | ||
"devDependencies": { | ||
@@ -33,0 +33,0 @@ "eslint": "^7.27.0" |
@@ -1,6 +0,4 @@ | ||
const fs = require("fs"); | ||
const path = require("path"); | ||
const svgexport = require("svgexport"); | ||
const png_to_ico = require("png-to-ico"); | ||
const { v4: uuidv4 } = require("uuid"); | ||
const fsp = require("fs/promises"); | ||
const ico_packer = require("ico-packer"); | ||
const sharp = require("sharp"); | ||
@@ -20,33 +18,20 @@ /** | ||
{ | ||
return new Promise((accept, reject) => { | ||
const scratch_dir = path.join(process.cwd(), uuidv4()); | ||
fs.mkdirSync(scratch_dir); | ||
const do_close = (error) => { | ||
fs.rm(scratch_dir, { recursive: true }, () => { | ||
if(error) | ||
reject(error); | ||
else | ||
accept(output_name); | ||
return new Promise(function(accept, reject) { | ||
const output_promises = sizes.map((size) => { | ||
return new Promise((image_accept, image_reject) => { | ||
sharp(input_name). | ||
resize(size, size, {fit:"contain",background:{r:0,g:0,b:0,alpha:0}}). | ||
png(). | ||
toBuffer(). | ||
then((buffer) => { image_accept(buffer); }). | ||
catch((error) => { image_reject(error); }); | ||
}); | ||
}; | ||
const png_names = sizes.map((size) => { return path.join(scratch_dir, `ico${size}.png`); }); | ||
const png_files = png_names.map((png_name, index) => { | ||
return { | ||
"input": input_name, | ||
"output": `${png_name} png ${sizes[index]}:` | ||
}; | ||
}); | ||
svgexport.render(png_files, () => { | ||
png_to_ico(png_names).then((ico_buff) => { | ||
fs.writeFile(output_name, ico_buff, (file_error) => { | ||
if(file_error) | ||
do_close(file_error); | ||
else | ||
do_close(); | ||
}); | ||
Promise.all(output_promises).then((buffers) => { | ||
const output_buffer = ico_packer(buffers); | ||
fsp.writeFile(output_name, output_buffer).then(() => { | ||
accept(output_name); | ||
}).catch((error) => { | ||
do_close(error); | ||
}); | ||
}).catch((error) => { | ||
do_close(error); | ||
reject(error); | ||
}) | ||
}); | ||
@@ -53,0 +38,0 @@ }); |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
130853
342.32%2
-33.33%9
28.57%84
-15.15%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed