Skip to content

Commit bb252cb

Browse files
Merge pull request #35 from vanmoortel/hotfix/formdata-node
Fix FormData only available in browser environment
2 parents 6112f6f + 9d27425 commit bb252cb

File tree

3 files changed

+34
-9
lines changed

3 files changed

+34
-9
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"eciesjs": "^0.3.1",
3737
"elliptic": "^6.5.1",
3838
"ethers": "^4.0.45",
39+
"form-data": "^4.0.0",
3940
"neon-js": "^1.1.2",
4041
"ripemd160": "^2.0.2",
4142
"secp256k1": "^3.6.2",

src/api/create.js

+19-4
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ import * as cosmos from './cosmos'
66
import * as substrate from './substrate'
77
import * as solana from './solana'
88
import * as avalanche from './avalanche'
9+
import FormDataNode from 'form-data'
910
const shajs = require('sha.js')
1011

12+
const isBrowser = typeof FormData !== 'undefined'
13+
1114
export async function put_content(
1215
message, content, inline_requested, storage_engine, api_server) {
1316

@@ -66,8 +69,14 @@ export async function storage_push (
6669

6770
export async function ipfs_push_file (
6871
fileobject, {api_server = DEFAULT_SERVER} = {}) {
69-
let formData = new FormData()
70-
formData.append('file', fileobject)
72+
let formData = null
73+
if (isBrowser) {
74+
formData = new FormData()
75+
formData.append('file', fileobject)
76+
} else {
77+
formData = new FormDataNode()
78+
formData.append('file', fileobject, 'random.txt') // FileName is required but does not seem to have any effect
79+
}
7180

7281
let response = await axios.post( `${api_server}/api/v0/ipfs/add_file`,
7382
formData,
@@ -87,8 +96,14 @@ export async function ipfs_push_file (
8796

8897
export async function storage_push_file (
8998
fileobject, {api_server = DEFAULT_SERVER} = {}) {
90-
let formData = new FormData()
91-
formData.append('file', fileobject)
99+
let formData = null
100+
if (isBrowser) {
101+
formData = new FormData()
102+
formData.append('file', fileobject)
103+
} else {
104+
formData = new FormDataNode()
105+
formData.append('file', fileobject, 'random.txt') // FileName is required but does not seem to have any effect
106+
}
92107

93108
let response = await axios.post( `${api_server}/api/v0/storage/add_file`,
94109
formData,

yarn.lock

+14-5
Original file line numberDiff line numberDiff line change
@@ -2043,10 +2043,10 @@ available-typed-arrays@^1.0.2:
20432043
dependencies:
20442044
array-filter "^1.0.0"
20452045

2046-
avalanche@^3.1.0:
2047-
version "3.2.0"
2048-
resolved "https://registry.yarnpkg.com/avalanche/-/avalanche-3.2.0.tgz#d971b6628f595d9c5ec007f96180cb156536b86c"
2049-
integrity sha512-bfrkmwT1EXeo6/HogAlCHYc1huoNeX3p3hElNjm+CfTSLsCGYOM0O33mK9cSuo/zq9/kOVAXPSEj6jSKMtxxfQ==
2046+
2047+
version "3.1.0"
2048+
resolved "https://registry.yarnpkg.com/avalanche/-/avalanche-3.1.0.tgz#e13b5b5a069192be8d6ff8fe576f05afb6bebea9"
2049+
integrity sha512-WgGWBOfqCWAaBuTeiMbpmNk2Gn6EoI2oWreRSJQT5DfUcwh+YvVxpXr/IXP56l9mp2LH99G3myoz4yt0R5VxvA==
20502050
dependencies:
20512051
axios "0.19.2"
20522052
bech32 "1.1.4"
@@ -2936,7 +2936,7 @@ colorette@^1.2.1:
29362936
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
29372937
integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
29382938

2939-
combined-stream@^1.0.6, combined-stream@~1.0.6:
2939+
combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
29402940
version "1.0.8"
29412941
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
29422942
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
@@ -4468,6 +4468,15 @@ forever-agent@~0.6.1:
44684468
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
44694469
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
44704470

4471+
form-data@^4.0.0:
4472+
version "4.0.0"
4473+
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
4474+
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
4475+
dependencies:
4476+
asynckit "^0.4.0"
4477+
combined-stream "^1.0.8"
4478+
mime-types "^2.1.12"
4479+
44714480
form-data@~2.3.2:
44724481
version "2.3.3"
44734482
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"

0 commit comments

Comments
 (0)