it's a require
hook (courtesy of pirates
) that pipes source code through the c preprocessor.
it goes without saying that this is a terrible idea, but that doesn't mean i haven't been dying to have a familiar feeling macro system in javascript for as long as i can remember.
read the tests and examples, and/or read a manual.
it's probably how you'd feel while using this tool 🙃
this module doesn't take care of installing a standards-compliant c preprocessor for you. and, more importantly, this foot-gun comes with no support. if you're (a sensible individual) looking for something reliable and predictable, go check out sweet.js, instead.
npm install --save urgh
and then...
var urgh = require('urgh')
// your environment variables automatically become preprocessor defines
process.env.FOO = 'foo'
// constructing the require hook returns the destructor
var disable = urgh()
// after calling urgh() you can require files containing c preprocessor directives and macros
require('./foo.urgh')
// and then optionally disable urgh
disable()
// foo.urgh
#ifdef FOO
console.log(FOO)
#endif
#include "some-file.js"
#include "some-other-file.urgh"
or preprocess your source files ahead-of-time...
urgh < foo.urgh > foo.js