mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 06:39:48 +00:00
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
const STORE = {};
|
|
module.exports.templateTags = [
|
|
{
|
|
displayName: 'Prompt',
|
|
name: 'prompt',
|
|
description: 'prompt user for input',
|
|
args: [
|
|
{
|
|
displayName: 'Title',
|
|
type: 'string'
|
|
},
|
|
{
|
|
displayName: 'Label',
|
|
type: 'string'
|
|
},
|
|
{
|
|
displayName: 'Default Value',
|
|
type: 'string',
|
|
help:
|
|
'This value is used to pre-populate the prompt dialog, but is ALSO used ' +
|
|
'when the app renders preview values (like the one below). This is to prevent the ' +
|
|
'prompt from displaying too frequently during general app use.'
|
|
},
|
|
{
|
|
displayName: 'Storage Key',
|
|
type: 'string',
|
|
help:
|
|
'If this is set, the value will be stored in memory under this key until the app is ' +
|
|
"closed. To force this tag to re-prompt the user, simply change this key's value to " +
|
|
'something else.'
|
|
}
|
|
],
|
|
async run(context, title, label, defaultValue, storageKey) {
|
|
if (STORE[storageKey]) {
|
|
console.log(`[prompt] Used cached value under ${storageKey}`);
|
|
return STORE[storageKey];
|
|
}
|
|
|
|
const value = await context.app.prompt(title || 'Enter Value', {
|
|
label,
|
|
defaultValue
|
|
});
|
|
|
|
// Store if a key is set
|
|
if (storageKey) {
|
|
console.log(`[prompt] Stored value under ${storageKey}`);
|
|
STORE[storageKey] = value;
|
|
}
|
|
|
|
return value;
|
|
}
|
|
}
|
|
];
|