@ -1,19 +0,0 @@
|
||||
Copyright © 2021 Garrett Mills
|
||||
|
||||
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.
|
@ -1,31 +1,9 @@
|
||||
<center>
|
||||
<br>
|
||||
<img alt="The Extollo logo" src="https://static.garrettmills.dev/sites/extollo/docs/assets/logo/svg/Extollo-Icon-and-Text-LIGHT-Final.svg" height="150">
|
||||
<br><br>
|
||||
<b>extollo</b> - (v. <em>latin</em>) - to lift up, to elevate
|
||||
<br><br>
|
||||
Extollo is a <a href="https://www.gnu.org/philosophy/floss-and-foss.en.html" target="_blank">free & libre</a> application framework in TypeScript.
|
||||
</center>
|
||||
<hr>
|
||||
# `garrettmills.dev`
|
||||
|
||||
Built on principles of modularity, strict-typing, inversion-of-control, and developer ergonomics, Extollo enables developers to build maintainable, scalable, and expressive applications.
|
||||
This is my website, hosted at https://garrettmills.dev.
|
||||
|
||||
Node.js provides an excellent platform for quickly getting an application up and running, but this loose minimalism can lead to larger, more unweildy code-bases as your application grows. Extollo fixes this by providing an opinionated, robust framework and first-party modules that provide, among other things:
|
||||
It is implemented with my [Extollo framework](https://extollo.garrettmills.dev).
|
||||
|
||||
- Type-based dependency injection
|
||||
- Strongly-typed ORM with an expressive query-builder and models
|
||||
- Customizable session & caching interfaces
|
||||
- Modular, pre-compiled, nest-able routes
|
||||
- First-party, extensible command line tools
|
||||
- Unit-based application structure
|
||||
![](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)
|
||||
|
||||
## Getting Started
|
||||
Writing an application with Extollo is very straightforward if you are familiar with Node.js/TypeScript, or similar frameworks like Laravel.
|
||||
|
||||
Check out the [Getting Started](https://extollo.garrettmills.dev/pages/Documentation/Getting-Started.html) page on the documentation site for more information.
|
||||
|
||||
## License & Philosophy
|
||||
The Extollo project is, and will always be, free & libre software. The framework itself is open-source available [here](https://code.garrettmills.dev/Extollo), and is licensed under the terms of the MIT license. See the LICENSE file for more information.
|
||||
|
||||
## Contributing
|
||||
Have an improvement or fix to Extollo? Contributors are always welcome. See the CONTRIBUTING.md file for next steps.
|
||||
This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/).
|
||||
|
@ -1,4 +0,0 @@
|
||||
DEBUG_MODE=true
|
||||
EXTOLLO_LOGGING_LEVEL=6
|
||||
DATABASE_PASSWORD=extollo
|
||||
DATABASE_HOST=db01.platform.local
|
@ -1,15 +0,0 @@
|
||||
import {Inject, Injectable, Logging, BaseJob} from '@extollo/lib'
|
||||
|
||||
@Injectable()
|
||||
export default class LogMessage extends BaseJob {
|
||||
@Inject()
|
||||
protected readonly logging!: Logging
|
||||
|
||||
async execute(): Promise<void> {
|
||||
this.logging.info('Executing LogMessage...')
|
||||
await new Promise<void>(res => {
|
||||
setTimeout(() => res(), 3000)
|
||||
})
|
||||
this.logging.success('The LogMessage job has executed!')
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 467 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 327 B |
After Width: | Height: | Size: 628 B |
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1 @@
|
||||
{"name":"Garrett Mills | Developer, Speaker, Designer","short_name":"Garrett Mills","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
After Width: | Height: | Size: 6.8 KiB |
@ -1,14 +0,0 @@
|
||||
|
||||
export interface UserLogin {
|
||||
/**
|
||||
* @minLength 1
|
||||
* @maxLength 100
|
||||
*/
|
||||
username: string,
|
||||
|
||||
/**
|
||||
* @minLength 1
|
||||
* @maxLength 100
|
||||
*/
|
||||
password: string,
|
||||
}
|