alberto_miorin
05/15/2023, 8:19 AMpat_nadolny
05/15/2023, 4:38 PMalberto_miorin
05/15/2023, 4:52 PMpat_nadolny
05/15/2023, 5:02 PMaj_steers
05/15/2023, 7:43 PMpost_process() within the developer flow for taps.
Regarding performance and Python/C/OS interop though, a quick dive through Google surfaced https://github.com/pibara/jsonata-wrapper and https://pypi.org/project/pyjsonata/ which both have noted limitations. Also this thread discusses some challenges of Python support on Macs. Wdyt of the Python interop challenges?
Have you had any luck as of yet getting something like a POC?alberto_miorin
05/16/2023, 6:55 AMtap | nodejs | target for starters. What would the CLI interface expected for the nodejs package published in NPM?alberto_miorin
05/16/2023, 12:16 PMaj_steers
05/16/2023, 5:29 PMI was thinking to do@alberto_miorin - Indeed. @ken_payne found a clever solution for evidence-ext which uses the nodejs-bin python wrapper for packaging node into the python ecosystem. From the library description: "Withfor starters.tap | nodejs | target
nodejs-bin you can call nodejs, npm and npx from both the command line and a Python API."
This could be a nice bridge - but of course you could also pipe directly to a nodejs app if you handle the Singer spec parsing and re-forming.
What would the CLI interface expected for theThe middle layer (we call it a "mapper") would be expected to read Singer input, write Singer output, and accept apackage published in NPM?nodejs
--config=config.json option in it's CLI. You could implement from scratch, or you could start by forking meltano-map-transform (SDK-based) or pipelinewise-transform-field (not SDK-based) and then add a map function that calls the nodejs transform. In theory, you may simply be able to register a new function called jsonata() or similar. The way we do it for md5() is to create a helper function here and register it into the CustomStreamMap class here. (Subclassing the stream map class may be necessary if you go this route.)
The above is just one idea of how to implement. I should add - there are a lot of other ways also. Hope it is helpful!alberto_miorin
05/16/2023, 6:58 PM