Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ts-class-gen

A simple and powerful TypeScript class generator library that helps you programmatically generate TypeScript classes, interfaces, methods, and properties with clean, readable code.

Features

  • 🚀 Simple API - Easy-to-use fluent interface for code generation
  • 📝 TypeScript Support - Full TypeScript support with type definitions
  • 🎯 Flexible - Generate classes, interfaces, methods, properties, and complete files
  • 🔧 Customizable - Support for access modifiers, static members, inheritance, and more
  • 📦 Lightweight - Minimal dependencies, focused on core functionality

Installation

npm install ts-class-gen

Quick Start

import { CGClass, CGProperty, CGMethod, CGFile, CGAccess } from 'ts-class-gen';

// Create a property
const idProperty = new CGProperty();
idProperty.name = 'id';
idProperty.type = 'number';
idProperty.access = CGAccess.private;

// Create a method
const getIdMethod = new CGMethod();
getIdMethod.name = 'getId';
getIdMethod.returnType = 'number';
getIdMethod.access = CGAccess.public;
getIdMethod.addBodyCode('return this.id;');

// Create a class
const userClass = new CGClass();
userClass.name = 'User';
userClass.isExport = true;
userClass.addProperty(idProperty);
userClass.addMethod(getIdMethod);

// Create a file
const file = new CGFile();
file.addClass(userClass);

// Generate the code
console.log(file.toString());

This will generate:

export class User {
    // #region Properties
    private id: number;
    // #endregion

    // #region Methods
    public getId(): number {
        return this.id;
    }
    // #endregion
}

API Reference

Core Classes

  • CGClass - Generate TypeScript classes with properties, methods, inheritance
  • CGInterface - Generate TypeScript interfaces
  • CGProperty - Generate class/interface properties with types and access modifiers
  • CGMethod - Generate methods with parameters and body code
  • CGParameter - Generate method parameters
  • CGFile - Generate complete TypeScript files with imports and multiple classes/interfaces

Enums

  • CGAccess - Access modifiers: public, private, protected

Utilities

  • StringBuilder - Efficient string building
  • CGHelper - Helper methods for code generation

Advanced Usage

// Complex class with inheritance
const userClass = new CGClass();
userClass.name = 'User';
userClass.extendsClass = 'Person';
userClass.implementsInterfaces = ['IUser'];

// Complete file generation
const file = new CGFile();
file.addImport('import { BaseEntity } from "./base";');
file.addClass(userClass);
const code = file.toString();

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT © Eden

About

Simple class generator for typescript.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.