Skip to content

Repository files navigation

CrystalNode Runtime

npm version Node.js License: MIT Sponsor

Runtimes Node.js para relatórios migrados do Crystal Reports.

Monorepo com pacotes npm sob @crystal-node/*. Documentação HTML (GitHub Pages): pasta docs/.

Apoie o projeto: GitHub Sponsors · SPONSORS.md


Pacotes

Pacote Descrição
@crystal-node/core Helpers Crystal + chrome/suppress PDF
@crystal-node/controller buildReportModel comercial / dotnetrequest
@crystal-node/engine-puppeteer PDF via Puppeteer
@crystal-node/engine-wkhtmltopdf PDF via wkhtmltopdf
@crystal-node/engine-weasyprint PDF via WeasyPrint
@crystal-node/engine-devbox PDF via res.pdf + crystal-controller
@crystal-node/routes Rotas Express a partir de pastas *Report
@crystal-node/runtime Meta-pacote — reexporta tudo (API 1.0)

Instalação no projeto consumidor

Opção A — tudo de uma vez

npm install @crystal-node/runtime
# + peers do engine escolhido, ex.:
npm install puppeteer vash

Opção B — só o que precisa (recomendado)

# Puppeteer
npm install @crystal-node/engine-puppeteer @crystal-node/controller puppeteer vash

# Devbox
npm install @crystal-node/engine-devbox

# wkhtmltopdf
npm install @crystal-node/engine-wkhtmltopdf @crystal-node/controller vash

# WeasyPrint
npm install @crystal-node/engine-weasyprint @crystal-node/controller vash pdf-lib

# Só rotas
npm install @crystal-node/routes express

Dependências @crystal-node/* internas (ex.: core) são instaladas automaticamente. Peers externos (puppeteer, vash, express, pdf-lib) você instala conforme o uso.


Exemplo rápido

const { reportControllerDotnetrequest } = require('@crystal-node/controller');
const { crystalFunctionsRuntime } = require('@crystal-node/core');
const reportEngine = require('@crystal-node/engine-puppeteer');

module.exports = async function (req, res) {
  const model = reportControllerDotnetrequest.buildReportModel(
    req,
    __dirname,
    crystalFunctionsRuntime
  );
  await reportEngine.renderReportPdf(model, res, {
    reportDir: __dirname,
    pdf: { marginTop: 28, marginBottom: 14 }
  });
};

Compatível via meta-pacote:

const {
  reportControllerDotnetrequest,
  crystalFunctionsRuntime,
  reportEnginePuppeteer
} = require('@crystal-node/runtime');

Desenvolvimento (este repo)

npm install
npm test
npm run pack:dry

Publicar no npm

Com login/2FA ok:

npm run publish:all

Ou veja a página docs/publicacao.html.

GitHub Pages

Settings → Pages → branch main → folder /docs.


Mais docs

About

Node libraries for Crystal Reports migration based pages

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages