UNPKG

tinify

Version:

Node.js client for the Tinify API. Tinify compresses your images intelligently. Read more at https://tinify.com.

44 lines (43 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const compat_1 = require("./compat"); const ResultMeta_1 = require("./ResultMeta"); const ignore = () => { }; const intify = (v) => parseInt(v, 10); class Result extends ResultMeta_1.default { /** @internal */ constructor(meta, data) { super(meta); this._data = data; } /** @internal */ meta() { /* Ignore errors on data, because they'll be propagated to meta too. */ return this._data.catch(ignore).then(() => this._meta); } /** @internal */ data() { /* Ignore errors on meta, because they'll be propagated to data too. */ return this._meta.catch(ignore).then(() => this._data); } toFile(path, callback) { const writer = compat_1.writeFile.bind(null, path); return (0, compat_1.nodeify)(this.data().then(writer), callback); } toBuffer(callback) { return (0, compat_1.nodeify)(this.data(), callback); } size(callback) { return (0, compat_1.nodeify)(this.meta().then(meta => intify(meta["content-length"])), callback); } mediaType(callback) { return (0, compat_1.nodeify)(this.meta().then(meta => meta["content-type"]), callback); } contentType(callback) { return this.mediaType(callback); } extension(callback) { return (0, compat_1.nodeify)(this.meta().then(meta => (meta["content-type"] || " ").split("/")[1]), callback); } } exports.default = Result;