Skip to content

southworks/codeverter

Repository files navigation

Welcome to Codeverter!

Codeverter is a tool to convert a TypeScript source file (*.ts) into different languages (go, c# or Visual Basic by the moment).

Codeverter Build Codeverter tests Codeverter Playground NPM GH Package


Playground

If you want to try it, click here!

Installing

NPM

Public registry

npm install -g @southworks/codeverter

Locally

cd ./path-to-codeverter
npm run build:prod
npm install -g

Building

Prerequisites

Dependencies

In order to build the project you must install the required dependencies by running the following command npm install

Compilation

The project is written in TypeScript so you need to call the tsc compiler. To start the compilation process use the command npm run build once finished you will have all the final JavaScript files at ./out folder.

For production use the command npm run build:prod

Testing

To run the available test suites run the command npm test

  • The test framework is Jest so you can use any flag you want. For example: npm test -- -t "constant"

Usage

Command 'cdv'

cdv is the command to execute the tool

For example: cdv --src xxx --lang zzz --dest yyy <path>

Args

--src: Path to the source file or directory.

  • Default value: .

--lang: Target language.

  • Values: csharp | go | vb
  • Default value: go

--template: Custom template to perform the transformation. The extension must be '.t' followed by the language extension, for example: csharp => .tcs.

  • Values: Path to the custom tempate
  • Default value: ''

--dest: Destination

  • Values: console | file
    • file has an extra parameter <destination path>
  • Default value: console

Support

Fully documented support at Wiki

Constants/Variables

C# GO Visual Basic
Global ✔️ ✔️ ✔️
Function/Constructor body ✔️ ✔️ ✔️

Enums

C# GO Visual Basic
Numeric ✔️ ✔️ ✔️
String ✔️ ✔️
Implicit ✔️ ✔️ ✔️

Interfaces

C# GO Visual Basic
Members ✔️ ✔️
Method/Functions ✔️ ✔️ ✔️
Inheritance ✔️ ✔️
Implementation ✔️ ✔️ ✔️

Classes

C# GO Visual Basic
Inheritance ✔️ ✔️* ✔️
Interfaces ✔️ ✔️ ✔️
Visibility ✔️ ✔️** ✔️
Static P P

*In a go way, using composition

**Using naming conventions

Constructors

C# GO Visual Basic
Visibility ✔️ ✔️
Parameters ✔️ ✔️ ✔️
Body AS COMMENT AS COMMENT AS COMMENT

Properties

C# GO Visual Basic
Visibility ✔️ ✔️* ✔️

*Naming convention for pubic or private, protected is considered private

Methods/Functions

C# GO Visual Basic
Visibility ✔️ ✔️* ✔️
Parameters ✔️ ✔️ ✔️
Return type ✔️ ✔️ ✔️**
Default return value ✔️ ✔️ ✔️**

*Naming convention for pubic or private, protected is considered private

**As functions