Пользовательские JS-параметры
Пользовательские параметры необходимы для «вынесения» определённых частей из кода и заполнения их в специальных полях без редактирования самого кода.
Например, если в коде используется API-ключ, вы можете сгенерировать отдельное поле в узле JavaScript для ввода этого параметра и обращаться к нему в коде. Таким образом, при изменении API-ключа нужно обновить только значение в отдельном поле, а не код.
Описание параметров
Для отображения полей ввода параметров в интерфейсе узла:
- Добавьте описания параметров в код.
- Нажмите кнопку Generate Parameters.
Вы можете использовать следующий шаблон для описания параметров:
/** @CustomParams
{
"parameter1": {
"type": "string", // Тип параметра, обязательно
"title": "Name_parameter1", // Название параметра, обязательно
"required": true, // Обязательность параметра, опционально (но рекомендуется заполнять)
"description": "Enter parameter1", // Описание параметра, опционально
"options": { // Опции параметра, опционально
"minLength": 10
}
},
"parameter2": {
"type": "int",
"title": "Name_parameter2",
"required": true,
"description": "Enter parameter2",
"options": {
"minLength": 10
}
}
}
*/Типы параметров и опции
Подключение (connection)
Параметр типа connection используется для ввода подключения путём выбора его во вспомогательном окне.
Шаблон:
/** @CustomParams
{
"parameter": {
"type": "connection",
"title": "connection_parameter",
"required": false,
"description": "Enter parameter"
}
}
*/Ниже приведён пример кода, который добавляет строку в Google Таблицу. Данные для строки, включая токен для подключения, вводятся как параметры.

/** @CustomParams
{
"access_token": {
"type": "connection",
"required": true,
"title": "Google Sheet Connection",
"description": "Google sheet authorization. Use \"Authorization\" field"
},
"spreadsheetId": {
"type": "string",
"required": true,
"title": "Spreadsheet ID"
},
"sheetName": {
"type": "string",
"required": true,
"title": "Sheet Name"
},
"values": {
"type": "string_array",
"title": "Values"
}
}
*/
import axios from 'axios';
export default async function run({execution_id, input, data, store}) {
const accessToken = JSON.parse(data.access_token).access_token;
const spreadsheetId = data.spreadsheetId;
const sheetName = data.sheetName;
const values = [data.values];
const appendOptions = {
range: sheetName,
valueInputOption: 'USER_ENTERED',
insertDataOption: 'INSERT_ROWS',
includeValuesInResponse: true,
};
try {
const response = await axios({
method: 'post',
url: `https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values/${encodeURIComponent(sheetName)}:append`,
params: appendOptions,
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json',
},
data: {
values: values,
},
});
return {
appendedData: response.data,
};
} catch (error) {
console.error('Error appending data to Google Sheet:', error);
return {
error: error.response?.data || error.message,
};
}
}Строка (string)
Параметр типа string используется для ввода текста. Вы можете использовать опцию minLength для определения минимального количества требуемых символов.
Шаблон:
/** @CustomParams
{
"parameter": {
"type": "string",
"title": "string_parameter",
"required": false,
"description": "Enter parameter",
"options": {
"minLength": 10
}
}
}
*/Ниже приведён пример кода, который подсчитывает количество символов в указанном параметре.
/** @CustomParams
{
"parameter2": {
"type": "string",
"title": "string_parameter",
"required": false,
"description": "Enter parameter",
"options": {
"minLength": 10
}
}
}
*/
export default async function run({ execution_id, input, data, store }) {
// Входной строковый параметр получается из объекта data
const String = data.parameter2;
// Проверяем, что parameter2 является строкой
if (typeof String !== 'string') {
throw new Error('Parameter "String" must be a string.');
}
// Подсчитываем количество символов в строке
const characterCount = String.length;
// Возвращаем количество символов
return {
characterCount
};
}
Целое число (int)
Параметр типа int используется для ввода целых чисел. Вы можете использовать следующие опции для этого параметра:
- max: максимальное число
- min: минимальное число
Шаблон:
/** @CustomParams
{
"parameter": {
"type": "int",
"title": "int_parameter",
"required": true,
"description": "Enter parameter",
"options": {
"max": 100,
"min": 50
}
}
}
*/Ниже приведён пример кода, который генерирует случайное число, не превышающее значение, указанное в параметре.
/** @CustomParams
{
"parameter3": {
"type": "int",
"title": "int_parameter",
"required": true,
"description": "Enter parameter",
"options": {
"max": 100,
"min": 50
}
}
}
*/
import { randomInt } from 'crypto';
export default async function run({ execution_id, input, data, store }) {
// Входной параметр MaxN получается из объекта data.
const MaxN = data.parameter3;
// Проверяем, что MaxN является числом.
if (typeof MaxN !== 'number') {
throw new Error('MaxN should be a number.');
}
// Генерируем случайное число от 0 до MaxN (не включая MaxN).
const randomNumber = randomInt(MaxN);
// Возвращаем сгенерированное случайное число.
return {
randomNumber
};
}
Массив строк (string_array)
Параметр типа string_array используется для ввода списка строк. Вы можете использовать опцию maxCount для определения максимального количества строк.
Шаблон:
/** @CustomParams
{
"parameter": {
"type": "string_array",
"title": "string_array_parameter",
"required": false,
"description": "Enter parameter",
"options": {
"maxCount": 2
}
}
}
*/Ниже приведён пример, который выводит массив, указанный в параметре, и количество элементов в нём.
/** @CustomParams
{
"parameter4": {
"type": "string_array",
"title": "string_array_parameter",
"required": false,
"description": "Enter parameter",
"options": {
"maxCount": 5
}
}
}
*/
export default async function run({ execution_id, input, data, store }) {
// Входной параметр-массив получается из объекта data.
const array = data.parameter4;
// Проверяем, что parameter4 является массивом.
if (!Array.isArray(array)) {
throw new Error('Parameter "parameter4" must be an array.');
}
// Подсчитываем количество строк в массиве.
const stringCount = array.length;
// Возвращаем результат подсчёта.
return {
array,
stringCount
};
}
Ключ-значение (string_to_string)
Параметр типа string_to_string используется для ввода списка строк в формате ключ-значение.
Шаблон:
/** @CustomParams
{
"parameter": {
"type": "string_to_string",
"title": "string_to_string_parameter",
"required": false,
"description": "Enter parameter",
"options": {
"maxCount": 2
}
}
}
*/Ниже приведён пример, который определяет наибольшее значение и его ключ из списка значений в параметре.
/** @CustomParams
{
"parameter5": {
"type": "string_to_string",
"title": "string_to_string_parameter",
"required": false,
"description": "Enter parameter",
"options": {
"maxCount": 2
}
}
}
*/
export default async function run({execution_id, input, data}) {
// Проверяем, что parameter5 существует и является объектом.
if (typeof data.parameter5 !== 'object' || data.parameter5 === null) {
throw new Error('parameter5 is missing or not an object');
}
// Инициализируем переменные для хранения максимального значения и соответствующего ключа.
let maxKey = null;
let maxValue = -Infinity;
// Перебираем все ключи и значения в объекте parameter5.
for (const [key, value] of Object.entries(data.parameter5)) {
// Преобразуем значение в число.
const numericValue = parseFloat(value);
// Проверяем, является ли текущее значение наибольшим.
if (numericValue > maxValue) {
maxValue = numericValue;
maxKey = key;
}
}
// Возвращаем максимальное значение и его ключ.
return {
maxKey,
maxValue
};
}
Выпадающий список (select)
Параметр типа select используется для выбора значения из предопределённого списка возможных значений. Вы можете использовать следующие опции для этого параметра:
- options: массив вида
[{ "key": "SelectOptionKey1", "value": "SelectOptionValue1" }]. (value — значение, которое будет отображаться в выпадающем списке, key — ключ, который будет использоваться в коде). - multiple: позволяет выбрать несколько значений.
Шаблон:
/** @CustomParams
{
"parameter": {
"type": "select",
"title": "select_parameter",
"required": false,
"description": "Enter parameter",
"options": {
"options": [{ "key": "SelectOptionKey1", "value": "SelectOptionValue1" }, { "key": "SelectOptionKey2", "value": "SelectOptionValue2" }],
"multiple": false
}
}
}
*/Ниже приведён пример, который выводит выбранное значение параметра.
/** @CustomParams
{
"parameter6": {
"type": "select",
"title": "select_parameter",
"required": false,
"description": "Enter parameter",
"options": {
"options": [{ "key": "1", "value": "100" }, { "key": "2", "value": "200" }],
"multiple": false
}
}
}
*/
export default async function run({ execution_id, input, data, store }) {
// Создаём соответствие ключей и значений для удобного поиска.
const optionsMapping = {
"1": "100",
"2": "200"
};
// Получаем ключ, выбранный пользователем.
const selectedKey = data.parameter6;
// Находим соответствующее значение.
const selectedValue = selectedKey ? optionsMapping[selectedKey] : undefined;
if (selectedValue) {
console.log('Selected value:', selectedValue);
return { selectedValue };
} else {
console.log('Selected value not found.');
return {};
}
}
Булево значение (bool)
Параметр типа bool используется для ввода значения true/false.
Шаблон:
/** @CustomParams
{
"parameter": {
"type": "bool",
"title": "bool_parameter",
"required": false,
"description": "Enter parameter"
}
}
*/Ниже приведён пример кода, который выводит одно значение или другое в зависимости от того, установлен ли параметр в true или false.
/** @CustomParams
{
"parameter7": {
"type": "bool",
"title": "bool_parameter",
"required": false,
"description": "Enter parameter"
}
}
*/
export default async function run({execution_id, input, data, store}) {
const TrueFalse = data.parameter7
// Проверяем значение и возвращаем "Yes" или "No" в зависимости от условия.
const result = TrueFalse === true ? "Yes" : "No";
return {
result
};
}