1.1.13 • Published 2 years ago

@amplication/data-service-generator v1.1.13

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

Amplication Data Service Generator

DSG (Data Service Generator) is the component responsible for the generation of source code by Amplication, and allows the integration of plugins into the code generation process.

Technologies

  • Node.js: the generated code is human-editable Node.js code.
  • TypeScript: the generator code and the generated code are both strictly typed TypeScript code.
  • Nest.js: is used for defining the API.
  • Express: is used as the base web framework for Nest.js.
  • Passport: is used for providing Basic authentication.
  • AccessControl: is used for providing ABAC and RBAC authorization.
  • PostgreSQL: is used for storing the application data.
  • Prisma: is used to interact with Postgres and define data migrations.
  • Docker: the generated code includes a Dockerfile for building containers.
  • Morgan: is used for logging calls to the API.
  • Recast: is used for generating the TypeScript code.
  • Jest: is used for testing the generator code and for testing in the generated code.

Development

:bulb: Before you begin, make sure you have all the below installed:

One time set up

After cloning the repository open its root directory and run the following commands:

  • Install dependencies of the monorepo (execute in root directory):

    npm install
    npm run bootstrap
  • Build the Data Service Generator and its dependencies:

    npm run build -- --scope @amplication/data-service-generator --include-dependencies
  • Open the data service generator directory

    cd packages/data-service-generator
  • Generate the test data service app

    npm run generate-test-data-service

Workflow

Make sure you are in the data service generator directory (packages/data-service-generator). Once you are done making changes, run the following commands:

  • Format files (editors like VSCode can do it for you automatically)

    npm run format
  • Lint files (editors like VSCode come with integration to display those continuously)

    npm run lint
  • Run unit tests

    npm test
  • (Optional) Rebuild the package

    npm run build

Testing

Generate test data service application

Generate an application according to the test data definitions. Once generated you can install its dependencies and start it with npm and spin a database with Docker.

npm run generate-test-data-service

E2E test data service application creation

The test will generate code according to the test data definitions, run a Docker container with it, run a database docker container, and try to call the API endpoints. Make sure to build the library before executing it.

npm run test:e2e

Generated Application Dependency Management

Add a dependency to the server template

npx lerna add --scope server-template $NAME_OF_DEPENDENCY

Add a dependency to the client template

npx lerna add --scope admin-template $NAME_OF_DEPENDENCY