✨Style and structure guide
This page describe the preferred code style and folder structures of a module
Code formatting
By default a Multijet project uses Prettier as a code formatter, customizable with the root configuration file:
{
"singleQuote": true,
"trailingComma": "all",
"semi": false,
"tabWidth": 4,
"arrowParens": "avoid"
}
Editor configuration
If you are using VSCode, multijet includes a default configuration (located in the .vscode
folder) that includes recommended extensions, debug configurations and formatting settings.
It is highly recommended to use Conventional Commits as a standard for all Git commits.
Modules file structure
It is suggested to follow a standard file structure when developing shared libs.
The followings are examples of how you can structure your libraries in order to make them more consistent and readable.
my-lib/
└── src/
├── core/
│ └── ... core implementation
├── models/
│ └── ... interfaces and models
├── common/
│ ├── const.ts
│ ├── errors.ts
│ └── ... used in the entire lib
├── helper/
│ └── ... helper functions
└── index.ts
If your library needs to be divided in submodules you can follow the same structure as follows:
my-lib/
└── src/
├── module-1/
│ ├── core/
│ │ └── module-1.ts
│ ├── models/
│ │ ├── module-1.models.ts
│ │ ├── module-1.errors.ts
│ │ ├── module-1.consts.ts
│ │ └── ...
│ └── helper
├── module-2/
│ ├── core
│ ├── models
│ └── helper
├── common/
│ ├── consts.ts
│ ├── types.ts
│ └── ... used between modules
└── index.ts
The library index.ts
should only contain exports for the modules and interfaces you want to export, nothing more.
The following is a real example of a small lib:
Last updated