Перейти к содержимому
GitHubXDiscord

triggery create

Стабильный · с 0.1.0

Скачивает стартовый шаблон Triggery в новую директорию. Шаблоны живут в templates/<name> репозитория Triggery, поэтому версии остаются в шаге с @triggery/core. Сама загрузка идёт через gigetdegit-подобный tar-фетчер поверх endpoint’а GitHub archive, с офлайновым кэшем после первого прогона. Никаких git clone, никакого shell-out из Node.

Доступно как CLI-команда triggery create и как программный API createProject.

import { createProject, isKnownTemplate, type TemplateName } from '@triggery/cli';
function createProject(options: CreateProjectOptions): Promise<CreateProjectResult>;

type TemplateName = 'vite-react' | 'next-app' | 'react-native';

interface CreateProjectOptions {
  readonly directory: string;
  readonly template: TemplateName;
  readonly cwd?: string;
  readonly force?: boolean;
}

interface CreateProjectResult {
  readonly directory: string; // absolute path
  readonly source: string;    // giget source spec
}
triggery create <directory> [--template <name>] [--force]
ФлагПо умолчаниюОписание
--template <name>vite-reactОдин из vite-react, next-app, react-native.
--forcefalseПерезаписать существующую директорию вместо ошибки.
ШаблонСтек
vite-reactVite 5 + React 18 + TypeScript + @triggery/react + @triggery/vite. По умолчанию — самый быстрый путь к рабочему dev-серверу.
next-appNext.js 15 (App Router) + @triggery/react. Triggery подвязан в <TriggerRuntimeProvider> внутри app/providers.tsx.
react-nativeExpo + React Native + @triggery/react. Реестр триггеров импортируется из App.tsx.
triggery create my-chat

Вывод:

Scaffolded github:triggeryjs/triggery/templates/vite-react#main → /Users/you/my-chat
triggery create my-shop --template next-app

CLI — перезаписать существующую директорию

Заголовок раздела «CLI — перезаписать существующую директорию»
triggery create my-chat --force
import { createProject } from '@triggery/cli';

const { directory, source } = await createProject({
  directory: './apps/playground',
  template: 'vite-react',
});

console.log('scaffolded', source, '→', directory);

isKnownTemplate — это type-предикат, который CLI использует, чтобы отбраковать неизвестные значения:

import { createProject, isKnownTemplate, type TemplateName } from '@triggery/cli';

function safeTemplate(input: string): TemplateName {
  if (!isKnownTemplate(input)) {
    throw new Error(`Unknown template: ${input}`);
  }
  return input;
}

await createProject({
  directory: 'experiment',
  template: safeTemplate(process.env.TRIGGERY_TEMPLATE ?? 'vite-react'),
});

Каждый шаблон поставляет:

  • Рабочую команду dev-сервера / сборки (npm run dev / npm run build).
  • Папку src/triggers/ с одним примером триггера и парным к нему компонентом.
  • Релевантные пакеты @triggery/*, уже зафиксированные в package.json.
  • @triggery/vite, настроенный в vite.config.ts (шаблоны Vite / Next), чтобы автообнаружение *.trigger.ts работало из коробки.
  • tsconfig.json со strict-режимом и разрешёнными путями @triggery/*.