summaryrefslogtreecommitdiffstats
path: root/src/internal-server/app/ImageHelper.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal-server/app/ImageHelper.js')
-rw-r--r--src/internal-server/app/ImageHelper.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/internal-server/app/ImageHelper.js b/src/internal-server/app/ImageHelper.js
new file mode 100644
index 000000000..b399d08c4
--- /dev/null
+++ b/src/internal-server/app/ImageHelper.js
@@ -0,0 +1,24 @@
1const Env = use('Env');
2
3const { v4: uuid } = require('uuid');
4
5const path = require('path');
6const fs = require('fs-extra');
7
8module.exports = async (icon) => {
9 const iconsPath = path.join(Env.get('USER_PATH'), 'icons');
10 await fs.ensureDir(iconsPath);
11
12 // Generate new icon ID
13 let iconId;
14 do {
15 iconId = uuid() + uuid();
16 } while (fs.existsSync(path.join(iconsPath, iconId)));
17 iconId = `${iconId}.${icon.extname}`;
18
19 await icon.move(iconsPath, {
20 name: iconId,
21 overwrite: true,
22 });
23 return !icon.moved() ? '-1' : iconId;
24};