altair-graphql-core
Version:
Several of the core logic for altair graphql client
86 lines • 2.8 kB
JavaScript
import { RequestType, } from './types';
export const ModuleImports = {
atob: {
async exec() {
return (await import('abab')).atob;
},
},
btoa: {
async exec() {
return (await import('abab')).btoa;
},
},
'crypto-js': {
async exec() {
return (await import('crypto-js')).default;
},
},
};
export const buildContextResponse = (data) => {
if (data.response) {
return {
body: data.response.body,
requestType: data.requestType ?? RequestType.QUERY,
responseTime: data.response.responseTime,
statusCode: data.response.status,
headers: data.response.headers,
};
}
};
export const importModuleHelper = async (moduleName) => {
const mod = ModuleImports[moduleName];
if (!mod) {
throw new Error(`No request script module found matching "${moduleName}"`);
}
return mod.exec();
};
export const getGlobalContext = (data, handlers) => {
return {
data,
helpers: {
getEnvironment: (key) => {
return data.environment[key];
},
/**
* @param key environment key
* @param val value to set
* @param activeEnvironment if the value should be replaced in the currently active environment after execution
*/
setEnvironment: (key, val, activeEnvironment = false) => {
data.environment[key] = val;
if (activeEnvironment) {
data.__toSetActiveEnvironment = data.__toSetActiveEnvironment ?? {};
data.__toSetActiveEnvironment[key] = val;
}
},
getCookie: (key) => {
return data.__cookieJar?.[key] ?? '';
},
setCookie: (key, value, options) => {
handlers.setCookie(key, value, options);
},
request: async (arg1, arg2, arg3) => {
return handlers.request(arg1, arg2, arg3);
},
},
storage: {
get: (key) => {
return handlers.getStorageItem(key);
},
set: (key, value) => {
return handlers.setStorageItem(key, value);
},
},
importModule: (moduleName) => importModuleHelper(moduleName),
response: buildContextResponse(data),
log: (d) => {
data.requestScriptLogs = data.requestScriptLogs ?? [];
data.requestScriptLogs.push({
time: Date.now(),
text: JSON.stringify(d, null, 2),
source: 'Request script',
});
},
};
};
//# sourceMappingURL=context.js.map