-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 208134e
Showing
531 changed files
with
135,064 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Contributing to Nest-kit | ||
|
||
|
||
# Instructions | ||
|
||
## 1. Fork the Repository to your own Github Account | ||
|
||
## 2. Reference an Issue | ||
|
||
Code and changelogs work better when work references an actual tracking item that helps to understand why it happened. For this reason changes should only be made if they're referencing a documented issue. | ||
|
||
Feel free to reference an existing open issue or create a new one with a brief title and/or description | ||
|
||
|
||
## 3. Check out a new branch that references the issue | ||
|
||
Pick a good branch name. Try something that summarizes what you're doing in a descriptive way. Optionally include the issue number: | ||
|
||
* feature/{number}-my-new-thing | ||
* docs/improve-readme | ||
* fix/{number}some-bug | ||
|
||
|
||
## 4. Push your changes | ||
|
||
Be sure to include a reference to the issue number on the branch comments, e.g: | ||
|
||
closes #{number} | ||
|
||
re #{number} | ||
|
||
**Happy coding**! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Copyright 2024 2am. Technologies | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
# NestKit | ||
|
||
<p align="center"> | ||
<img src="./resource/nestkit-logo.jpeg"> | ||
</p> | ||
|
||
Nest-kit comes from the heart of [2am.tech](https://2am.tech), a software development company with a deep passion for open source. We are committed to giving back to the community by making the tools we've developed to meet our own internal needs available to everyone. | ||
|
||
NestKit is a monorepo project, meant to provide a comprehensive set of libraries for building projects with [nestjs](https://nestjs.com/). We hope you will find it useful! | ||
|
||
| Package | Description | Version | Changelog | | ||
| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | | ||
| [@2amtech/crudx](./packages/crudx/README.md) | A resourceful library enhances the creation of CRUD endpoints for your application. You can find samples demonstrating its functionality and specifications in the [documentation](./packages/crudx/README.md). | ![Version 1.0.0](https://img.shields.io/badge/version-1.0.0-blue) | [changelog](./packages/crudx/CHANGELOG.md) | | ||
| [@2amtech/crudx-swagger](./packages/crudx-swagger/README.md) | This library provides an easy to use module to apply default swagger docs to auto-generated routes created with the [@2amtech/crudx-package.](./packages/crudx/README.md) | ![Version 1.0.0](https://img.shields.io/badge/version-1.0.0-blue) | [changelog](./packages/crudx-swagger/CHANGELOG.md) | ||
|
||
# Contribute | ||
|
||
Contributions are **welcome** and will be fully **credited**. Please, refer to [contribution guidelines](CONTRIBUTING.md) for more details. | ||
|
||
# License | ||
|
||
[MIT License](LICENSE) | ||
|
||
# Testing | ||
|
||
Tests can be found with each package provided. You may execute them directly on your local machine or in a docker machine. | ||
|
||
### Instructions: | ||
|
||
To run tests, Docker is required, and following commands should be run: | ||
|
||
1. Run `docker compose up` | ||
2. Run `./test-all.sh` | ||
|
||
To run tests for a specific package run `./test package-name`. | ||
|
||
### On a local machine | ||
|
||
To run the tests on a local machine, you must first set your | ||
Mysql database credentials to `.env.testing` file. Then run | ||
the following commands to setup the environment: | ||
|
||
```shell | ||
$ yarn | ||
$ yarn nx reset | ||
``` | ||
|
||
With the environment set, the next command will run the tests for the target project, it should be: | ||
|
||
```shell | ||
$ yarn nx run {proect-name}:test | ||
|
||
# where project name is the target package, e.g: | ||
$ yarn nx run crudx:test | ||
``` | ||
|
||
# Demo | ||
|
||
Similarly to the unit tests, you may have access to demos and their tests under each package's tests folder, setting them up locally or using a provided docker-machine. | ||
|
||
You may serve the demo app or run its unit test. | ||
|
||
### Using the docker-machine: | ||
|
||
```shell | ||
# Clone this repository and access its folder; | ||
|
||
# to serve the demo app | ||
$ ./serve #{demo-name} | ||
# e.g: | ||
$ ./serve crudx-demo | ||
|
||
# app will be running at http://localhost:3000/v1 | ||
``` | ||
|
||
### Setting it up locally: | ||
|
||
As for testing, you must first define your Mysql credentials to the .env.testing file. | ||
Then, follow the next commands to install the required libraries: | ||
|
||
```shell | ||
$ yarn | ||
$ yarn nx reset | ||
``` | ||
|
||
The next commands will both run the target demo app tests and serve it: | ||
|
||
```shell | ||
$ yarn nx run {target-project}:test # it runs the project unit tests, | ||
|
||
#e.g: | ||
$ yarn nx run crudx-demo:test | ||
|
||
$ yarn nx run {targe-project}:serve # it will serve the target demo app at http://localhost:3000/v1 | ||
|
||
#e.g | ||
$ yarn nx run crudx-demo:serve | ||
``` | ||
|
||
# Contributors | ||
|
||
Thanks goes to these amazing people: | ||
|
||
<!-- automate it when we move to github, here as a draft atm --> | ||
<table> | ||
<tr> | ||
<td align="center"><a href="https://github.com/2amjsouza"><img src="https://avatars.githubusercontent.com/u/142612126?v=4" width="100px;" alt=""/><br /><sub><b>2amjsouza</b></sub></a></td> | ||
<td align="center"><a href="https://github.com/tonydspaniard"><img src="https://avatars.githubusercontent.com/u/566016?v=4" width="100px;" alt=""/><br /><sub><b>Antonio</b></sub></a></td> | ||
<td align="center"><a href="https://github.com/ArekX"><img src="https://avatars.githubusercontent.com/u/4344776?v=4" width="100px;" alt=""/><br /><sub><b>ArekX</b></sub></a></td> | ||
</tr> | ||
<tr> | ||
</table> | ||
|
||
<blockquote> | ||
<a href="https://2am.tech"><img src="http://www.gravatar.com/avatar/55363394d72945ff7ed312556ec041e0.png"></a><br> | ||
<i>web development has never been so fun</i><br> | ||
<a href="https://2am.tech">www.2am.tech</a> | ||
</blockquote> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,224 @@ | ||
body, html { | ||
margin:0; padding: 0; | ||
height: 100%; | ||
} | ||
body { | ||
font-family: Helvetica Neue, Helvetica, Arial; | ||
font-size: 14px; | ||
color:#333; | ||
} | ||
.small { font-size: 12px; } | ||
*, *:after, *:before { | ||
-webkit-box-sizing:border-box; | ||
-moz-box-sizing:border-box; | ||
box-sizing:border-box; | ||
} | ||
h1 { font-size: 20px; margin: 0;} | ||
h2 { font-size: 14px; } | ||
pre { | ||
font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; | ||
margin: 0; | ||
padding: 0; | ||
-moz-tab-size: 2; | ||
-o-tab-size: 2; | ||
tab-size: 2; | ||
} | ||
a { color:#0074D9; text-decoration:none; } | ||
a:hover { text-decoration:underline; } | ||
.strong { font-weight: bold; } | ||
.space-top1 { padding: 10px 0 0 0; } | ||
.pad2y { padding: 20px 0; } | ||
.pad1y { padding: 10px 0; } | ||
.pad2x { padding: 0 20px; } | ||
.pad2 { padding: 20px; } | ||
.pad1 { padding: 10px; } | ||
.space-left2 { padding-left:55px; } | ||
.space-right2 { padding-right:20px; } | ||
.center { text-align:center; } | ||
.clearfix { display:block; } | ||
.clearfix:after { | ||
content:''; | ||
display:block; | ||
height:0; | ||
clear:both; | ||
visibility:hidden; | ||
} | ||
.fl { float: left; } | ||
@media only screen and (max-width:640px) { | ||
.col3 { width:100%; max-width:100%; } | ||
.hide-mobile { display:none!important; } | ||
} | ||
|
||
.quiet { | ||
color: #7f7f7f; | ||
color: rgba(0,0,0,0.5); | ||
} | ||
.quiet a { opacity: 0.7; } | ||
|
||
.fraction { | ||
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; | ||
font-size: 10px; | ||
color: #555; | ||
background: #E8E8E8; | ||
padding: 4px 5px; | ||
border-radius: 3px; | ||
vertical-align: middle; | ||
} | ||
|
||
div.path a:link, div.path a:visited { color: #333; } | ||
table.coverage { | ||
border-collapse: collapse; | ||
margin: 10px 0 0 0; | ||
padding: 0; | ||
} | ||
|
||
table.coverage td { | ||
margin: 0; | ||
padding: 0; | ||
vertical-align: top; | ||
} | ||
table.coverage td.line-count { | ||
text-align: right; | ||
padding: 0 5px 0 20px; | ||
} | ||
table.coverage td.line-coverage { | ||
text-align: right; | ||
padding-right: 10px; | ||
min-width:20px; | ||
} | ||
|
||
table.coverage td span.cline-any { | ||
display: inline-block; | ||
padding: 0 5px; | ||
width: 100%; | ||
} | ||
.missing-if-branch { | ||
display: inline-block; | ||
margin-right: 5px; | ||
border-radius: 3px; | ||
position: relative; | ||
padding: 0 4px; | ||
background: #333; | ||
color: yellow; | ||
} | ||
|
||
.skip-if-branch { | ||
display: none; | ||
margin-right: 10px; | ||
position: relative; | ||
padding: 0 4px; | ||
background: #ccc; | ||
color: white; | ||
} | ||
.missing-if-branch .typ, .skip-if-branch .typ { | ||
color: inherit !important; | ||
} | ||
.coverage-summary { | ||
border-collapse: collapse; | ||
width: 100%; | ||
} | ||
.coverage-summary tr { border-bottom: 1px solid #bbb; } | ||
.keyline-all { border: 1px solid #ddd; } | ||
.coverage-summary td, .coverage-summary th { padding: 10px; } | ||
.coverage-summary tbody { border: 1px solid #bbb; } | ||
.coverage-summary td { border-right: 1px solid #bbb; } | ||
.coverage-summary td:last-child { border-right: none; } | ||
.coverage-summary th { | ||
text-align: left; | ||
font-weight: normal; | ||
white-space: nowrap; | ||
} | ||
.coverage-summary th.file { border-right: none !important; } | ||
.coverage-summary th.pct { } | ||
.coverage-summary th.pic, | ||
.coverage-summary th.abs, | ||
.coverage-summary td.pct, | ||
.coverage-summary td.abs { text-align: right; } | ||
.coverage-summary td.file { white-space: nowrap; } | ||
.coverage-summary td.pic { min-width: 120px !important; } | ||
.coverage-summary tfoot td { } | ||
|
||
.coverage-summary .sorter { | ||
height: 10px; | ||
width: 7px; | ||
display: inline-block; | ||
margin-left: 0.5em; | ||
background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; | ||
} | ||
.coverage-summary .sorted .sorter { | ||
background-position: 0 -20px; | ||
} | ||
.coverage-summary .sorted-desc .sorter { | ||
background-position: 0 -10px; | ||
} | ||
.status-line { height: 10px; } | ||
/* yellow */ | ||
.cbranch-no { background: yellow !important; color: #111; } | ||
/* dark red */ | ||
.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } | ||
.low .chart { border:1px solid #C21F39 } | ||
.highlighted, | ||
.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ | ||
background: #C21F39 !important; | ||
} | ||
/* medium red */ | ||
.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } | ||
/* light red */ | ||
.low, .cline-no { background:#FCE1E5 } | ||
/* light green */ | ||
.high, .cline-yes { background:rgb(230,245,208) } | ||
/* medium green */ | ||
.cstat-yes { background:rgb(161,215,106) } | ||
/* dark green */ | ||
.status-line.high, .high .cover-fill { background:rgb(77,146,33) } | ||
.high .chart { border:1px solid rgb(77,146,33) } | ||
/* dark yellow (gold) */ | ||
.status-line.medium, .medium .cover-fill { background: #f9cd0b; } | ||
.medium .chart { border:1px solid #f9cd0b; } | ||
/* light yellow */ | ||
.medium { background: #fff4c2; } | ||
|
||
.cstat-skip { background: #ddd; color: #111; } | ||
.fstat-skip { background: #ddd; color: #111 !important; } | ||
.cbranch-skip { background: #ddd !important; color: #111; } | ||
|
||
span.cline-neutral { background: #eaeaea; } | ||
|
||
.coverage-summary td.empty { | ||
opacity: .5; | ||
padding-top: 4px; | ||
padding-bottom: 4px; | ||
line-height: 1; | ||
color: #888; | ||
} | ||
|
||
.cover-fill, .cover-empty { | ||
display:inline-block; | ||
height: 12px; | ||
} | ||
.chart { | ||
line-height: 0; | ||
} | ||
.cover-empty { | ||
background: white; | ||
} | ||
.cover-full { | ||
border-right: none !important; | ||
} | ||
pre.prettyprint { | ||
border: none !important; | ||
padding: 0 !important; | ||
margin: 0 !important; | ||
} | ||
.com { color: #999 !important; } | ||
.ignore-none { color: #999; font-weight: normal; } | ||
|
||
.wrapper { | ||
min-height: 100%; | ||
height: auto !important; | ||
height: 100%; | ||
margin: 0 auto -48px; | ||
} | ||
.footer, .push { | ||
height: 48px; | ||
} |
Oops, something went wrong.