extension

Version:
sha256:9a54691
component
importscommon,extension-http,platform,process

common interface

env-vars:list<tuple<string, string>>
mime-type:enum {
json
text
octet-stream
image
audio
video
}

process interface

Imported Types
workoss:extension/common.{env-vars}
command:record {
program: string
current-dir: option<string>
args: option<list<string>>
envs: option<env-vars>
}
output:record {
status: option<s32>
stdout: list<u8>
stderr: list<u8>
}
run-command(cmd:command)result<output, string>

extension-http interface

http-method:enum {
get
head
post
put
delete
options
patch
}
redirect-policy:variant {
no-follow
follow-limit(u32)
follow-all
}
http-request:record {
method: http-method
url: string
headers: list<tuple<string, string>>
body: option<list<u8>>
redirect-policy: redirect-policy
}
http-response:record {
status-code: u16
headers: list<tuple<string, string>>
body: list<u8>
}
fetch(req:http-request)result<http-response, string>

platform interface

os:enum {
macos
linux
windows
}
arch:enum {
aarch64
x8632
x8664
}
current-platform()result<tuple<os, arch>, string>
env-vars:option <tuple<string, string>>
:enum {
json
text
octet-stream
image
audio
video
}
command:record {
program: string
current-dir: option<string>
args: option<list<string>>
envs: option<env-vars>
}
download-file-type:enum {
gzip
tar-gzip
zip
uncompressed
}
plugin-input:record {
body: option<list<u8>>
mime-type: mime-type
envs: option<env-vars>
}
plugin-output:record {
body: option<list<u8>>
mime-type: mime-type
}
get-settings(key:option<string>)result<string, string>
init-plugin()
run-plugin(input:plugin-input)result<plugin-output, string>