tinify-client
Version:
A CLI to compress your images not only intelligently but also to the EXTREME!
36 lines (35 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveExtFromRemote = exports.isRemoteFile = exports.getImageSize = exports.imageToBase64 = void 0;
var image_to_base64_1 = require("@legend80s/image-to-base64");
Object.defineProperty(exports, "imageToBase64", { enumerable: true, get: function () { return image_to_base64_1.imageToBase64; } });
Object.defineProperty(exports, "getImageSize", { enumerable: true, get: function () { return image_to_base64_1.getFileSize; } });
const request_1 = require("./request");
exports.isRemoteFile = (path) => /^https?:\/\//.test(path);
exports.resolveExtFromRemote = (url) => {
return new Promise(resolve => {
const req = request_1.getRequest(url)
.get(url, (resp) => {
resp.on('readable', () => {
var _a;
const { headers } = resp;
// console.log('resp.headers:', resp.headers['content-type']);
let ext = '';
if (headers['content-type']) {
ext = ((_a = headers['content-type'].split('/')) === null || _a === void 0 ? void 0 : _a.pop()) || 'png';
}
resolve(ext);
req.abort();
});
})
.on('error', (error) => {
console.error('HEAD', url, 'failed', error);
resolve('');
})
.on('timeout', (error) => {
console.error('HEAD', url, 'timeout:', error);
resolve('');
req.abort();
});
});
};