ast-to-entity-definitions 🚀

CircleCI code style: prettier semantic-release: angular

Welcome to ast-to-entity-definitions! 🎉 This tool lets you easily generate EntityDefinition and EntityPropertyDefinition from your TypeScript type information. By doing this, you can streamline the process of source code generation!

📚 Table of Contents

Getting Started 🚀

You can start using ast-to-entity-definitions by installing it via npm:

npm install ast-to-entity-definitions

Or if you prefer Yarn:

yarn add ast-to-entity-definitions

Usage 🛠️

CLI

You can use the CLI to generate the EntityDefinition and EntityPropertyDefinition like so:

npx ast-to-entity-definitions ./src/domain/entities

Function

Alternatively, you can import the getEntityDefinitions function and use it in your own scripts:

import { getEntityDefinitions } from 'ast-to-entity-definitions/bin/adapter/entry-points/function/index';
console.log(getEntityDefinitions(path));

Examples 🔍

This example shows you the output of running ast-to-entity-definitions against a TypeScript file. This is a JSON representation of the EntityDefinition and EntityPropertyDefinition for each type:

import { execSync } from 'child_process';

describe('commander program', () => {
  it('should output file contents', () => {
    const output = execSync(
      'npx ts-node ./src/adapter/entry-points/cli/index.ts ./testdata/src/domain/entities',
    ).toString();

    console.log(output.trim());
  });
});

This example creates EntityDefinitions for a Administrator, Group, Item, User, UserAddress, and UserGroup types.

Contributing 🔨⌨️

Contributions, issues and feature requests are welcome! Feel free to check issues page.

License 📜

ast-to-entity-definitions is MIT licensed.


Give a ⭐️ if this project helped you!