@purecore/apify
v0.5.0
Published
<div align="center"><img src="https://i.imgur.com/Ry9Iljd.png" style="display:block; margin: 0 auto; margint-top: 20px"></div>
Readme
Visão geral
@purecore/apify expõe a classe Apify, que herda de um roteador compatível com Express.
Você monta sua aplicação exatamente como faria com { express: () => app }: registra middlewares com app.use(...), define app.get/post/put/delete/patch(...) e finaliza com app.listen(...).
Os objetos Request e Response carregam params, query, body, baseUrl, originalUrl e helpers status, json, send, permitindo migrar handlers Express com mínimo esforço.
Acho que essa lib não precisa de muita explicação.
Uso básico (igualzinho ao Express)
Instalação:
npm i @purecore/apify
yarn add @purecore/apify
bun add @purecore/apify
pnpm add @purecore/apifyimport { Apify, jsonBodyParser } from '@purecore/apify';
const app = new Apify();
// Middleware global (body parser, logger, etc.)
app.use(jsonBodyParser);
// Rota com params e query
app.get('/users/:id', (req, res) => {
const { id } = req.params;
const { role } = req.query;
res.status(200).json({ id, role, message: 'Usuário encontrado' });
});
// Sub-router (igual express.Router)
const apiRouter = new Apify();
apiRouter.get('/status', (req, res) => res.json({ status: 'ok' }));
app.use('/api', apiRouter);
app.listen(3344, () => console.log('@purecore/apify rodando na porta 3344'));Template modules/<resource>/routes.ts
O gerador cria um sub-roteador completo com todas as operações CRUD:
- POST
/– cria usuário em memória e retorna o registro persistido. - GET
/:id– busca um usuário específico (com 404 se não existir). - GET
/– lista todos os usuários, retornando{ total, data }. - PUT/PATCH
/:id– atualização pontual (updateOne) aceitando tanto PUT quanto PATCH. - PUT/PATCH
/bulk– atualização em massa (updateMany) recebendo{ ids: string[], data: Partial<User> }. - DELETE
/:id– remove usuário e responde 204 se tudo certo.
Basta importar e registrar:
import { usersRouter } from './modules/users/routes';
app.use('/users', usersRouter);Gerador de CRUD via CLI
Você pode criar módulos automaticamente com:
npx @purecore/apify create crud usersO comando fará duas coisas:
- Gera
modules/users/routes.tscom todas as rotas CRUD usando o template acima. - Injeta automaticamente
import { usersRouter } from '../modules/users/routes';eapp.use('/users', usersRouter);no arquivosrc/index.ts(ou outro informado com--entry).
Caso seu arquivo principal esteja em outro caminho, passe --entry:
npx @purecore/apify create crud billing --entry apps/api/src/main.ts