JetBrains pre-request scripts
Section titled “JetBrains pre-request scripts”Pre-request scripts execute before the request is sent, allowing dynamic variable setup:
JetBrains
< {%
const timestamp = Date.now();
request.variables.set("timestamp", timestamp);
%}
POST https://api.example.com/signed
X-Timestamp: {{timestamp}}
httpyac
{{
const crypto = require('crypto');
exports.signature = crypto.createHmac('sha256', 'secret')
.update(request.method + request.url)
.digest('base64');
}}
GET https://api.example.com/resource
X-Signature: {{signature}}
Request object API
Section titled “Request object API”request.variables.set/get()— read/write request-scoped variablesrequest.environment.get()— read environment variablesrequest.body.getRaw()— raw request bodyrequest.body.tryGetSubstituted()— body with variables resolvedrequest.url.getRaw()— raw URLrequest.headers.all— all headersrequest.method— HTTP method
Crypto API
Section titled “Crypto API”JetBrains exposes a Crypto API: crypto.hmac.sha256(), crypto.sha256(), crypto.sha512(), etc. with chained methods for text/hex/base64 input and output.
httpyac pre-request scripts
Section titled “httpyac pre-request scripts”In httpyac, double-brace blocks positioned before the request line serve as pre-request scripts. Values exported via exports.variableName become available as variables. The request object is accessible for inspection.
VS Code REST Client and Visual Studio 2022
Section titled “VS Code REST Client and Visual Studio 2022”Neither supports pre-request scripts.
kulala.nvim
Section titled “kulala.nvim”Supports JetBrains-compatible pre-request scripts in both JavaScript and Lua.