[javascript] Fixed fs files support for Electron (#5765)

This commit is contained in:
Vlad Frolov 2017-06-07 12:01:47 +03:00 committed by wing328
parent 6239ec0807
commit 6a986975e4
6 changed files with 54 additions and 33 deletions

View File

@ -160,9 +160,15 @@ export default class ApiClient {
*/ */
{{/emitJSDoc}} {{/emitJSDoc}}
isFileParam(param) { isFileParam(param) {
// fs.ReadStream in Node.js (but not in runtime like browserify) // fs.ReadStream in Node.js and Electron (but not in runtime like browserify)
if (typeof window === 'undefined' && typeof require === 'function' && require('fs') && param instanceof require('fs').ReadStream) { if (typeof require === 'function') {
return true; let fs;
try {
fs = require('fs');
} catch (err) {}
if (fs && fs.ReadStream && param instanceof fs.ReadStream) {
return true;
}
} }
// Buffer in Node.js // Buffer in Node.js

View File

@ -168,12 +168,15 @@
* @returns {Boolean} <code>true</code> if <code>param</code> represents a file. * @returns {Boolean} <code>true</code> if <code>param</code> represents a file.
*/ */
{{/emitJSDoc}} exports.prototype.isFileParam = function(param) { {{/emitJSDoc}} exports.prototype.isFileParam = function(param) {
// fs.ReadStream in Node.js (but not in runtime like browserify) // fs.ReadStream in Node.js and Electron (but not in runtime like browserify)
if (typeof window === 'undefined' && if (typeof require === 'function') {
typeof require === 'function' && var fs;
require('fs') && try {
param instanceof require('fs').ReadStream) { fs = require('fs');
return true; } catch (err) {}
if (fs && fs.ReadStream && param instanceof fs.ReadStream) {
return true;
}
} }
// Buffer in Node.js // Buffer in Node.js
if (typeof Buffer === 'function' && param instanceof Buffer) { if (typeof Buffer === 'function' && param instanceof Buffer) {

View File

@ -174,12 +174,15 @@
* @returns {Boolean} <code>true</code> if <code>param</code> represents a file. * @returns {Boolean} <code>true</code> if <code>param</code> represents a file.
*/ */
exports.prototype.isFileParam = function(param) { exports.prototype.isFileParam = function(param) {
// fs.ReadStream in Node.js (but not in runtime like browserify) // fs.ReadStream in Node.js and Electron (but not in runtime like browserify)
if (typeof window === 'undefined' && if (typeof require === 'function') {
typeof require === 'function' && var fs;
require('fs') && try {
param instanceof require('fs').ReadStream) { fs = require('fs');
return true; } catch (err) {}
if (fs && fs.ReadStream && param instanceof fs.ReadStream) {
return true;
}
} }
// Buffer in Node.js // Buffer in Node.js
if (typeof Buffer === 'function' && param instanceof Buffer) { if (typeof Buffer === 'function' && param instanceof Buffer) {

View File

@ -174,12 +174,15 @@
* @returns {Boolean} <code>true</code> if <code>param</code> represents a file. * @returns {Boolean} <code>true</code> if <code>param</code> represents a file.
*/ */
exports.prototype.isFileParam = function(param) { exports.prototype.isFileParam = function(param) {
// fs.ReadStream in Node.js (but not in runtime like browserify) // fs.ReadStream in Node.js and Electron (but not in runtime like browserify)
if (typeof window === 'undefined' && if (typeof require === 'function') {
typeof require === 'function' && var fs;
require('fs') && try {
param instanceof require('fs').ReadStream) { fs = require('fs');
return true; } catch (err) {}
if (fs && fs.ReadStream && param instanceof fs.ReadStream) {
return true;
}
} }
// Buffer in Node.js // Buffer in Node.js
if (typeof Buffer === 'function' && param instanceof Buffer) { if (typeof Buffer === 'function' && param instanceof Buffer) {

View File

@ -174,12 +174,15 @@
* @returns {Boolean} <code>true</code> if <code>param</code> represents a file. * @returns {Boolean} <code>true</code> if <code>param</code> represents a file.
*/ */
exports.prototype.isFileParam = function(param) { exports.prototype.isFileParam = function(param) {
// fs.ReadStream in Node.js (but not in runtime like browserify) // fs.ReadStream in Node.js and Electron (but not in runtime like browserify)
if (typeof window === 'undefined' && if (typeof require === 'function') {
typeof require === 'function' && var fs;
require('fs') && try {
param instanceof require('fs').ReadStream) { fs = require('fs');
return true; } catch (err) {}
if (fs && fs.ReadStream && param instanceof fs.ReadStream) {
return true;
}
} }
// Buffer in Node.js // Buffer in Node.js
if (typeof Buffer === 'function' && param instanceof Buffer) { if (typeof Buffer === 'function' && param instanceof Buffer) {

View File

@ -174,12 +174,15 @@
* @returns {Boolean} <code>true</code> if <code>param</code> represents a file. * @returns {Boolean} <code>true</code> if <code>param</code> represents a file.
*/ */
exports.prototype.isFileParam = function(param) { exports.prototype.isFileParam = function(param) {
// fs.ReadStream in Node.js (but not in runtime like browserify) // fs.ReadStream in Node.js and Electron (but not in runtime like browserify)
if (typeof window === 'undefined' && if (typeof require === 'function') {
typeof require === 'function' && var fs;
require('fs') && try {
param instanceof require('fs').ReadStream) { fs = require('fs');
return true; } catch (err) {}
if (fs && fs.ReadStream && param instanceof fs.ReadStream) {
return true;
}
} }
// Buffer in Node.js // Buffer in Node.js
if (typeof Buffer === 'function' && param instanceof Buffer) { if (typeof Buffer === 'function' && param instanceof Buffer) {