mirror of
https://github.com/HeyPuter/puter.git
synced 2025-02-02 22:43:45 +08:00
dev: add ico support
This commit is contained in:
parent
8a3d74d30c
commit
90967ab109
61
package-lock.json
generated
61
package-lock.json
generated
@ -18,6 +18,8 @@
|
||||
"json-colorizer": "^3.0.1",
|
||||
"open": "^10.1.0",
|
||||
"sharp": "^0.33.5",
|
||||
"sharp-bmp": "^0.1.5",
|
||||
"sharp-ico": "^0.1.5",
|
||||
"simple-git": "^3.25.0",
|
||||
"string-template": "^1.0.0",
|
||||
"uuid": "^9.0.1"
|
||||
@ -2202,6 +2204,11 @@
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@canvas/image-data": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@canvas/image-data/-/image-data-1.0.0.tgz",
|
||||
"integrity": "sha512-BxOqI5LgsIQP1odU5KMwV9yoijleOPzHL18/YvNqF9KFSGF2K/DLlYAbDQsWqd/1nbaFuSkYD/191dpMtNh4vw=="
|
||||
},
|
||||
"node_modules/@colors/colors": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
|
||||
@ -9439,6 +9446,31 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/decode-bmp": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/decode-bmp/-/decode-bmp-0.2.1.tgz",
|
||||
"integrity": "sha512-NiOaGe+GN0KJqi2STf24hfMkFitDUaIoUU3eKvP/wAbLe8o6FuW5n/x7MHPR0HKvBokp6MQY/j7w8lewEeVCIA==",
|
||||
"dependencies": {
|
||||
"@canvas/image-data": "^1.0.0",
|
||||
"to-data-view": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/decode-ico": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/decode-ico/-/decode-ico-0.4.1.tgz",
|
||||
"integrity": "sha512-69NZfbKIzux1vBOd31al3XnMnH+2mqDhEgLdpygErm4d60N+UwA5Sq5WFjmEDQzumgB9fElojGwWG0vybVfFmA==",
|
||||
"dependencies": {
|
||||
"@canvas/image-data": "^1.0.0",
|
||||
"decode-bmp": "^0.2.0",
|
||||
"to-data-view": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.6"
|
||||
}
|
||||
},
|
||||
"node_modules/decompress-response": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
||||
@ -11519,6 +11551,11 @@
|
||||
"ms": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ico-endec": {
|
||||
"version": "0.1.6",
|
||||
"resolved": "https://registry.npmjs.org/ico-endec/-/ico-endec-0.1.6.tgz",
|
||||
"integrity": "sha512-ZdLU38ZoED3g1j3iEyzcQj+wAkY2xfWNkymszfJPoxucIUhK7NayQ+/C4Kv0nDFMIsbtbEHldv3V8PU494/ueQ=="
|
||||
},
|
||||
"node_modules/iconv-lite": {
|
||||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
@ -15513,6 +15550,25 @@
|
||||
"@img/sharp-win32-x64": "0.33.5"
|
||||
}
|
||||
},
|
||||
"node_modules/sharp-bmp": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/sharp-bmp/-/sharp-bmp-0.1.5.tgz",
|
||||
"integrity": "sha512-IpWAy+AeTlWNHiBU8HH4atcKbztgKOXTuT4W8aFaeASPCeJwCVpoUymWMfEmwfvWSCOV1s7VmGTlKhcPLkt+Lw==",
|
||||
"dependencies": {
|
||||
"bmp-js": "*",
|
||||
"sharp": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/sharp-ico": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/sharp-ico/-/sharp-ico-0.1.5.tgz",
|
||||
"integrity": "sha512-a3jODQl82NPp1d5OYb0wY+oFaPk7AvyxipIowCHk7pBsZCWgbe0yAkU2OOXdoH0ENyANhyOQbs9xkAiRHcF02Q==",
|
||||
"dependencies": {
|
||||
"decode-ico": "*",
|
||||
"ico-endec": "*",
|
||||
"sharp": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/sharp/node_modules/color": {
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
|
||||
@ -16331,6 +16387,11 @@
|
||||
"integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/to-data-view": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/to-data-view/-/to-data-view-1.1.0.tgz",
|
||||
"integrity": "sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ=="
|
||||
},
|
||||
"node_modules/to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
|
@ -51,6 +51,8 @@
|
||||
"json-colorizer": "^3.0.1",
|
||||
"open": "^10.1.0",
|
||||
"sharp": "^0.33.5",
|
||||
"sharp-bmp": "^0.1.5",
|
||||
"sharp-ico": "^0.1.5",
|
||||
"simple-git": "^3.25.0",
|
||||
"string-template": "^1.0.0",
|
||||
"uuid": "^9.0.1"
|
||||
|
@ -25,6 +25,7 @@ class AppIconService extends BaseService {
|
||||
static MODULES = {
|
||||
sharp: require('sharp'),
|
||||
bmp: require('sharp-bmp'),
|
||||
ico: require('sharp-ico'),
|
||||
}
|
||||
|
||||
/**
|
||||
@ -89,6 +90,12 @@ class AppIconService extends BaseService {
|
||||
return this.modules.bmp.sharpFromBmp(input);
|
||||
}
|
||||
|
||||
const icotypes = ['image/x-icon', 'image/vnd.microsoft.icon'];
|
||||
if ( icotypes.includes(type) ) {
|
||||
const sharps = this.modules.ico.sharpsFromIco(input);
|
||||
return sharps[0];
|
||||
}
|
||||
|
||||
return this.modules.sharp(input);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user