Nine Parsecs from Milwaukee
Miss any of our Open RFC calls?Watch the recordings here! »


0.21.5 • Public • Published

npm npm


Node.js application / library, which generates simple and powerful entity classes for ORM systems, like Doctrine and/or Entity Framework, wriiten in TypeScript.


As command line tool:

npm install -g entity-baker

As module:

npm install --save entity-baker


First create a entities.json file inside your working directory (can also be in XML or YAML format, s. examples folder):

    "namespace": "MarcelJoachimKloubert.Database",
    "entities": {
        "Log": {
            "table": "logs",
            "columns": {
                "id": {
                    "id": true,
                    "auto": true,
                    "type": "int32"
                "level": {
                    "null": true,
                    "type": "int16"
                "message": "string",
                "tag": {
                    "null": true,
                    "type": "string"
                "context": {
                    "null": true,
                    "type": "json"

From command line

# run it from your working directory 
entity-baker --doctrine --entity-framework --entity-framework-core

As module


var EntityBaker = require('entity-baker');


import * as EntityBaker from 'entity-baker';


var fs = require('fs');
var entityFile = JSON.parse(
    fs.readFileSync('./entities.json', 'utf8')
    cwd: '/path/to/working/directory',
    file: entityFile,
    outDir: '/path/to/output/directory',
       target: 1,  // Doctrine
    // target: 2  // Entity Framework
    // target: 3  // Entity Framework Core
    callbacks: {
        onBeforeGenerateClass: function(className, target) {
        onClassGenerated: function(err, className, target) {
}).then(function() {
    // files generated
}, function (err) {
    // error while generating files

Data types

Type Doctrine Entity Framework
bigint bigint System.Int64
bin binary System.Byte[]
binary binary System.Byte[]
blob blob System.Byte[]
bool boolean System.Boolean
boolean boolean System.Boolean
date date System.Int64
datetime datetime System.Int64
datetimetz datetimetz System.DateTimeOffset
decimal decimal System.Decimal
float float System.Single
guid guid System.Guid
int integer System.Int32
int16 smallint System.Int16
int32 integer System.Int32
int64 bigint System.Int64
integer integer System.Int32
json json dynamic
smallint smallint System.Int16
str string System.String
string string System.String
text text System.String
time time System.TimeSpan
uint16 smallint System.UInt16
uint32 integer System.UInt32
uint64 bigint System.UInt64
uuid guid System.Guid

If you do not define a data type, it set to

  • int32, if the column is a primary key, or...
  • string, if nothing else matches

Support and contribute []

If you like the module, you can support the project by sending a donation via PayPal to me.

To contribute, you can open an issue and/or fork this repository.

To work with the code:

  • clone this repository
  • create and change to a new branch, like git checkout -b my_new_feature
  • run npm install from your project folder
  • edit and debug in your favorite editor, like Visual Studio Code
  • commit your changes to your new branch and sync it with your forked GitHub repo
  • make a pull request

The API documentation can be found here.


npm i entity-baker

DownloadsWeekly Downloads






Last publish


  • avatar