From b7e0d1507480be968ba041c23b1206940b2e80f3 Mon Sep 17 00:00:00 2001 From: Richard Zampieri Date: Fri, 15 Sep 2023 22:49:27 -0700 Subject: [PATCH] feat: add doc updates for v2 --- docs/overview/application.md | 101 ++++++--- docs/overview/decorators.md | 56 ++--- docs/overview/dependencies.md | 13 +- docs/overview/first-steps.md | 175 +++++---------- docs/overview/img/app-life-cycle.png | Bin 70811 -> 128427 bytes docs/overview/img/app-overview.png | Bin 43202 -> 44314 bytes .../current/overview/application.md | 207 ++++++++++-------- .../current/overview/decorators.md | 60 ++--- .../current/overview/dependencies.md | 11 +- .../current/overview/first-steps.md | 186 +++++++--------- 10 files changed, 387 insertions(+), 422 deletions(-) diff --git a/docs/overview/application.md b/docs/overview/application.md index f94e899a..987ddcd5 100644 --- a/docs/overview/application.md +++ b/docs/overview/application.md @@ -8,10 +8,10 @@ The Application Overview provides a comprehensive demonstration of the main comp ![Application Overview](./img/app-overview.png) -ExpressoTS is a web application framework that provides a simple wrapper around popular HTTP servers, including **[Express](https://expressjs.com)**, **[Fastify](https://www.fastify.io/)**, or **[Koa](https://koajs.com/)**. +ExpressoTS is a web application framework that provides a wrapper around popular HTTP servers, including **[Express](https://expressjs.com)** and **[Fastify](https://www.fastify.io/)**. :::info -Currently, only Express has been thoroughly tested by the ExpressoTS team. +Currently, only Express has been thoroughly tested by the ExpressoTS team. Fastify adapter is a work-in-progress. ::: The architecture of an ExpressoTS application is built around the **[Inversify](https://inversify.io/)** IoC container, which is used to identify and inject dependencies into class constructors. This approach allows the IoC container to load all the necessary modules, including their respective routes (controllers). By using use-cases and providers as needed, routers can handle incoming requests. @@ -26,7 +26,7 @@ By leveraging the power of Inversify, ExpressoTS provides a custom Dependency In | Controller | Component responsible for processing requests and responses based on the URL and HTTP method. It also validates the conformity of the incoming data. | | Use Case | Component responsible for implementing the logic required to handle requests received from the controller. When the controller receives an HTTP request and validates the incoming data, it triggers the relevant use case, passing along the validated data for processing. The use case performs the necessary operations based on the request and returns the appropriate response to the controller, which then sends the response back to the client. | | Provider | Component responsible for providing external functionality to the application. | -| Repository | Component responsible for providing layer of communication with the database. Facilitating connection and CRUD operations. | +| Repository | Component responsible for providing layer of communication with the database. Facilitating connection and CRUD operations. | :::info Providers and Repositories are optional components. You can use them if you need to provide extra functionality to your application such as database integration, logging system, authentication, email etc. @@ -45,14 +45,16 @@ ExpressoTS will prevent you from initializing the Application without a controll **_No controllers have been found! Please ensure that you have register at least one Controller._** ::: -## Application Class +## AppExpress Class -The Application class offers a way to create and configure the server, passing **[Express.js middlewares](https://expressjs.com/en/guide/writing-middleware.html)** or other middleware upon server creation. +The AppExpress class offers a way to create and configure the server, passing **[Express.js middlewares](https://expressjs.com/en/guide/writing-middleware.html)** or other middleware upon server creation. -### Application Class Definition +To create an ExpressoTS application instance, we use the `AppFactory` class, which is responsible for creating the application instance and initializing the container, modules, and controllers. The `create()` function returns an IApplicationExpress which provides a set of methods to configure the server, including the `listen()` method, which starts the server and listens for incoming requests. + +### AppExpress Class Definition ```typescript -class Application { +class AppExpress { /** * Configure services that should be initialized before the server starts. */ @@ -66,34 +68,28 @@ class Application { /** * Perform actions or cleanup after the server is shutdown. */ - protected serverShutdown(): void { - process.exit(0); - } + protected serverShutdown(): void {} - public create( + public async create( container: Container, - middlewares: express.RequestHandler[] = [] - ): Application {} + middlewares: Array = [] + ): Promise {} - public listen( + public async listen( port: number, environment: ServerEnvironment, consoleMessage?: IApplicationMessageToConsole - ) {} + ): Promise {} } ``` -:::info -We also provide an instance of the Application class called **AppInstance**, which exposes the create and listen methods to the developer. This is beneficial when you need to quickly create a server without having to create a new class that extends the Application class and access its lifecycle methods. -::: - ### Create Method -The create method allows developers to pass the container and middlewares to the server. To pass middleware you don't need to use `app.use()`, just pass the middleware and its configuration as demonstrated below: +The create method allows developers to pass the container, middlewares and http server adapters to the server. To pass middleware you don't need to use `app.use()`, just pass the middleware and its configuration as demonstrated below: ```typescript async function Bootstrap() { - App.create(container, [ + await AppFactory.create(container, [ express.json(), express.urlencoded({ extended: true }), cors({ @@ -103,9 +99,14 @@ async function Bootstrap() { } ``` +:::info +Adapters are used to create the server. Currently, Express is the only adapter available. Fastify adapter is a work-in-progress. +When you create an application instance, you can pass the adapter as the third parameter. If you don't pass the adapter, Express is used by default. +::: + ### Listen Method -The listen method starts the server and listens for incoming requests. In the listen method, developers can define the port number and server environment, which can be either development, staging, or production. Developers can also set the application name and version to be displayed in the console when the server starts, as shown in the following example: +The `listen()` method starts the server and listens for incoming requests. In the listen method, developers can define the port number and server environment, which can be either development, staging, or production. Developers can also set the application name and version to be displayed in the console when the server starts, as shown in the following example: ```typescript // App listen method @@ -121,21 +122,56 @@ The name and version of your app can be configured via either the .env file or p ### Application Server Environment -For now, this functionality is a work-in-progress. Currently, it displays the environment in the console when the server starts. The colored console message helps developers to quickly identify the environment the server is running on. +This is an enum that defines the server environment. Currently supported environments are development and production. Upon server initialization, the underlying framework will look for the NODE_ENV environment variable and set the server environment accordingly. If the NODE_ENV environment variable is not set, the server environment will be set to development by default. + +Also, in the application provider user can perform conditional logic based on the server environment. + +```typescript +if (this.isDevelopment()) { + // your logic here +} +``` Here are the enum values available for server environments: ```typescript ServerEnvironment.Development; -ServerEnvironment.Staging; ServerEnvironment.Production; ``` -:::caution SPOILER ALERT -The goal of this functionality is to allow developers to load environment variables based on the environment the server is running on. For example, if the server is running on development, load the .env.dev file, if the server is running on staging, load the .env.stg file, etc.. We are also planning to load environment variables from remote sources such as AWS Parameter Store, AWS Secrets Manager, Azure Key Vault, etc.. -::: +## App Class Provider -## Application Lifecycle Hooks +The App class provider is the heart of the opinionated template application. It is responsible for initializing the application and provide functionalities to be configured in the server bootstrapping process. You can make use of the built-in middlewares and providers to configure your application. + +```typescript +class App extends AppExpress { + private middleware: IMiddleware; + private provider: IProvider; + + constructor() { + super(); + this.middleware = container.get(Middleware); + this.provider = container.get(Provider); + } + + protected configureServices(): void { + this.middleware.addBodyParser(); + this.middleware.setErrorHandler(); + } + + protected postServerInitialization(): void { + if (this.isDevelopment()) { + this.provider.envValidator.checkAll(); + } + } + + protected serverShutdown(): void {} +} +``` + +The App class provider offers a set of out-of-the-box middlewares and providers that can be used to configure your application. Explore the `IMiddleware` and `IProvider` interfaces to see what is available. + +## App Class Lifecycle Hooks Another important aspect of the Application class is lifecycle hooks. These hooks allow developers to execute code before, after and on server shutdown. It is important to note that in order to take advantage of these hooks, developers must create an App class extending the Application class and override the methods as needed. The following example shows the life cycle hooks available at the moment: @@ -147,9 +183,7 @@ Another important aspect of the Application class is lifecycle hooks. These hook protected postServerInitialization(): void { } /* Add any service that you want to execute after server is shutdown */ - protected serverShutdown(): void { - process.exit(0); - } + protected serverShutdown(): void { } ``` ### Hooks Execution Order @@ -161,9 +195,8 @@ Another important aspect of the Application class is lifecycle hooks. These hook Below are the scripts used to run, build and test your application. The command column shows NPM as the package manager, but you can use your package manager of choice. - -| Script | Description | Command | -| ---------- | ---------------------------------------------- | ------------------ | +| Script | Description | Command | +| ---------- | ----------------------------------------------- | ------------------ | | build | Build the production bundle in a ./dist folder. | npm run build | | dev | Runs in development watch mode. | npm run dev | | prod | Runs in production mode based on built bundle. | npm run prod | diff --git a/docs/overview/decorators.md b/docs/overview/decorators.md index e88030da..2fe31285 100644 --- a/docs/overview/decorators.md +++ b/docs/overview/decorators.md @@ -10,19 +10,19 @@ Here is a complete list of all decorators available in ExpressoTS as well as a b Decorators available for your classes. -| Decorator | Description | -| ------------------ | ------------------------------------------------------------------------------ | -| @provide | Binds a class to a dependency injection container as RequestScope. | -| @provideSingleton | Binds a class to a dependency injection container as Singleton. | -| @provideTransient | Binds a class to a dependency injection container as Transient. | -| @injectable | Marks a class as available to be injected. | -| @inject | Marks a class as available to be injected in the constructor of another class. | +| Decorator | Description | +| ----------------- | ------------------------------------------------------------------------------ | +| @provide | Binds a class to a dependency injection container as RequestScope. | +| @provideSingleton | Binds a class to a dependency injection container as Singleton. | +| @provideTransient | Binds a class to a dependency injection container as Transient. | +| @injectable | Marks a class as available to be injected. | +| @inject | Marks a class as available to be injected in the constructor of another class. | ## Controller Decorators Decorators available for your controllers. -| Decorator | Description | Usage example +| Decorator | Description | Usage example | | ----------- | ------------------------------ | ------------------------------------------------------------ | | @controller | Marks a class as a controller. | @controller("/path", middleware[]) | | @scope | Binds a controller to a scope. | @scope(BindingScopeEnum.Singleton, or Request, or Transient) | @@ -31,30 +31,30 @@ Decorators available for your controllers. Decorators available for your controller methods. -| Decorator | Description | Usage | -| ----------- | ------------------------------------------------------------------ | ---------------------------- | -| @httpGet | Binds a controller method to a GET HTTP verb. | @httpGet("/path") | -| @httpPost | Binds a controller method to a POST HTTP verb. | @httpPost("/path") | -| @httpPut | Binds a controller method to a PUT HTTP verb. | @httpPut("/path") | -| @httpPatch | Binds a controller method to a PATCH HTTP verb. | @httpPatch("/path") | -| @httpHead | Binds a controller method to a HEAD HTTP verb. | @httpHead("/path") | -| @httpDelete | Binds a controller method to a DELETE HTTP verb. | @httpDelete("/path") | -| @httpMethod | Binds a controller method to a specified HTTP verb. | @httpMethod("verb", "/path") | +| Decorator | Description | Usage | +| --------- | --------------------------------------------------- | ------------------------ | +| @Get | Binds a controller method to a GET HTTP verb. | @Get("/path") | +| @Post | Binds a controller method to a POST HTTP verb. | @Post("/path") | +| @Put | Binds a controller method to a PUT HTTP verb. | @Put("/path") | +| @Patch | Binds a controller method to a PATCH HTTP verb. | @Patch("/path") | +| @Head | Binds a controller method to a HEAD HTTP verb. | @Head("/path") | +| @Delete | Binds a controller method to a DELETE HTTP verb. | @Delete("/path") | +| @Method | Binds a controller method to a specified HTTP verb. | @Method("verb", "/path") | ### Parameter Decorators Here is a list of all parameter decorators available in ExpressoTS, along with their description and usage: -| Decorator | Description | Usage -| ------------------------------------ | ------------------------------------------------------ | -------------------------------------------------------- | -| @request() | Injects the Express Request object. | execute(@request() req: Request) -| @response() | Injects the Express Response object. | execute(@response() res: Response) -| @requestParam(paramName?: string) | Injects a parameter from the request URL path. | execute(@requestParam('id') id: string) -| @queryParam(paramName?: string) | Injects a parameter from the request URL query string. | execute(@queryParam('searchTerm') searchTerm: string) -| @requestBody() | Injects the request body payload. | execute(@requestBody() body: MyDTO) -| @requestHeaders(headerName?: string) | Injects a header from the request headers. | execute(@requestHeaders('authorization') auth: string) -| @cookies(cookieName?: string) | Injects a cookie from the request cookies. | execute(@cookies('session') session: string) -| @next() | Injects the Express NextFunction object. | execute(@next() next: NextFunction) +| Decorator | Description | Usage | +| ----------------------------- | ------------------------------------------------------ | ------------------------------------------------ | +| @request() | Injects the Express Request object. | execute(@request() req: Request) | +| @response() | Injects the Express Response object. | execute(@response() res: Response) | +| @param(paramName?: string) | Injects a parameter from the request URL path. | execute(@param('id') id: string) | +| @query(paramName?: string) | Injects a parameter from the request URL query string. | execute(@query('searchTerm') searchTerm: string) | +| @body() | Injects the request body payload. | execute(@body() body: MyDTO) | +| @headers(headerName?: string) | Injects a header from the request headers. | execute(@headers('authorization') auth: string) | +| @cookies(cookieName?: string) | Injects a cookie from the request cookies. | execute(@cookies('session') session: string) | +| @next() | Injects the Express NextFunction object. | execute(@next() next: NextFunction) | --- @@ -67,4 +67,4 @@ ExpressoTS is an MIT-licensed open source project. It's an independent project w - Subscribe to the Twitch channel: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)** - Join our **[Discord](https://discord.com/invite/PyPJfGK)** - Contribute submitting **[issues and pull requests](https://github.com/expressots/expressots/issues/new/choose)** -- Share the project with your friends and colleagues \ No newline at end of file +- Share the project with your friends and colleagues diff --git a/docs/overview/dependencies.md b/docs/overview/dependencies.md index 91e7913f..96dc4941 100644 --- a/docs/overview/dependencies.md +++ b/docs/overview/dependencies.md @@ -10,16 +10,15 @@ The purpose of this section is to list all dependencies used by ExpressoTS and o We know that dependencies accelerate the development process, but it also increases the projects complexity and maintenance cost. Another aspect we consider is the potential security risks that a dependency could bring the project. -Our goal is to keep the number of dependencies as low as possible, using only those that are necessary and not part of our core ExpressoTS framework mechanics. With that in mind, the Roadmap includes some dependencies that we hope to replace by our own implementation. More information will come on this. +Our goal is to keep the number of dependencies as low as possible, using only those that are necessary and not part of our core ExpressoTS framework mechanics. With that in mind, the Roadmap includes some dependencies that we hope to replace by our own implementation. More information will come on this. For now, we will keep a vigilant watch on included dependencies, using tools like **[Dependabot](https://dependabot.com/)** to keep them up to date and also using tools like **[Snyk](https://snyk.io/)** to monitor the security risks. -## Utilities +## Utilities (Dev Dependencies) - @commitlint/cli: Lint commit messages - @commitLint/config-conventional: Lint commit messages - @release-it/conventional-changelog: Generate changelog -- chalk: Terminal string styling - dotenv: Loads environment variables from .env file - husky: Git hooks - prettier: Code formatter @@ -31,15 +30,13 @@ For now, we will keep a vigilant watch on included dependencies, using tools lik - express: Http server framework - inversify: IoC container -- inversify-express-utils: Express integration for inversify - inversify-binding-decorators: Decorators for inversify -- winston: Logging library - reflect-metadata: Polyfill for metadata reflection API ## Test -- jest: Testing framework -- ts-jest: Typescript support for jest +- vitest: Testing framework +- vite: Vitest's requirement --- @@ -52,4 +49,4 @@ ExpressoTS is an MIT-licensed open source project. It's an independent project w - Subscribe to the Twitch channel: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)** - Join our **[Discord](https://discord.com/invite/PyPJfGK)** - Contribute submitting **[issues and pull requests](https://github.com/expressots/expressots/issues/new/choose)** -- Share the project with your friends and colleagues \ No newline at end of file +- Share the project with your friends and colleagues diff --git a/docs/overview/first-steps.md b/docs/overview/first-steps.md index 55cfa908..6e00cf37 100644 --- a/docs/overview/first-steps.md +++ b/docs/overview/first-steps.md @@ -4,7 +4,7 @@ sidebar_position: 1 # First Steps -In this section, you will delve into the core concepts of ExpressoTS. To familiarize yourself with the framework and its building blocks, we'll guide you through the process of building a simple non-opinionated project from scratch. This will help you understand some of the initial framework concepts and get started with ExpressoTS. +In this section, you will delve into the core concepts of ExpressoTS to familiarize yourself with the framework and its building blocks. ## The technology @@ -49,6 +49,7 @@ ExpressoTS offers two options for project templates: - Non-opinionated: Want to have the liberty to build and structure your project as you wish? Non opinionated template offers a very small footprint, with only the necessary files to get you started. - Opinionated: Opinionated template is made for more complex projects, as it provides a more layered architecture. + ::: After creating your project, with the desired ``, and depending on the project template you have selected, your project will have a different folder and file structure. Here are the specific folder and file structures for each project template: @@ -72,13 +73,13 @@ project-name/ | `app.container.ts` | The Inversify Server container is responsible for organizing all the modules of the application into a cohesive unit. | | `app.controller.ts` | A basic controller with a single route. | | `app.module.ts` | Application root module. | -| `app.usecase.ts` | A basic use case with a single method, called `execute()`. | +| `app.usecase.ts` | A basic use case with a single method, called `execute()`. | | `main.ts` | The main entry point of an ExpressoTS application. | | `app.usecase.spec.ts` | A basic unit test for the app.usecase. | ### Opinionated project template -In the opininated project template we provide a full CRUD example for a user entity, with all the necessary layers and files to get you started. +In the opinionated project template we provide a full CRUD example for a user entity, with all the necessary layers and files to get you started. ```tree project-name/ @@ -123,41 +124,39 @@ project-name/ │ ├── env.ts │ ├── main.ts ├── test/ -│ ├── ping.usecase.spec.ts +│ ├── app.usecase.spec.ts ``` -| File Name | Description | -| ---------------------- | --------------------------------------------------------------------------------------------------------------------- | -| `entities/` | This folder contains class definitions, or models with their attributes, properties and methods. | -| `providers/` | This folder contains the layer responsible to provide externals resources to the application, also known as adapters. | -| `repositories/` | Additional folder containing an example of repository pattern implementation, database layer communication. | -| `useCases/` | The use case folder contains the use cases implementation of operations that can be performed in the application. | -| `app.container.ts` | The Inversify Server container is responsible for organizing all the modules of the application into a cohesive unit. | -| `env.ts` | This is an utility resource that maps .env variables. | -| `main.ts` | The main entry point of an ExpressoTS application. | -| `ping.usecase.spec.ts` | A basic unit test for the ping.usecase. | +| File Name | Description | +| --------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `entities/` | This folder contains class definitions, or models with their attributes, properties and methods. | +| `providers/` | This folder contains the layer responsible to provide externals resources to the application, also known as adapters. | +| `repositories/` | Additional folder containing an example of repository pattern implementation, database layer communication. | +| `useCases/` | The use case folder contains the use cases implementation of operations that can be performed in the application. | +| `app.container.ts` | The Inversify Server container is responsible for organizing all the modules of the application into a cohesive unit. | +| `env.ts` | This is an utility resource that maps .env variables. | +| `main.ts` | The main entry point of an ExpressoTS application. | +| `app.usecase.spec.ts` | A basic unit test for the app.usecase. | Below you can find some extra information about **[Providers](./providers.md)**, **[Use Cases](./usecase.md)** and the **[Main](./application.md)** entry point of an ExpressoTS application used in the Opinionated template. #### Providers -Contain 3 providers: +Contain 2 providers: - application: This provider is a class that extend from the Application class from @expressots/core that provides the application **[Life Cycle Hooks](application.md#lifecycle-hooks)**. -- bindingType/singleton: This provider lets you bind a class as a singleton. We use this provider to bind the InMemoryDB class as a singleton so that we can use the same instance of the InMemoryDB class throughout the application. - - db-in-memory: This is a simple in-memory database provider that allows you to store data in memory. We use this provider in the User use cases to store and retrieve user data. :::info -bindingType and InMemoryDB provider is an example supplied to help you get started with a simple CRUD operation. You can remove this provider if you wish. +InMemoryDB provider is an example supplied to help you prototype endpoints quickly without having to worry about setting up a database. It is not intended to be used in production. You can replace it with your own database provider. ::: #### Use cases -The use cases in the Opinionated template are organized in 3 modules: +The use cases in the Opinionated template are organized in 2 modules: -- AppModule, PingModule and UserModule, providing some examples of usage of the ExpressoTS resources. For more information about modules, please check the **[Modules Section](./module.md)**. +- AppModule and UserModule, providing some examples of usage of the ExpressoTS resources. For more information about modules, please check the **[Modules Section](./module.md)**. Here are the endpoints in each module: @@ -175,36 +174,9 @@ The `main.ts` includes an async function that will bootstrap the ExpressoTS appl ##### Opinionated in its simple form ```typescript -// Using opinionated start project where App extends @expressots/core Application class -async function bootstrap() { - const app = App.create(container); - app.listen(3000, ServerEnvironment.Production); -} -``` - -##### Opinionated using .env - -```typescript -// Using the opinionated starter project where App extends Application class from @expressots/core -async function bootstrap() { - const app = App.create(container); - app.listen(3000, ServerEnvironment.Production, { - appName: ENV.Application.APP_NAME, - appVersion: ENV.Application.APP_VERSION, - }); -} - -// Or from .env async function bootstrap() { - const app = App.create(container); - app.listen( - ENV.Application.PORT, - ServerEnvironment[ENV.Application.ENVIRONMENT], - { - appName: ENV.Application.APP_NAME, - appVersion: ENV.Application.APP_VERSION, - } - ); + const app = await AppFactory.create(container, App); + await app.listen(3000, ServerEnvironment.Development); } bootstrap(); @@ -213,84 +185,29 @@ bootstrap(); ##### Non opinionated ```typescript -// Using the non-opinionated starter project where AppInstance is an instance of the Application class from @expressots/core async function bootstrap() { - const app = AppInstance.create(container); - app.listen(3000, ServerEnvironment.Development); + const app = await AppFactory.create(container, []); + await app.listen(3000, ServerEnvironment.Development); } bootstrap(); ``` -## Application or AppInstance +## AppExpress or Middleware To bootstrap an ExpressoTS application, there are two ways: -- Using the AppInstance: which is an instance of the Application class that provides the `create()` and `listen()` methods. -- Extending the Application class. By extending the Application class, you can take advantage of its built-in mechanisms for controlling the **[application life cycle hooks](application.md#application-lifecycle-hooks)**, such as injecting and executing services before, after, and during application shutdown. - -Application Instance - -```typescript -import { AppInstance, ServerEnvironment } from "@expressots/core"; -import { container } from "./app-container"; - -export async function bootstrap() { - const app = AppInstance.create(container); - app.listen(3000, ServerEnvironment.Development); -} - -bootstrap(); -``` - -Extending the Application class. Inside of the provider folder, create a folder called `application` and create a new file called `application.provider.ts` and add the following code: - -```typescript -import { Application, Environments, LogLevel, log } from "@expressots/core"; -import { provide } from "inversify-binding-decorators"; - -@provide(App) -class App extends Application { - protected configureServices(): void { - Environments.checkAll(); - } - - // eslint-disable-next-line @typescript-eslint/no-empty-function - protected postServerInitialization(): void {} - - protected serverShutdown(): void { - log(LogLevel.Info, "Server is shutting down", "logger-provider"); - super.serverShutdown(); - } -} - -const appInstance = new App(); - -export { appInstance as App }; -``` - -Application Bootstrap ignited by the extended Application class +- Non-opinionated template using the AppFactory to creates an instance of the default ExpressoTS adapter which is the Express.js. User can directly pass an array of middleware to the `AppFactory.create` method, which will be responsible for creating an Expressjs application with the provided middleware. This method of creating an ExpressoTS application exposes the Expressjs application instance, which can be used to add additional middleware or to configure the Expressjs application. -```typescript -import { App } from "@providers/application/application.provider"; -import { container } from "app-container"; -import { ServerEnvironment } from "@expressots/core"; - -async function bootstrap() { - const app = App.create(container); - app.listen(3000, ServerEnvironment.Development); -} - -bootstrap(); -``` +- Opinionated template using the AppFactory to create an AppExpress application. By using the App (AppExpress) class, you can take advantage of its built-in mechanisms for controlling the **[application life cycle hooks](application.md#application-lifecycle-hooks)**, such as injecting and executing services before, after, and during application shutdown. ## The container -In ExpressoTS, creating an application server to listen to inbound HTTP requests is not enough. The framework requires the creation of a container that organizes all application modules into a cohesive unit. Typically, this container is created in the app-container.ts file. The container is responsible for managing the application's dependencies. Read more about the `app-container` in the **[App Container](app-container.md)** section. +In ExpressoTS, creating an application server to listen to inbound HTTP requests is not enough. The framework requires the creation of a container that organizes all application modules into a cohesive unit. Typically, this container is created in the `app.container.ts` file. The container is responsible for managing the application's dependencies. Read more about the `app.container` in the **[App Container](app-container.md)** section. ### Application uses the container -After the container is created in the `app-container` file, the application can be created by passing the container as a parameter to the `AppInstance.create(container)` method or by extending the Application class. +After the container is created in the `app.container` file, the application can be created by passing the container as a parameter to the `AppFactory.create(container)` method. ### Injecting modules in the container @@ -308,7 +225,7 @@ After creating a module, the module can be added in the container, and after cre #### Application creation ```typescript -const app = AppInstance.create(container); +const app = await AppFactory.create(container); ``` #### Module injection @@ -316,7 +233,7 @@ const app = AppInstance.create(container); ```typescript const appContainer = new AppContainer(); -const container = appContainer.create([ +const container: Container = appContainer.create([ // Add your modules here AppModule, ]); @@ -325,7 +242,7 @@ const container = appContainer.create([ #### Controller injection ```typescript -const appModule = CreateModule([ +const appModule: ContainerModule = CreateModule([ // Add your controllers here AppController, ]); @@ -361,12 +278,38 @@ npm run prod Once the application is up and running, you can access it by navigating to `http://localhost:3000/`. ::: +## Deprecated features + +:::warning Deprecation warning +The following features are valid until version `1.9.0` as they were deprecated in favor of the new `@expressots/core` package version `2.0.0`. +::: + +### Opinionated Application Bootstrap (deprecated) + +```typescript +// Using opinionated start project where App extends @expressots/core Application class +async function bootstrap() { + const app = App.create(container); + app.listen(3000, ServerEnvironment.Production); +} +``` + +### Non opinionated Application Bootstrap (deprecated) + +```typescript +// Using the non-opinionated starter project where AppInstance is an instance of the Application class from @expressots/core +async function bootstrap() { + const app = AppInstance.create(container); + app.listen(3000, ServerEnvironment.Development); +} + +bootstrap(); +``` + ## Note ExpressoTS is a versatile framework that is not bound to any specific platform or technology. Leveraging popular Node.js libraries like InversifyJS and Express.js, it is designed to be lightweight, modular, customizable, and easy to use. Developers can expand the framework's capabilities by creating new providers that can be incorporated into their applications. -We are currently working on building the project RoadMap and plan to add support for other popular Node.js HTTP frameworks, like Fastify and Koa, to the platform. Additionally, as we move towards the future, we intend to eliminate some of the dependencies that are currently part of the framework's core, and replacing them with our own custom implementations to make the framework more secure, reliable and efficient. - --- ## Support the project diff --git a/docs/overview/img/app-life-cycle.png b/docs/overview/img/app-life-cycle.png index 78d1c38d4db0b6deb5f0132b775dd725fd96b2be..e12d9c46d449c72d76663c6558229f2b4fa27fc7 100644 GIT binary patch literal 128427 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 |=vk9!k{Lmp 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 StP?Iz(|K&DQSs0=`o91JfwV6G literal 43202 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 N%8Kd=1(z*?{sBD?#54c^ diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/overview/application.md b/i18n/pt/docusaurus-plugin-content-docs/current/overview/application.md index 99378e90..33d36c3c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/overview/application.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/overview/application.md @@ -4,96 +4,92 @@ sidebar_position: 2 # Aplicação -A Visão Geral da Aplicação fornece uma demonstração abrangente dos principais componentes de uma aplicação ExpressoTS. No coração de uma aplicação ExpressoTS encontra-se a classe Application, que serve como base para criar e configurar o servidor. Além disso, a classe Application faz uso do container de aplicação do Inversify que carrega todos os módulos, incluindo suas respectivas rotas [controllers]. Isso garante um processo simplificado e eficiente para lidar com as solicitações de entrada e fornecer as respostas apropriadas. +A Visão Geral da Aplicação oferece uma demonstração abrangente dos principais componentes de uma aplicação ExpressoTS. No coração de uma aplicação ExpressoTS está a classe Application. Ela serve como base para criar e configurar o servidor. Além disso, a classe Application utiliza o container de aplicação do Inversify para carregar todos os módulos, incluindo suas respectivas rotas [controladores]. Isso garante um processo eficiente para lidar com solicitações recebidas e entregar as respostas apropriadas. -![Application Overiview](./img/app-overview.png) +![Visão Geral da Aplicação](./img/app-overview.png) -ExpressoTS é um framework para aplicações web que fornece uma camada simples de abstração em torno de servidores HTTP populares como **[Express](https://expressjs.com)**, **[Fastify](https://www.fastify.io/)**, ou **[Koa](https://koajs.com/)**. +ExpressoTS é um framework de aplicação web que fornece um invólucro em torno de servidores HTTP populares, incluindo **[Express](https://expressjs.com)** e **[Fastify](https://www.fastify.io/)**. :::info -Atualmente, o ExpressoTS suporta apenas o Express, pois testamos minuciosamente essa integração. +Atualmente, apenas o Express foi completamente testado pela equipe ExpressoTS. O adaptador Fastify está em desenvolvimento. ::: -A arquitetura de uma aplicação ExpressoTS é baseado no **[Inversify's](https://inversify.io/)** Container IoC, que é usado para identificar e injetar dependências nos construtores de classes. Essa abordagem permite que o contêiner IoC carregue todos os módulos necessários, incluindo suas rotas (controladores) respectivas. Ao usar casos de uso e provedores conforme necessário, os roteadores podem lidar com solicitações recebidas. +A arquitetura de uma aplicação ExpressoTS é construída em torno do container IoC **[Inversify](https://inversify.io/)**, que é usado para identificar e injetar dependências nos construtores das classes. Essa abordagem permite que o container IoC carregue todos os módulos necessários, incluindo suas respectivas rotas (controladores). Ao utilizar casos de uso e provedores conforme necessário, os roteadores podem lidar com solicitações recebidas. -Ao aproveitar o poder do Inversify, o ExpressoTS fornece uma arquitetura escalável e modular que ajuda a desacoplar componentes e melhorar a manutenção do código. Isso permite que os desenvolvedores se concentrem em escrever um código limpo e fácil de manter, em vez de se preocupar com a gestão de dependências. +Ao aproveitar o poder do Inversify, o ExpressoTS fornece um sistema personalizado de Injeção de Dependência que é escalável e modular. Isso cria uma arquitetura que ajuda a desacoplar componentes e melhorar a manutenibilidade, permitindo que os desenvolvedores se concentrem em escrever código limpo e sustentável. -## Detalhe dos componentes da aplicação +## Descrição dos Componentes da Aplicação -| Componente | Descrição | -| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| DTO IN / OUT | Objeto de transferência de dados que define o formato do payload de entrada e saída da aplicação. | -| Controller | Componente responsável por processar solicitações e respostas com base na URL e no método HTTP. Ele também valida a conformidade dos dados recebidos. | -| Use Case | Componente responsável por implementar a lógica necessária para manipular as solicitações recebidas do controlador. Quando o controlador recebe uma solicitação HTTP e valida os dados recebidos, ele aciona o caso de uso relevante, passando os dados validados para processamento. O caso de uso executa as operações necessárias com base na solicitação e retorna a resposta apropriada ao controlador, que envia a resposta de volta ao cliente. | -| Provider | Componente responsável por fornecer funcionalidades externas à aplicação. | -| Repository | Componente responsável por fornecer acesso ao banco de dados. | +| Componente | Descrição | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| DTO IN / OUT | Objeto de transferência de dados que define o formato da carga útil de entrada e saída da aplicação. | +| Controlador | Componente responsável pelo processamento de solicitações e respostas com base na URL e no método HTTP. Também valida a conformidade dos dados recebidos. | +| Caso de Uso | Componente responsável por implementar a lógica necessária para lidar com solicitações recebidas do controlador. Quando o controlador recebe uma solicitação HTTP e valida os dados recebidos, ele aciona o caso de uso relevante, passando os dados validados para processamento. O caso de uso executa as operações necessárias com base na solicitação e retorna a resposta apropriada ao controlador, que, em seguida, envia a resposta de volta ao cliente. | +| Provedor | Componente responsável por fornecer funcionalidade externa à aplicação. | +| Repositório | Componente responsável por fornecer camada de comunicação com o banco de dados. Facilitando conexão e operações CRUD. | :::info -Provedores e repositórios são componentes opcionais. Você pode usá-los se precisar fornecer funcionalidade externa ou acesso ao banco de dados. +Provedores e Repositórios são componentes opcionais. Você pode usá-los se precisar fornecer funcionalidade extra à sua aplicação, como integração de banco de dados, sistema de logs, autenticação, email, etc. ::: ## Fluxo de Trabalho -O fluxo de trabalho de uma aplicação ExpressoTS é direto, conforme mostrado no diagrama acima. +O fluxo de trabalho de uma aplicação ExpressoTS é direto, como mostrado no diagrama acima. -1. Após inicializar a aplicação com todos os seus componentes, incluindo o contêiner, módulos e controladores, o servidor começa a ouvir as solicitações recebidas. -2. Quando uma solicitação é recebida, o servidor procura a rota correspondente e executa o controlador associado, que geralmente expõe endpoints. -3. O controlador então chama o caso de uso relevante, que por sua vez chama o provedor apropriado quando necessário. Os provedores são componentes externos que oferecem funcionalidade adicional à aplicação. +1. Após inicializar a aplicação com todos os seus componentes, incluindo o container, módulos e controladores, o servidor começa a escutar por solicitações recebidas. +2. Quando uma solicitação é recebida, o servidor procura pela rota correspondente e executa o controlador associado, que normalmente expõe endpoints. +3. O controlador então chama o caso de uso relevante, que por sua vez chama o provedor apropriado quando necessário. Provedores são componentes externos que oferecem funcionalidade adicional à aplicação. -:::warning Inicialização da aplicação sem controladores -O ExpressoTS irá impedir que você faça isso, pois não há ouvintes para lidar com as solicitações recebidas. Você verá a seguinte mensagem no console: -**_Nenhum controlador foi encontrado! Por favor, certifique-se de registrar pelo menos um controlador._** +:::warning Inicializando a Aplicação sem um controlador +O ExpressoTS impedirá você de inicializar a Aplicação sem um controlador, já que não há ouvintes para lidar com solicitações recebidas. Você verá a seguinte mensagem no console: +**_Nenhum controlador foi encontrado! Certifique-se de ter registrado pelo menos um Controlador._** ::: -## Classe Aplication +## Classe AppExpress -A classe Application oferece uma forma de criar e configurar o servidor, passando **[Express.js middlewares](https://expressjs.com/en/guide/writing-middleware.html)** ou outro middlewares durante a criação do servidor. +A classe AppExpress oferece uma forma de criar e configurar o servidor, passando **[middlewares do Express.js](https://expressjs.com/en/guide/writing-middleware.html)** ou outros middlewares na criação do servidor. -Definição da classe Aplication +Para criar uma instância de aplicação ExpressoTS, usamos a classe `AppFactory`, que é responsável por criar a instância da aplicação e inicializar o container, módulos e controladores. A função `create()` retorna um IApplicationExpress que fornece um conjunto de métodos para configurar o servidor, incluindo o método `listen()`, que inicia o servidor e escuta por solicitações recebidas. + +### Definição da Classe AppExpress ```typescript -class Application { +class AppExpress { /** - * Configure os serviços que devem ser inicializados antes que o servidor seja iniciado. + * Configure serviços que devem ser inicializados antes do início do servidor. */ protected configureServices(): void {} /** - * Configurar serviços que devem ser executados após a inicialização do servidor. + * Configure serviços que devem ser executados após o início do servidor. */ protected postServerInitialization(): void {} /** - * Execute ações ou limpeza após o desligamento do servidor. + * Execute ações ou limpeza após o encerramento do servidor. */ - protected serverShutdown(): void { - process.exit(0); - } + protected serverShutdown(): void {} - public create( + public async create( container: Container, - middlewares: express.RequestHandler[] = [] - ): Application {} + middlewares: Array = [] + ): Promise {} - public listen( + public async listen( port: number, environment: ServerEnvironment, consoleMessage?: IApplicationMessageToConsole - ) {} + ): Promise {} } ``` -:::info -Também fornecemos uma instância da classe Application chamada **AppInstance**, que expõe apenas os métodos create e listen para o desenvolvedor. Isso é benéfico quando você precisa criar rapidamente um servidor sem ter que criar uma nova classe que estenda a classe Application e acessar seus métodos de ciclo de vida. -::: - -### Método create da aplicação +### Método Create -O método Create permite que os desenvolvedores passem o contêiner e os middlewares para o servidor. Para passar middlewares não é necessário usar `app.use()`, basta passar o middleware e sua configuração conforme demonstrado abaixo: +O método `create()` permite aos desenvolvedores passar o container, middlewares e adaptadores de servidor HTTP para o servidor. Para passar um middleware, você não precisa usar `app.use()`, basta passar o middleware e sua configuração como demonstrado abaixo: ```typescript async function Bootstrap() { - App.create(container, [ + await AppFactory.create(container, [ express.json(), express.urlencoded({ extended: true }), cors({ @@ -103,74 +99,112 @@ async function Bootstrap() { } ``` -### Método listen da aplicação +:::info +Adaptadores são usados para criar o servidor. Atualmente, o Express é o único adaptador disponível. O adaptador Fastify está em desenvolvimento. +Ao criar uma instância de aplicação, você pode passar o adaptador como o terceiro parâmetro. Se você não passar o adaptador, o Express é usado por padrão. +::: + +### Método Listen -O método listen inicia o servidor e escuta as solicitações recebidas. No método listen, os desenvolvedores podem definir não apenas o número da porta, mas também o ambiente do servidor, que pode ser de desenvolvimento, preparação ou produção. Assim como os desenvolvedores podem definir o nome e a versão do aplicativo a ser exibido no console quando o servidor for iniciado, conforme exemplo a seguir: +O método `listen()` inicia o servidor e fica à espera de solicitações recebidas. No método listen, os desenvolvedores podem definir o número da porta e o ambiente do servidor, que pode ser desenvolvimento, homologação ou produção. Os desenvolvedores também podem configurar o nome e a versão do aplicativo para serem exibidos no console quando o servidor for iniciado, conforme mostrado no exemplo a seguir: ```typescript // App listen method app.listen(3000, ServerEnvironment.Development, { - appName: "Your App Name", - appVersion: "v1.0.0" -}) + appName: "Your App Name", + appVersion: "v1.0.0", +}); ``` :::tip -O nome e a versão do seu aplicativo podem ser configurados por meio do arquivo .env ou do arquivo package.json. No modelo opinativo, usamos o arquivo package.json para recuperar o nome e a versão do aplicativo. +O nome e a versão do seu aplicativo podem ser configurados por meio do arquivo .env ou do arquivo package.json. No template opinativo, usamos o arquivo package.json para recuperar o nome e a versão do aplicativo. ::: -### Enum Server Environment da aplicação +### Ambiente do Servidor da Aplicação -Por enquanto, essa funcionalidade é um trabalho em progresso. O que ela faz é exibir o ambiente no console quando o servidor é iniciado. A mensagem colorida no console ajuda os desenvolvedores a identificar rapidamente o ambiente em que o servidor está sendo executado. +Este é um enum que define o ambiente do servidor. Atualmente, os ambientes suportados são desenvolvimento e produção. Após a inicialização do servidor, a estrutura subjacente procurará a variável de ambiente NODE_ENV e definirá o ambiente do servidor de acordo. Se a variável de ambiente NODE_ENV não for definida, o ambiente do servidor será configurado como desenvolvimento por padrão. -Aqui está o enum disponível do ambiente do servidor: +Além disso, no provedor da aplicação, o usuário pode realizar lógica condicional com base no ambiente do servidor. + +```typescript +if (this.isDevelopment()) { + // your logic here +} +``` + +Aqui estão os valores do enum disponíveis para ambientes de servidor: ```typescript ServerEnvironment.Development; -ServerEnvironment.Staging; ServerEnvironment.Production; ``` -:::caution AVISO DE SPOILER -O objetivo dessa funcionalidade é permitir que os desenvolvedores carreguem variáveis de ambiente com base no ambiente em que o servidor está sendo executado. Por exemplo, se o servidor estiver rodando em desenvolvimento, carregue o arquivo .env.dev, se o servidor estiver rodando em staging, carregue o arquivo .env.stg, e se o servidor estiver rodando em produção, carregue o .env.prod arquivo. Além disso, estamos planejando carregar variáveis de ambiente de fontes remotas, como AWS Parameter Store, AWS Secrets Manager, Azure Key, Vault, etc. -::: +## Provedor da Classe App -## Hooks de ciclo de vida da aplicação +O provedor da classe App é o coração do template opinativo da aplicação. É responsável por inicializar a aplicação e fornecer funcionalidades a serem configuradas no processo de inicialização do servidor. Você pode fazer uso dos middlewares e provedores integrados para configurar sua aplicação. -Outro aspecto importante da classe Application são os life cycle hooks. Esses hooks permitem que os desenvolvedores executem código antes, depois e no desligamento do servidor. É importante observar que, para aproveitar esses hooks, os desenvolvedores devem criar uma classe App estendendo a classe Application e substituir os métodos conforme necessário. O exemplo a seguir mostra os life cycle hooks disponíveis no momento: +```typescript +class App extends AppExpress { + private middleware: IMiddleware; + private provider: IProvider; + + constructor() { + super(); + this.middleware = container.get(Middleware); + this.provider = container.get(Provider); + } + + protected configureServices(): void { + this.middleware.addBodyParser(); + this.middleware.setErrorHandler(); + } + + protected postServerInitialization(): void { + if (this.isDevelopment()) { + this.provider.envValidator.checkAll(); + } + } + + protected serverShutdown(): void {} +} +``` + +O provedor da classe App oferece um conjunto de middlewares e provedores prontos para uso que podem ser usados para configurar sua aplicação. Explore as interfaces `IMiddleware` e `IProvider` para ver o que está disponível. + +## Hooks do Ciclo de Vida da Classe App + +Outro aspecto importante da classe de Aplicação são os hooks do ciclo de vida. Esses hooks permitem que os desenvolvedores executem código antes, depois e na desligamento do servidor. É importante observar que, para tirar proveito desses hooks, os desenvolvedores devem criar uma classe App que estenda a classe Application e substituir os métodos conforme necessário. O seguinte exemplo mostra os hooks do ciclo de vida disponíveis no momento: ```typescript - /* Execute serviços antes do servidor iniciar */ + /* Add any service that you want to be initialized before the server starts */ protected configureServices(): void { } - /* Execute serviços depois do servidor iniciar */ + /* Add any service that you want to execute after the server starts */ protected postServerInitialization(): void { } - /* Execute serviços ao servidor ser desligado */ - protected serverShutdown(): void { - process.exit(0); - } + /* Add any service that you want to execute after server is shutdown */ + protected serverShutdown(): void { } ``` -### Ordem de execução dos Hooks +### Hooks Execution Order -![Hooks de ciclo de vida da aplicação](./img/app-life-cycle.png) +![Application Lifecycle Hooks](./img/app-life-cycle.png) -## Scripts da aplicação +## Scripts da Aplicação -Por favor, veja abaixo todos os scripts disponíveis que você pode usar para executar, construir e testar sua aplicação. -A coluna de comando mostra NPM como gerenciador de pacotes, mas você pode usar Yarn ou qualquer outro gerenciador de pacotes de sua escolha. +Abaixo estão os scripts usados para executar, construir e testar sua aplicação. +A coluna de comandos mostra o NPM como gerenciador de pacotes, mas você pode usar o gerenciador de pacotes de sua escolha. -| Script | Descrição | Comando | -| ----------- | ---------------------------------------------------- | ---------------------------- | -| build | Constrói o pacote de produção na pasta ./dist. | npm run build | -| dev | Executa em modo de desenvolvimento com observação. | npm run dev | -| prod | Executa em modo de produção com base no pacote built. | npm run prod | -| test | Executa os testes localizados na pasta test. | npm run test | -| test:watch | Executa os testes em modo de observação e interativo. | npm run test:watch | -| test:cov | Gera relatorio de cobertura de testes. | npm run test:cov | -| format | Formatar código usando prettier. | npm run format | -| lint | Lint código usando eslint. | npm run lint | +| Script | Descrição | Comando | +| ---------- | ----------------------------------------------------- | ------------------ | +| build | Constrói o pacote de produção na pasta ./dist. | npm run build | +| dev | Executa em modo de desenvolvimento com observação. | npm run dev | +| prod | Executa em modo de produção com base no pacote built. | npm run prod | +| test | Executa os testes localizados na pasta test. | npm run test | +| test:watch | Executa os testes em modo de observação e interativo. | npm run test:watch | +| test:cov | Gera relatorio de cobertura de testes. | npm run test:cov | +| format | Formatar código usando prettier. | npm run format | +| lint | Lint código usando eslint. | npm run lint | ## Executando a aplicação @@ -181,16 +215,3 @@ npm run dev Dependendo do ambiente em que está executando a aplicação, você verá a seguinte mensagem no console: `expressots-demo version 1.0.0 is running on port 3000 - Environment: development` - ---- - -## Apoie o projeto - -ExpressoTS é um projeto de código aberto licenciado sob o MIT. É um projeto independente com desenvolvimento contínuo possibilitado graças ao seu suporte. Se você deseja ajudar, por favor considere: - -- Se tornar um **[Sponsor no GitHub](https://github.com/sponsors/expressots)** -- Siga a **[organização](https://github.com/expressots)** no GitHub e de um Star ⭐ no projeto -- Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)** -- Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)** -- Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)** -- Compartilhe o projeto com seus amigos e colegas \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/overview/decorators.md b/i18n/pt/docusaurus-plugin-content-docs/current/overview/decorators.md index 385cc654..9bf4b8f9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/overview/decorators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/overview/decorators.md @@ -10,51 +10,51 @@ Aqui está uma lista completa de todos os decoradores que estão disponíveis no Decoradores disponíveis para suas classes. -| Decoradores | Descrição | -| ----------- | ------------------------------------------------------------------------------- | -| @provide | Vincula a classe ao container de injeção de dependência. | -| @provideSingleton | Vincula a classe ao contêiner de injeção de dependência como Singleton. | -| @provideTransient | Vincula a classe ao contêiner de injeção de dependência como Transient. | -| @injectable | Marca a classe como disponível para ser injetada. | -| @inject | Marca a classe como disponível para ser injetada no construtor de outra classe. | +| Decoradores | Descrição | +| ----------------- | ------------------------------------------------------------------------------- | +| @provide | Vincula a classe ao container de injeção de dependência. | +| @provideSingleton | Vincula a classe ao contêiner de injeção de dependência como Singleton. | +| @provideTransient | Vincula a classe ao contêiner de injeção de dependência como Transient. | +| @injectable | Marca a classe como disponível para ser injetada. | +| @inject | Marca a classe como disponível para ser injetada no construtor de outra classe. | ## Decoradores do controlador Decoradores disponíveis para seus controladores. -| Decoradores | Descrição | Exemplo de Uso -| ----------- | ------------------------------ | ------------------------------------------------------------ | +| Decoradores | Descrição | Exemplo de Uso | +| ----------- | ------------------------------------------ | ------------------------------------------------------------ | | @controller | Marca a classe como controlador injetável. | @controller("/path", middleware[]) | -| @scope | Vincula um controlador a um escopo. | @scope(BindingScopeEnum.Singleton, ou Request, ou Transient) | +| @scope | Vincula um controlador a um escopo. | @scope(BindingScopeEnum.Singleton, ou Request, ou Transient) | ### Decoradores de métodos HTTP Decoradores disponíveis para seus métodos de controlador. -| Decorador | Descrição | Uso | -| ----------- | ------------------------------------------------------------------ | ---------------------------- | -| @httpGet | Vincula um método de controlador a um verbo HTTP GET. | @httpGet("/path") | -| @httpPost | Vincula um método de controlador a um verbo HTTP POST. | @httpPost("/path") | -| @httpPut | Vincula um método de controlador a um verbo HTTP PUT. | @httpPut("/path") | -| @httpPatch | Vincula um método de controlador a um verbo HTTP PATCH. | @httpPatch("/path") | -| @httpHead | Vincula um método de controlador a um verbo HTTP HEAD. | @httpHead("/path") | -| @httpDelete | Vincula um método de controlador a um verbo HTTP DELETE. | @httpDelete("/path") | -| @httpMethod | Vincula um método de controlador a um verbo HTTP especificado. | @httpMethod("verb", "/path") | +| Decorador | Descrição | Uso | +| --------- | -------------------------------------------------------------- | ------------------------ | +| @Get | Vincula um método de controlador a um verbo HTTP GET. | @Get("/path") | +| @Post | Vincula um método de controlador a um verbo HTTP POST. | @Post("/path") | +| @Put | Vincula um método de controlador a um verbo HTTP PUT. | @Put("/path") | +| @Patch | Vincula um método de controlador a um verbo HTTP PATCH. | @Patch("/path") | +| @Head | Vincula um método de controlador a um verbo HTTP HEAD. | @Head("/path") | +| @Delete | Vincula um método de controlador a um verbo HTTP DELETE. | @Delete("/path") | +| @Method | Vincula um método de controlador a um verbo HTTP especificado. | @Method("verb", "/path") | ### Decoradores de parâmetros Aqui está uma lista de todos os decoradores de parâmetros disponíveis no ExpressoTS, juntamente com sua descrição e uso: -| Decorador | Descrição | Uso -| ------------------------------------ | ------------------------------------------------------ | -------------------------------------------------------- | -| @request() | Injeta objeto Express Request. | execute(@request() req: Request) -| @response() | Injeta objeto Express Response. | execute(@response() res: Response) -| @requestParam(paramName?: string) | Injeta um parâmetro da URL da solicitação. | execute(@requestParam('id') id: string) -| @queryParam(paramName?: string) | Injeta um parâmetro da string de consulta da URL da solicitação. | execute(@queryParam('searchTerm') searchTerm: string) -| @requestBody() | Injeta a carga útil do corpo da solicitação. | execute(@requestBody() body: MyDTO) -| @requestHeaders(headerName?: string) | Injeta um cabeçalho dos cabeçalhos da solicitação. | execute(@requestHeaders('authorization') auth: string) -| @cookies(cookieName?: string) | Injeta um cookie dos cookies da solicitação. | execute(@cookies('session') session: string) -| @next() | Injeta o objeto NextFunction do Express. | execute(@next() next: NextFunction) +| Decorador | Descrição | Uso | +| ----------------------------- | ---------------------------------------------------------------- | ------------------------------------------------ | +| @request() | Injeta objeto Express Request. | execute(@request() req: Request) | +| @response() | Injeta objeto Express Response. | execute(@response() res: Response) | +| @param(paramName?: string) | Injeta um parâmetro da URL da solicitação. | execute(@param('id') id: string) | +| @query(paramName?: string) | Injeta um parâmetro da string de consulta da URL da solicitação. | execute(@query('searchTerm') searchTerm: string) | +| @body() | Injeta a carga útil do corpo da solicitação. | execute(@body() body: MyDTO) | +| @headers(headerName?: string) | Injeta um cabeçalho dos cabeçalhos da solicitação. | execute(@headers('authorization') auth: string) | +| @cookies(cookieName?: string) | Injeta um cookie dos cookies da solicitação. | execute(@cookies('session') session: string) | +| @next() | Injeta o objeto NextFunction do Express. | execute(@next() next: NextFunction) | --- @@ -67,4 +67,4 @@ ExpressoTS é um projeto de código aberto licenciado sob o MIT. É um projeto i - Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)** - Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)** - Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)** -- Compartilhe o projeto com seus amigos e colegas \ No newline at end of file +- Compartilhe o projeto com seus amigos e colegas diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/overview/dependencies.md b/i18n/pt/docusaurus-plugin-content-docs/current/overview/dependencies.md index 09b54015..f60cb978 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/overview/dependencies.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/overview/dependencies.md @@ -14,12 +14,11 @@ Nosso objetivo é manter o número de dependências o mais baixo possível, tent Enquanto isso, vamos continuar monitorando de perto as dependências, utilizando ferramentas como o **[Dependabot](https://dependabot.com/)** para mantê-las atualizadas e também utilizando ferramentas como o **[Snyk](https://snyk.io/)** para ficar de olho nos riscos de segurança. -## Pacotes Utilitários +## Pacotes Utilitários (Dependencias de Desenvolvimento) - @commitlint/cli: Lint mensagens de commit - @commitLint/config-conventional: Lint mensagens de commit - @release-it/conventional-changelog: Gera changelog -- chalk: Estilo para terminal - dotenv: Carregar variáveis de ambiente - husky: Git hooks - prettier: Formatador de códigos @@ -31,15 +30,13 @@ Enquanto isso, vamos continuar monitorando de perto as dependências, utilizando - express: Servidor Http - inversify: IoC container -- inversify-express-utils: Integração do inversify para o Express - inversify-binding-decorators: Decoradores do inversify -- winston: Lib de log - reflect-metadata: Polyfill para metadados e reflexão ## Teste -- jest: Framework de teste -- ts-jest: Suporte para typescript no jest +- vitest: Framework de teste +- vite: Vitest's requerimento --- @@ -52,4 +49,4 @@ ExpressoTS é um projeto de código aberto licenciado sob o MIT. É um projeto i - Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)** - Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)** - Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)** -- Compartilhe o projeto com seus amigos e colegas \ No newline at end of file +- Compartilhe o projeto com seus amigos e colegas diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/overview/first-steps.md b/i18n/pt/docusaurus-plugin-content-docs/current/overview/first-steps.md index 84c7969f..f5d51cfe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/overview/first-steps.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/overview/first-steps.md @@ -4,21 +4,21 @@ sidebar_position: 1 # Primeiros Passos -Nesta seção, você vai conhecer alguns dos conceitos fundamentais do ExpressoTS. Para se familiarizar com o framework e seus blocos de construção, vamos guiá-lo através do processo de criação de um projeto simples. Isso ajudará você a entender alguns dos conceitos iniciais do framework e começar a trabalhar com o ExpressoTS. +Nesta seção, você vai mergulhar nos conceitos centrais do ExpressoTS para se familiarizar com o framework e seus componentes básicos. -## ExpressoTS, A ideia +## A Tecnologia -Nós acreditamos no poder das linguagens fortemente tipadas, e o **[TypeScript](https://www.typescriptlang.org/)** é essencial quando se trata de estruturar ou construir aplicações em larga escala no **[NodeJS](https://nodejs.org/)**. No exemplo que demonstraremos, utilizaremos principalmente o TypeScript, e aqui estão os motivos pelos quais o TypeScript é benéfico para o seu projeto: +Acreditamos no poder de linguagens fortemente tipadas, e o **[TypeScript](https://www.typescriptlang.org/)** é essencial quando se trata de estruturar ou construir aplicações em larga escala em **[NodeJS](https://nodejs.org/)**. No exemplo a seguir, usaremos principalmente TypeScript, e aqui estão as razões pelas quais usamos TypeScript: -- Melhora na qualidade do código: A tipagem forte ajuda a capturar erros e bugs no momento da compilação, em vez de em tempo de execução, o que ajuda a melhorar a qualidade geral do código. Isso pode levar a menos falhas e problemas com o código em produção. +- Melhoria da qualidade do código: Tipagem forte ajuda a pegar erros e bugs em tempo de compilação, ao invés de em tempo de execução, o que ajuda a melhorar a qualidade geral do código. Isso pode levar a menos falhas e problemas com o código em produção. -- Melhor escalabilidade: A tipagem forte pode ajudar a tornar o código mais escalável, permitindo refatoração e manutenção mais fácil. Isso ocorre porque a tipagem forte garante que as mudanças no código sejam consistentes e previsíveis, tornando mais fácil adicionar novos recursos ou modificar os existentes. +- Melhor escalabilidade: A tipagem forte pode ajudar a tornar o código mais escalável, permitindo refatorações e manutenções mais fáceis. Isso ocorre porque a tipagem forte garante que as alterações no código sejam consistentes e previsíveis, tornando mais fácil adicionar novos recursos ou modificar os existentes. -- Aumento de produtividade: A tipagem forte pode aumentar a produtividade do desenvolvedor, fornecendo uma melhor ferramenta e suporte do editor, como preenchimento automático de código, inferência de tipo e refatoração automática. Isso pode ajudar os desenvolvedores a escreverem código mais rápido e com menos erros. +- Aumento da produtividade: A tipagem forte pode aumentar a produtividade do desenvolvedor, fornecendo melhores ferramentas e suporte do editor, como conclusão de código, inferência de tipo e refatoração automática. Isso pode ajudar os desenvolvedores a escrever código mais rápido e com menos erros. -- Melhora na colaboração: A tipagem forte pode tornar mais fácil para os desenvolvedores colaborarem, fornecendo uma compreensão compartilhada dos tipos e interfaces usados na base de código. Isso pode ajudar a reduzir mal-entendidos e inconsistências e tornar mais fácil para os desenvolvedores trabalharem juntos na mesma base de código. +- Melhoria da colaboração: A tipagem forte pode facilitar a colaboração entre desenvolvedores, fornecendo um entendimento compartilhado dos tipos e interfaces usados no código-fonte. Isso pode ajudar a reduzir mal-entendidos e inconsistências e tornar mais fácil para os desenvolvedores trabalharem juntos no mesmo código-fonte. -- Melhoria na documentação: A tipagem forte pode ajudar a tornar o código mais auto-documentado, fornecendo uma descrição clara e concisa dos tipos e interfaces usados no código. Isso pode ajudar a reduzir a necessidade de extensos comentários e documentação, tornando o código mais fácil de entender e manter. +- Melhor documentação: A tipagem forte pode ajudar a tornar o código auto-documentado, fornecendo uma descrição clara e concisa dos tipos e interfaces usados no código. Isso pode ajudar a reduzir a necessidade de comentários extensos e documentação, tornando o código mais fácil de entender e manter. ## Pre-requisito @@ -49,9 +49,9 @@ ExpressoTS oferece duas opções de modelos de projetos: - Opinativo: O modelo opinativo é feito para projetos mais complexos, já que fornece uma estrutura de projeto mais robusta e uma arquitetura em camadas. - Não-opinativo: Quer ter a liberdade de construir e estruturar seu projeto como desejar? O modelo não-opinativo oferece uma estrutura simples, com apenas os arquivos necessários para começar. -::: + ::: -Depois de criar seu projeto, com o `nome-do-projeto` desejado e dependendo do tipo de projeto selecionado, seu projeto terá uma estrutura de pasta e arquivo diferente. Aqui estão as estruturas específicas de pasta e arquivo para cada tipo de projeto: +Depois de criar seu projeto, com o `` desejado e dependendo do tipo de projeto selecionado, seu projeto terá uma estrutura de pasta e arquivo diferente. Aqui estão as estruturas específicas de pasta e arquivo para cada tipo de projeto: ### Template não-opinativo @@ -67,14 +67,14 @@ nome-do-projeto/ │ ├── app.usecase.spec.ts ``` -| Nome do Arquivo | Descrição -| --------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `app-container.ts` | O container do Inversify Server é responsável por organizar todos os módulos da aplicação em uma unidade coesa. | -| `app.controller.ts` | Um controller básico com uma rota simples. | -| `app.module.ts` | Módulo da aplicação. | -| `app.usecase.ts` | Um caso de uso com único método, chamado `execute()`. | -| `main.ts` | O ponto de partida de uma aplicação ExpressoTS. | -| `app.usecase.spec.ts` | Exemplo de test unitário do app.usecase. | +| Nome do Arquivo | Descrição | +| --------------------- | --------------------------------------------------------------------------------------------------------------- | +| `app-container.ts` | O container do Inversify Server é responsável por organizar todos os módulos da aplicação em uma unidade coesa. | +| `app.controller.ts` | Um controller básico com uma rota simples. | +| `app.module.ts` | Módulo da aplicação. | +| `app.usecase.ts` | Um caso de uso com único método, chamado `execute()`. | +| `main.ts` | O ponto de partida de uma aplicação ExpressoTS. | +| `app.usecase.spec.ts` | Exemplo de test unitário do app.usecase. | ### Template opinativo @@ -121,41 +121,39 @@ nome-do-projeto/ │ ├── env.ts │ ├── main.ts ├── test/ -│ ├── ping.usecase.spec.ts +│ ├── app.usecase.spec.ts ``` -| Nome do Arquivo | Descrição -| --------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| `entities/` | Esta pasta contém as definições de classe, ou modelos com seus atributos, propriedades e métodos. | -| `providers/` | Esta pasta contém a camada responsável por fornecer recursos externos para a aplicação, também conhecida como adaptadores.| -| `repositories/` | Pasta adicional contendo um exemplo de implementação do padrão de repositório, comunicação com a camada do banco de dados.| -| `useCases/` | A pasta de casos de uso contém a implementação dos casos de uso das operações que podem ser realizadas na aplicação. | -| `app.container.ts` | O container do Inversify Server é responsável por organizar todos os módulos da aplicação em uma unidade coesa. | -| `env.ts` | Este é um recurso de utilidade que mapeia as variáveis .env. | -| `main.ts` | O ponto de entrada principal de uma aplicação ExpressoTS. | -| `ping.usecase.spec.ts` | Um teste unitário básico para o ping.usecase. | +| Nome do Arquivo | Descrição | +| --------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `entities/` | Esta pasta contém as definições de classe, ou modelos com seus atributos, propriedades e métodos. | +| `providers/` | Esta pasta contém a camada responsável por fornecer recursos externos para a aplicação, também conhecida como adaptadores. | +| `repositories/` | Pasta adicional contendo um exemplo de implementação do padrão de repositório, comunicação com a camada do banco de dados. | +| `useCases/` | A pasta de casos de uso contém a implementação dos casos de uso das operações que podem ser realizadas na aplicação. | +| `app.container.ts` | O container do Inversify Server é responsável por organizar todos os módulos da aplicação em uma unidade coesa. | +| `env.ts` | Este é um recurso de utilidade que mapeia as variáveis .env. | +| `main.ts` | O ponto de entrada principal de uma aplicação ExpressoTS. | +| `app.usecase.spec.ts` | Um teste unitário básico para o app.usecase. | Informações adicionais sobre **[Provedores](./providers.md)**, **[Casos de Uso](./usecase.md)** e o exemplo **[Main](./application.md)** fornecidos no projeto modelo Opinionated. #### Provedores -Existe 3 provedores: +Existe 2 provedores: - application: Esse provedor permite estender a classe Application do @expressots/core, que fornece os **[Life Cycle Hooks](application.md#lifecycle-hooks)**. -- bindingType/singleton: Esse provedor permite ligar uma classe como um singleton. Usamos esse provedor para vincular a classe InMemoryDB como um singleton, para que possamos usar a mesma instância da classe InMemoryDB em toda a aplicação. - - db-in-memory: Esse é um provedor de banco de dados simples em memória que permite armazenar dados em memória. Usamos esse provedor nos casos de uso de usuário para armazenar e recuperar dados de usuário. -:::info -bindingType and InMemoryDB Os provedores são exemplos fornecidos para ajudá-lo a começar. Você pode removê-los se desejar. +::info +InMemoryDB provider is an example supplied to help you prototype endpoints quickly without having to worry about setting up a database. It is not intended to be used in production. You can replace it with your own database provider. ::: #### Caso de uso -Os casos de uso no modelo Opinativo são organizados em 3 módulos: +Os casos de uso no modelo Opinativo são organizados em 2 módulos: -- AppModule, PingModule e UserModule, fornecendo alguns exemplos de utilização dos recursos do ExpressoTS. Para obter mais informações sobre os módulos, consulte a **[Seção de Módulos](./module.md)**. +- AppModule e UserModule, fornecendo alguns exemplos de uso dos recursos do ExpressoTS. Para mais informações sobre módulos, consulte a **[Seção de Módulos](./module.md)**. Aqui estão os endpoints em cada módulo: @@ -220,88 +218,38 @@ async function bootstrap() { bootstrap(); ``` -## Application ou AppInstance - -Para inicializar um aplicativo ExpressoTS, existem duas maneiras: - -- Usando o AppInstance: que é uma instância da classe Application que fornece os métodos `create()` e `listen()`. -- Estendendo a classe Application. Ao estender a classe Application, você pode tirar proveito de seus mecanismos integrados para controlar o **[ganchos do ciclo de vida do aplicativo](application.md#application-lifecycle-hooks)**, como injetar e executar serviços antes, depois e durante o desligamento do aplicativo. - -Application Instance - -```typescript -import { AppInstance, ServerEnvironment } from "@expressots/core"; -import { container } from "./app-container"; - -export async function bootstrap() { - const app = AppInstance.create(container); - app.listen(3000, ServerEnvironment.Development); -} - -bootstrap(); -``` - -Estendendo a classe Application. Dentro da pasta do provedor, crie uma pasta chamada `application` e crie um novo arquivo chamado `application.provider.ts` e adicione o seguinte código: - -```typescript -import { Application, Environments, LogLevel, log } from "@expressots/core"; -import { provide } from "inversify-binding-decorators"; - -@provide(App) -class App extends Application { - protected configureServices(): void { - Environments.checkAll(); - } - - // eslint-disable-next-line @typescript-eslint/no-empty-function - protected postServerInitialization(): void {} - - protected serverShutdown(): void { - log(LogLevel.Info, "Server is shutting down", "logger-provider"); - super.serverShutdown(); - } -} - -const appInstance = new App(); +## AppExpress ou Middleware -export { appInstance as App }; -``` +Para inicializar uma aplicação ExpressoTS, existem duas maneiras: -Application Bootstrap iniciado pela classe Application estendida +## Application ou AppInstance -```typescript -import { App } from "@providers/application/application.provider"; -import { container } from "app-container"; -import { ServerEnvironment } from "@expressots/core"; +Para inicializar um aplicativo ExpressoTS, existem duas maneiras: -async function bootstrap() { - const app = App.create(container); - app.listen(3000, ServerEnvironment.Development); -} +- Template Não-opinativo usando o AppFactory para criar uma instância do adaptador padrão do ExpressoTS, que é o Express.js. O usuário pode passar diretamente um array de middleware para o método AppFactory.create, que será responsável por criar uma aplicação Expressjs com o middleware fornecido. Este método de criação de uma aplicação ExpressoTS expõe a instância da aplicação Expressjs, que pode ser usada para adicionar middleware adicional ou para configurar a aplicação Expressjs. -bootstrap(); -``` +- Template Opinativo usando o AppFactory para criar uma aplicação AppExpress. Ao usar a classe App (AppExpress), você pode tirar proveito de seus mecanismos integrados para controlar os ganchos do ciclo de vida da aplicação, como injetar e executar serviços antes, depois e durante o encerramento da aplicação. -## O Container +## O Contêiner -No ExpressoTS, criar um servidor de aplicativos para ouvir as solicitações HTTP de entrada não é suficiente. O framework exige a criação de um contêiner que organize todos os módulos de aplicativos em uma unidade coesa. Normalmente, esse contêiner é criado no arquivo app-container.ts. Leia mais sobre o `app-container` na seção **[App Container](app-container.md)**. +No ExpressoTS, criar um servidor de aplicação para escutar solicitações HTTP de entrada não é suficiente. O framework requer a criação de um contêiner que organiza todos os módulos da aplicação em uma unidade coesa. Normalmente, esse contêiner é criado no arquivo `app.container.ts`. O contêiner é responsável por gerenciar as dependências da aplicação. Leia mais sobre o app.container na seção **[Contêiner da Aplicação](app-container.md)**. -### A aplicação usa o Container +### A Aplicação Utiliza o Contêiner -Após a criação do container no arquivo `app-container`, a aplicação pode ser criada passando o container como parâmetro para o método `AppInstance.create(container)` ou estendendo a classe Application. +Após a criação do contêiner no arquivo `app.container`, a aplicação pode ser criada passando o contêiner como um parâmetro para o método `AppFactory.create(container)`. -### Injetando módulos no Container +### Injetando Módulos no Contêiner -Uma vez criado o container, módulos podem ser injetados na aplicação. Esses módulos são os blocos de construção de uma aplicação ExpressoTS e são responsáveis por organizar a lógica de negócio da aplicação em camadas, incluindo controladores e casos de uso. +Uma vez criado o contêiner, módulos podem ser injetados na aplicação. Esses módulos são os blocos de construção de uma aplicação ExpressoTS e são responsáveis por organizar a lógica de negócio da aplicação em camadas, já que um módulo é um grupo de funcionalidades ou endpoints também chamados de controladores. Leia mais sobre os módulos na seção **[Módulos](module.md)**. -### Injetando controladores nos módulos +### Injetando Controladores nos Módulos -A camada do controlador lida com as solicitações recebidas e retorna as respostas apropriadas; elas são o ponto de entrada do aplicativo para cada terminal. Leia mais sobre os controladores na seção **[Controllers](controller.md)**. Para tornar um controlador funcional, ele deve ser injetado em um módulo. Isso pode ser feito passando o controlador como um parâmetro para o método `CreateModule`. +A camada de controlador lida com solicitações de entrada e retorna respostas apropriadas, eles são o ponto de entrada da aplicação para cada endpoint. Leia mais sobre os controladores na seção **[Controladores](controller.md)**. Para tornar um controlador funcional, ele deve ser injetado em um módulo. Isso pode ser feito passando o controlador como um parâmetro para o método `CreateModule`. -### Fluxo de aplicação totalmente conectado +### Fluxo de Aplicação Totalmente Integrado -Após a criação de um módulo, o módulo pode ser adicionado ao contêiner e, após a criação dos controladores, os controladores podem ser injetados no módulo, resultando em um fluxo de aplicativo totalmente conectado. O trecho de código a seguir demonstra esse processo: +Após criar um módulo, o módulo pode ser adicionado ao contêiner, e após criar controladores, os controladores podem ser injetados no módulo, resultando em um fluxo de aplicação totalmente integrado. O seguinte trecho de código demonstra esse processo: #### Criação da aplicação @@ -326,7 +274,7 @@ const container = appContainer.create([ const appModule = CreateModule([ // Adicione seus controlers aqui AppController, -]) +]); ``` :::info @@ -359,12 +307,38 @@ npm run prod Uma vez que a aplicação está em execução, você pode acessá-la navegando para `http://localhost:3000/` no projeto starter sem opinião. ::: +## Funcionalidades Obsoletas + +:::warning Aviso de Obsolescência +As seguintes funcionalidades são válidas até a versão 1.9.0, pois foram tornadas obsoletas em favor da nova versão do pacote @expressots/core 2.0.0. +::: + +### Opinionated Application Bootstrap (deprecated) + +```typescript +// Using opinionated start project where App extends @expressots/core Application class +async function bootstrap() { + const app = App.create(container); + app.listen(3000, ServerEnvironment.Production); +} +``` + +### Non opinionated Application Bootstrap (deprecated) + +```typescript +// Using the non-opinionated starter project where AppInstance is an instance of the Application class from @expressots/core +async function bootstrap() { + const app = AppInstance.create(container); + app.listen(3000, ServerEnvironment.Development); +} + +bootstrap(); +``` + ## Resumo ExpressoTS é um framework versátil que não está vinculado a nenhuma plataforma ou tecnologia específica. Aproveitando bibliotecas populares do Node.js como InversifyJS e Express.js, ele é projetado para ser leve, modular, personalizável e fácil de usar. Os desenvolvedores podem expandir as capacidades do framework criando novos provedores que podem ser incorporados em suas aplicações. -Atualmente, estamos trabalhando na construção da RoadMap do projeto e planejamos adicionar suporte para outros populares frameworks HTTP do Node.js, como o Fastify e o Koa, à plataforma. Além disso, à medida que avançamos para o futuro, pretendemos eliminar algumas das dependências que atualmente fazem parte do núcleo do framework, como IoC e decoradores. - --- ## Apoie o projeto @@ -376,4 +350,4 @@ ExpressoTS é um projeto de código aberto licenciado sob o MIT. É um projeto i - Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)** - Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)** - Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)** -- Compartilhe o projeto com seus amigos e colegas \ No newline at end of file +- Compartilhe o projeto com seus amigos e colegas