Home

Awesome

Join our Discord to discuss our software!

@heusalagroup/create-backend

A command-line tool to easily create NodeJS REST backend projects with TypeScript in the style inspired by Java Spring Boot. For more information on our style of NodeJS backends, check out HG.fi.

Usage

To create a minimal backend project, run either of the following commands:

npm init @heusalagroup/backend ./foo-backend

...or..

npm install -g @heusalagroup/create-backend
create-backend ./foo-backend

This command also accepts any argument from the npm init command. For example, you can call it with --yes to answer "yes" to every question:

create-backend ./foo-backend --yes

To increase the log level for debugging, set the LOG_LEVEL environment variable:

LOG_LEVEL=DEBUG npm init @heusalagroup/backend ./foo-backend

Development

Fetching source code

To get started with development, clone the repository locally and install the git submodules:

git clone git@github.com:heusalagroup/create-backend.git create-backend
cd create-backend
git submodule update --init --recursive

Listing state of git modules

To see the state of the git modules, run this command:

./scripts/get-all-branches.sh

If you see states like this, run the set-branch-main.sh script:

$ ./scripts/get-all-branches.sh 
main    .
(HEAD detached at 34566e9)      src/fi/hg/core
(HEAD detached at 898988b)      src/fi/hg/create

When everything is correct, you should see this:

$ ./scripts/get-all-branches.sh 
main    .
main    src/fi/hg/core
main    src/fi/hg/create

Unless you want to use a different branch, of course.

Changing all git modules to the main branch

To switch all git modules to main, run this script:

./scripts/set-branch-main.sh

Updating git modules to the latest version

To update all git modules to the latest version, run this script:

./scripts/pull-all.sh

Building the project

This script will build a standalone version of the project and output it to ./dist/create-backend.js. It will be zero dep after that, meaning that only Node.js is required to run it, along with ./create.config.json and the files in ./templates.

npm run build

Testing locally

You can install your own locally changed version globally:

npm install -g .

Then use it to kickstart a backend project:

create-backend ./foo-backend

Development with GitHub Using SSH

To use SSH when working with submodules in this repository, you will need to configure your Git settings as follows:

git config --global url."git@github.com:heusalagroup/".insteadOf "https://github.com/heusalagroup/"

This configuration is necessary because the repository uses HTTPS links for read-only access. However, you may prefer to use SSH when pushing and pulling changes.

License

Copyright (c) 2022 Heusala Group. All rights reserved. Licensed under the MIT License (the "License").