1.0.2 • Published 6 months ago

nlx-ts-to-go v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

TS-to-Go Transpiler

TS-to-Go — это библиотека для транспиляции TypeScript кода в Go. Она полезна для разработчиков, которым нужно переносить типы и функции из TypeScript в Go, минимизируя ручную работу.

Особенности

  • Конвертация интерфейсов: Автоматически преобразует TypeScript интерфейсы в Go структуры.
  • Конвертация функций: Транспилирует функции с учетом их параметров и типов возврата.
  • Гибкость настройки: Возможность добавления маппинга для нестандартных типов.
  • Минимальная зависимость: Использует только TypeScript для анализа синтаксического дерева (AST).

Установка

Для использования библиотеки вам понадобится Node.js или Bun.

  1. Установите зависимости:

    bun install
  2. Убедитесь, что TypeScript установлен:

    npm install typescript@5.0.0 --save-dev

Использование

Пример кода

import { transpile } from "ts-to-go";

const tsCode = `
interface ConfigOptions {
  path: string;
  uiEnabled: boolean;
}

function getConfig(options: ConfigOptions): string {
  return \`Path: \${options.path}, UI: \${options.uiEnabled}\`;
}
`;

const goCode = transpile(tsCode);
console.log(goCode);

Результат:

  package main

  import "fmt"

  type ConfigOptions struct {
    Path      string
    UiEnabled bool
  }

  func getConfig(options ConfigOptions) string {
    /* Function body is not yet supported */
  }

API

transpile(tsCode: string): string

Описание: Транспилирует строку TypeScript кода в строку Go кода.

Параметры:

  • tsCode (string): Исходный код TypeScript.

Возвращает:

  • string: Сгенерированный Go код.

Вклад

Мы приветствуем ваши идеи и предложения! Если хотите помочь в развитии проекта:

  1. Форкните репозиторий.
  2. Создайте новую ветку: git checkout -b feature/YourFeature.
  3. Сделайте изменения и закоммитьте: git commit -m 'Добавил новую функцию'.
  4. Отправьте Pull Request.

Лицензия MIT © 2025 Anatoly Lyakhov

1.0.2

6 months ago

1.0.1

6 months ago

1.0.0

6 months ago