Тема
PluginProjectDefinition
Элементы расширения проекта
Свойства
| Наименование | Тип | Обязательное |
|---|---|---|
| macros | Record<string, Function> | Нет |
| tasks | Record<string, Constructor> | Нет |
| actions | Record<string, Function> | Нет |
| triggers | Record<string, Constructor> | Нет |
| validationSchema | ProjectSchemaExtension | Нет |
Описание свойств
macros
Тип: Record<string, (...params: string[]) => string>
Обязательное: Нет
Макросы, применяемые к проекту. Коллекция пользовательских макросов, которые могут быть использованы в конфигурации проекта для динамического вычисления значений.
Пример:
typescript
{
macros: {
someMacro: () => "some macro value"
}
}json
{
"value": "$someMacro()"
}tasks
Тип: Record<string, RuniumTaskConstructor>
Обязательное: Нет
Задачи, зарегистрированные в проекте. Ключ — тип задачи, значение — конструктор класса задачи.
Пример:
typescript
{
tasks: {
"some-task1": SomeTaskClass,
"some-task2": SomeOtherTaskClass
}
}actions
Тип: Record<string, (options: unknown) => void>
Обязательное: Нет
Действия, зарегистрированные в проекте. Ключ — тип действия, значение — функция-обработчик.
Пример:
typescript
{
actions: {
"some-action1": (options) => {
console.log('Action 1:', options);
},
"some-action2": (options) => {
console.log('Action 2:', options);
}
}
}triggers
Тип: Record<string, RuniumTriggerConstructor<RuniumTriggerParams>>
Обязательное: Нет
Триггеры, зарегистрированные в проекте. Ключ — тип триггера, значение — конструктор класса триггера.
Пример:
typescript
{
triggers: {
"file-watcher": FileWatcherTrigger,
"http-webhook": HttpWebhookTrigger
}
}validationSchema
Обязательное: Нет
Расширение схемы валидации для проекта. Позволяет плагинам добавлять:
- пользовательские поля в корневую конфигурацию проекта
- новые типы задач с их параметрами
- новые типы действий с их параметрами
- новые типы триггеров с их параметрами
- дополнительные определения схемы (definitions)
Пример:
typescript
{
validationSchema: {
project: {
properties: {
customField: { type: "string" }
},
required: ["customField"]
},
tasks: {
"SomePlugin_SomeTask": {
type: "some-task",
options: {
type: "object",
properties: {
url: { type: "string" }
},
required: ["url"]
}
}
}
}
}
}