substituir pipeline babel por tsx + esbuild (#91)#421
substituir pipeline babel por tsx + esbuild (#91)#421JosueModesto wants to merge 1 commit intodevelopmentfrom
Conversation
| ], | ||
| raw: true, | ||
| }) | ||
| .then(resultado => { |
There was a problem hiding this comment.
Fazer o uso de async/await ao invés de .then.
|
|
||
| export const getProximoNumeroTomboEndPoint = (request, response, next) => { | ||
| getProximoNumeroTombo() | ||
| .then(proximoNumero => { |
There was a problem hiding this comment.
Fazer o uso de async/await com try/catch ao invés de then/catch
| const callback = transaction => | ||
| Promise.resolve() | ||
| .then(() => { | ||
| if (isNovoTombo) { |
There was a problem hiding this comment.
Esta lógica aqui não deveria existir, você deve aceitar o valor que o frontend está enviando, e não gerar outro aqui. O cálculo do próximo número acontece na outra rota e é devolvido para o frontend, o valor que é recebido na requisição deve ser usado para inserir o tombo.
|
|
||
| private async importMigrationModule(name: string): Promise<{ run: (knex: Knex) => Promise<void> }> { | ||
| const filePathWithoutExtension = path.join(this.migrationsPath, name) | ||
| const isAbsolute = path.isAbsolute(this.migrationsPath) |
There was a problem hiding this comment.
Qual problema existia aqui? Por que foi necessário esta alteração?
| getUltimoNumeroTombo, | ||
| ]); | ||
|
|
||
| app.route('/tombos/proximo_numero') |
There was a problem hiding this comment.
Esta rota precisa de autenticação.
| "src/", | ||
| "test/", | ||
| "eslint.config.mts", | ||
| "eslint.config.mjs", |
There was a problem hiding this comment.
Por que mudar de .mts para .mjs?
| "nodemon": "3.1.10", | ||
| "npm-run-all": "4.1.5", | ||
| "rimraf": "6.1.2", | ||
| "tsx": "^4.21.0", |
There was a problem hiding this comment.
Por favor, usar a versão exata, sem o ^
| "babel-plugin-module-resolver": "5.0.2", | ||
| "chai": "6.2.0", | ||
| "chai-http": "^5.1.2", | ||
| "esbuild": "^0.28.0", |
There was a problem hiding this comment.
Usar a versão exata, sem o ^
| "build": "run-s clean build:app", | ||
| "build:app": "node build.mjs", | ||
| "start": "tsx --watch --env-file=.env src/index.js", | ||
| "build": "run-s build:app", |
There was a problem hiding this comment.
Uma vez que o script build só executa uma coisa, que nesse caso é executar build:app, você não precisa mais do build:app, você pode trazer o node build.mjs aqui para o script build
| // Prefere entrada CJS dos pacotes para evitar problemas de interop de default export | ||
| mainFields: ['main', 'module'], | ||
| // Dialetos opcionais do knex/sequelize não instalados no projeto | ||
| external: [ |
There was a problem hiding this comment.
Ao invés de colocar dependencias como externas, você pode simplesmente colocar a configuração bundle como false, e o esbuild vai se comportar semelhante ao babel, fazendo a compilação dos arquivos somente, sem a necessidade de configurar as bibliotecas externas.
O que foi feito
Substituição completa da pipeline Babel por tsx + esbuild, conforme issue #91.
Removido
@babel/cli,@babel/core,@babel/node,@babel/plugin-proposal-class-properties,@babel/preset-env,@babel/preset-react,@babel/preset-typescriptbabel-plugin-module-resolver,jiti,nodemon.babelrcAdicionado / Atualizado
esbuildadicionado emdevDependenciestsxmovido dedependenciesparadevDependenciesbuild.mjs: executa limpeza da pastadistviarmSynce gera bundle com esbuild (elimina necessidade derimrafe scriptclean)startatualizado paratsx --watch --env-file=.env src/index.jsbuild:appatualizado paranode build.mjseslint.config.mtsrenomeado paraeslint.config.mjs(remove dependência dejitino ESLint 9)Validação
yarn buildyarn lintyarn test27/27