UNPKG

805 BJavaScriptView Raw
1'use strict';
2
3
4var probeStream = require('./stream');
5var probeHttp = require('./http');
6
7
8// Cache for promise implementation
9var P;
10
11
12/* eslint-disable consistent-return */
13
14module.exports = function get_image_size(src, callback) {
15 var prober;
16
17 if (typeof src.on === 'function' && typeof src.emit === 'function') {
18 // looks like an EventEmitter, treating it as a stream
19 prober = probeStream;
20 } else {
21 prober = probeHttp;
22 }
23
24 if (!callback) {
25 P = P || require('any-promise');
26
27 return new P(function (resolve, reject) {
28 prober(src, function (err, data) {
29 if (err) reject(err);
30 else resolve(data);
31 });
32 });
33 }
34
35 prober(src, callback);
36};
37
38module.exports.parsers = require('./lib/parsers_stream');
39module.exports.sync = require('./sync');