Skip to content

PluginProjectHooksDefinition

Хуки жизненного цикла проекта.

Свойства

НаименованиеТипОбязательное
beforeConfigReadFunctionНет
afterConfigReadFunctionНет
afterConfigMacrosApplyFunctionНет
afterConfigParseFunctionНет
beforeStartFunctionНет

Описание свойств

beforeConfigRead

Тип: (path: string) => Promise<void>

Обязательное: Нет

Вызывается перед чтением файла конфигурации проекта.

Параметры:

  • path — путь к файлу конфигурации

Пример:

typescript
{
  beforeConfigRead: async path => {
    console.log("Reading config from:", path)
  }
}

afterConfigRead

Тип: (content: string) => Promise<string>

Обязательное: Нет

Вызывается после чтения содержимого файла конфигурации. Может модифицировать содержимое.

Параметры:

  • content — исходное содержимое файла конфигурации

Возвращает: модифицированное содержимое файла конфигурации

Пример:

typescript
{
  afterConfigRead: async content => {
    console.log("Config content read")
    // Модификация содержимого
    return content.replace(/old/g, "new")
  }
}

afterConfigMacrosApply

Тип: (content: string) => Promise<string>

Обязательное: Нет

Вызывается после применения макросов к конфигурации. Может модифицировать содержимое.

Параметры:

  • content — содержимое конфигурации с примененными макросами

Возвращает: модифицированное содержимое конфигурации

Пример:

typescript
{
  afterConfigMacrosApply: async content => {
    console.log("Macros applied to config")
    // Дополнительная обработка
    return content
  }
}

afterConfigParse

Тип: <T extends ProjectConfig>(config: T) => Promise<T>

Обязательное: Нет

Вызывается после парсинга конфигурации. Может модифицировать объект конфигурации.

Параметры:

  • config — распарсенный объект конфигурации

Возвращает: модифицированный объект конфигурации

Пример:

typescript
{
  afterConfigParse: async config => {
    console.log("Config parsed")
    // Модификация конфигурации
    config.customField = "value"
    return config
  }
}

beforeStart

Тип: (params: { project: Project; path: string; name: string | null }) => Promise<void>

Обязательное: Нет

Вызывается перед запуском проекта.

Параметры:

  • project — экземпляр проекта
  • path — путь к проекту
  • name — имя проекта (может быть null)

Пример:

typescript
{
  beforeStart: async ({ project, path, name }) => {
    console.log("Starting project:", name || "unnamed")
    console.log("Project path:", path)
    // Подготовка перед запуском
  }
}