Разделы

TypeScript SDK (code-first)

SDK @inquir/compute превращает функции в код, который можно ревьюить, типизировать и версионировать: обработчик, его лимиты и схемы входа/выхода живут в одном файле репозитория, а CLI деплоит ровно то, что объявлено в коде.

Используйте его, когда браузерный редактор перестаёт быть источником истины — командные репозитории, код-ревью, деплой из CI, — сохраняя под капотом те же рантайм, шлюз и наблюдаемость.

Структура проекта

inquir init разворачивает воркспейс с inquir.config.json в корне. Конфиг говорит CLI, где искать ассеты:

inquir.config.json
{
  "functionsDir": "inquir/functions",
  "pipelinesDir": "inquir/pipelines",
  "generatedDir": ".inquir/generated"
}

Всё в functionsDir, что экспортирует управляемую функцию, обнаруживается автоматически — вручную поддерживать манифест не нужно.

Описываем функцию

defineFunction связывает конфигурацию с обработчиком. Схемы входа и выхода — типы Zod: SDK валидирует событие до запуска вашего кода и выводит TypeScript-сигнатуру обработчика из схемы.

greet.ts
import { defineFunction } from '@inquir/compute';
import { z } from 'zod';

// Config, validation, and types live next to the code — no console clicking.
export const greet = defineFunction(
  {
    name: 'greet',
    timeoutMs: 10_000,
    memoryMB: 256,
    moduleType: 'esm', // skip content sniffing for .js entry files
    input: z.object({ name: z.string() }),
    output: z.object({ greeting: z.string() }),
  },
  async ({ name }) => ({ greeting: `Hello, ${name}!` })
);

Все опции зеркалят настройки консоли — timeoutMs, memoryMB, allowNetwork, environment и moduleType, который избавляет от угадывания ESM/CommonJS для обычных .js-входов.

Ежедневный цикл

  • inquir list — показать локальные ассеты, которые нашёл SDK (с -r — что задеплоено удалённо).
  • inquir run greet --payload '{"name":"World"}' — выполнить функцию локально с валидацией схемы, без деплоя.
  • inquir deploy greet — упаковать функцию и стримить логи сборки, пока эндпоинт не оживёт.
  • inquir logs greet — смотреть свежие удалённые вызовы прямо из терминала.

SDK или редактор

Браузерный редактор — самый быстрый способ проверить идею, и он полностью поддерживается: оба инструмента работают с одними и теми же функциями. Переходите на SDK, когда изменениям нужны ревью, тесты и CI: code-first-функции получают типизированные контракты и воспроизводимые деплои, а редактор остаётся удобным для быстрой диагностики в продакшне.