@xtreamsrl/web
v1.1.0
Published
A collection of common utilities to help with web services development
Downloads
834
Readme
@xtreamsrl/web
A collection of common utilities to help with web services development, including:
- sample
ErrorResponse
type annotated with NestJS swagger decorators - pagination sample request/response types annotated with NestJS swagger decorators and validation
- sort item transformer to parse sort parameters into a list of sort items
Installation
npm install @xtreamsrl/web
Usage
Sort item transformer
import { stringToSortItems } from '@xtreamsrl/web';
@Controller('users')
export class UserController {
@Get()
getUsers(@Query('sort') sortParam: string): string {
// Parse the sort parameter using the stringToSortItems function
const sortItems = stringToSortItems(UserSortItem, sortParam);
// Now you can use the sort items to perform sorting logic in your service/repository
// ...
}
}
Build
Run nx build web
to build the library.
Run unit tests
Run nx test web
to execute the unit tests via Jest.
Linting
Run nx lint web
to execute the lint via ESLint.
Versioning
Export the GH_TOKEN
environment variable with your GitHub token with at least the repo
scope:
export GH_TOKEN=<YOUR_PERSONAL_GH_TOKEN>
Then run the following command:
lerna version
The GH_TOKEN
is needed to push the version commit and tag to the remote repository and to create the release on GitHub.
For general information about the versioning process, please refer to the root Readme Versioning section.
Publishing
Update your local .npmrc
file to include the following lines:
@xtreamsrl:registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
The ${NPM_TOKEN}
placeholder is a npm personal access token publish permissions on the @xtreamsrl
organization.
It can be treated as placeholder to replace with the actual token value, or you can set it as an environment variable:
export NPM_TOKEN=<YOUR_PERSONAL_NPM_TOKEN>
Then run the following command:
npm run lerna-publish