pulsar
RU

Быстрый старт

pulsar create my-app      # по умолчанию UI на TypeScript (шаблоны: default, qml, windows, tray)
cd my-app
pulsar dev                # запуск с горячей перезагрузкой

Структура my-app:

my-app/
  pulsar.json     # манифест приложения: id, окна, точка входа
  main.ts         # интерфейс + состояние + события, всё на TypeScript
  assets/icon.png
  package.json
  tsconfig.json

main.ts:

import { App, bind, Button, Column, Header, Text } from "pulsar"

const app = new App()

app.store.set("count", 0)

app
  .window("main")
  .render(() =>
    Column(
      { fill: true },
      Header({ title: "Hello from Pulsar" }),
      Text({ size: 20, text: bind(() => `Count: ${app.store.get("count")}`) }),
      Button({ onClick: () => app.store.set("count", (app.store.get("count") as number) + 1) }, "+1"),
    ),
  )

app.run()

QML-файлов нет. pulsar.json задаёт параметры окна по умолчанию, поэтому new App() можно вызывать без аргументов. Продвинутые пользователи могут переключить окно на QML через "ui": "ui/main.qml" и начать с pulsar create my-app --template qml.