Skip to content
/ urgh Public

use the c preprocessor in javascript

License

Notifications You must be signed in to change notification settings

skibz/urgh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

urgh

what?

it's a require hook (courtesy of pirates) that pipes source code through the c preprocessor.

but, why?

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.

how?

read the tests and examples, and/or read a manual.

the name?

it's probably how you'd feel while using this tool 🙃

disclaimers

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.

i'd actually like to use it

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