25.0.0 API Changelog
Breaking changes
Removed endpoints
GET /drafts/preview/:id
Updated isolation library used for transition actions
We have updated the library that is used to run the transition actions in an isolated environment. These are the changes:
All actions are now synchronous
You no longer have to use the await
when calling certain actions (but it will still be working with it).
Replaced action getFileStream
It is no longer possible to obtain a file stream in the isolated environment. Instead, use a new action getFile(hash)
that returns an object with a file buffer.
const fileData = actions.getFile('fileHash');
const buffer = fileData.buffer;
Updated action callURL
Action callURL(resource, options, isolatedOptions)
now accepts three arguments and always returns an object. This action still internally uses a fetch library and the first two arguments are not changed.
But instead of returning a fetch "Response" object with functions like .text()
or .json()
, it will always return a plain object with properties:
{
body: <string> | <Object>
status: <number>,
statusText: <string>,
headers: Record<string, string>
}
By default, you will get the response text as a string in the body
property.
If you need to get the response as a JSON, you can specify json: true
as the third argument.
const response = actions.callURL('https://www.url.com/getJson', void 0, { json: true });
const jsonResponse = response.body;
To send the file, you can use the buffer returned from the getFile
action:
const fileData = actions.getFile('fileHash');
actions.callURL('https://www.url.com/sendBuffer', { method: 'POST', body: fileData.buffer });
To send the data as multipart/form-data
, you have to specify a custom array body and formdata: true
as the third argument (FormData
interface is no longer available):
const fileData = actions.getFile('fileHash');
actions.callURL('https://www.url.com/sendForm', {
method: 'POST',
body: [{
key: 'propertyName', //Text property
value: 'propertyValue'
}, {
key: 'file', //File property
value: fileData.buffer,
mimetype: fileData.mimetype,
filename: fileData.name
}]
}, { formdata: true });
To send the data as application/x-www-form-urlencoded
, you have to specify a custom object body and urlencoded: true
as the third argument (URLSearchParams
interface is no longer available):
actions.callURL('https://www.url.com/sendUrlEncoded', {
method: 'POST',
body: {
propertyA: 'AValue',
propertyB: 'BValue'
}
}, { urlencoded: true });