@xtreamsrl/web v1.1.0
@xtreamsrl/web
A collection of common utilities to help with web services development, including:
- sample
ErrorResponsetype 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/webUsage
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 versionThe 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