Hello Community!,
I am developing one JIRA cloud plugin using Forge, where I am fetching data from 3rd party API and using those data I am creating JIRA tickets. I also need to attach a csv file to each issue created but while calling issue attachment API I am getting this error :
INFO 11:40:55.703Z Error TypeError: function FileHandle(vol, fd) {
this.vol = vol;
this.fd = fd;
} could not be cloned.
Code snippet that I am using :
import { render, Text, Button } from '@forge/ui';
import api, { route } from '@forge/api';
import FormData from "form-data";
const fs = require("fs");
const App = () => {
const handleSubmit = async () => {
fs.writeFileSync("sample.txt", "Hello World!");
const fileStream = fs.createReadStream("sample.txt");
const form = new FormData();
form.append('file', fileStream);
const response = await api.asApp().requestJira(route`/rest/api/3/issue/TEST-1/attachments`, {
method: 'POST',
body: form,
headers: {
'Accept': 'application/json',
'X-Atlassian-Token': 'no-check'
}
});
}
return (
<Fragment>
<Text>Test Attachment</Text>
<Button text='Submit' onClick={handleSubmit} />
</Fragment>
);
};
export const run = render(
<GlobalPage>
<App />
</GlobalPage>
);
while searching for the resolution I found one community question where someone asked to directly create object of File class and pass it to formdata instead of creating readStream. So, I tried replacing the formdata creation with following code :
const form = new FormData();
const file = new File(["Hello World!"], "sample.txt")
form.append("file", file)
while using this code I am getting Error :
ERROR 12:34:22.169Z File is not defined
ReferenceError: File is not defined
at Object.handleSubmit [as onSubmit] (index.js:36927:18)
at index.js:32965:60
at asyncMap (index.js:32947:30)
at async index.js:32968:29
at async asyncMap (index.js:32947:24)
at async index.js:33030:23
at async asyncMap (index.js:32947:24)
at async index.js:32968:29
at async index.js:32453:17
any solution or workaround would be great help!