Make n8n work with older node versions (<10)

This commit is contained in:
Jan Oberhauser
2019-06-24 12:47:44 +02:00
parent b53d4c56ae
commit 034c70f6ab
5 changed files with 41 additions and 15 deletions

View File

@@ -5,7 +5,12 @@ import {
INodeType,
} from 'n8n-workflow';
import { promises as fs } from 'fs';
import {
readFile as fsReadFile,
} from 'fs';
import { promisify } from "util";
const fsReadFileAsync = promisify(fsReadFile);
export class ReadBinaryFile implements INodeType {
@@ -55,7 +60,7 @@ export class ReadBinaryFile implements INodeType {
let data;
try {
data = await fs.readFile(filePath) as Buffer;
data = await fsReadFileAsync(filePath) as Buffer;
} catch (error) {
if (error.code === 'ENOENT') {
throw new Error(`The file "${filePath}" could not be found.`);

View File

@@ -4,10 +4,17 @@ import {
INodeType,
INodeTypeDescription,
} from 'n8n-workflow';
import { promises as fs } from 'fs';
import * as glob from 'glob-promise';
import * as path from 'path';
import {
readFile as fsReadFile,
} from 'fs';
import { promisify } from "util";
const fsReadFileAsync = promisify(fsReadFile);
export class ReadBinaryFiles implements INodeType {
description: INodeTypeDescription = {
displayName: 'Read Binary Files',
@@ -56,7 +63,7 @@ export class ReadBinaryFiles implements INodeType {
let data: Buffer;
let fileName: string;
for (const filePath of files) {
data = await fs.readFile(filePath) as Buffer;
data = await fsReadFileAsync(filePath) as Buffer;
fileName = path.parse(filePath).base;
item = {

View File

@@ -8,7 +8,13 @@ import {
INodeExecutionData,
INodeType,
} from 'n8n-workflow';
import { promises as fs } from 'fs';
import {
writeFile as fsWriteFile,
} from 'fs';
import { promisify } from "util";
const fsWriteFileAsync = promisify(fsWriteFile);
export class WriteBinaryFile implements INodeType {
@@ -62,7 +68,7 @@ export class WriteBinaryFile implements INodeType {
}
// Write the file to disk
await fs.writeFile(fileName, Buffer.from(item.binary[dataPropertyName].data, BINARY_ENCODING), 'binary');
await fsWriteFileAsync(fileName, Buffer.from(item.binary[dataPropertyName].data, BINARY_ENCODING), 'binary');
if (item.json === undefined) {
item.json = {};