Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Transform your source to inline const values
JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
LICENSE.md
README.md
from-string.js
index.js
package.json

README.md

constantify experimental

A browserify transform (and standalone function) that inlines const values into your code. Like envify, this comes in handy for things such as conditional compilation and as such works well with uglifyify.

Usage

constantify

constantify will pick up const definitions at the top of your module, i.e. outside of any closures, and replace their references with their actual values. Note that this only works with strings and numbers.

For example, the following code:

const generate = require('./generate')
const SIZE = 64
const SIZE_SQUARED = 64*64

var array = new Float32Array(SIZE_SQUARED)
var n = 0

for (var x = 0; x < SIZE; x += 1)
for (var y = 0; y < SIZE; y += 1) {
  array[n++] = generate(x, y)
}

Will be transformed to become this:

const generate = require('./generate')

var array = new Float32Array(4096)
var n = 0

for (var x = 0; x < 64; x += 1)
for (var y = 0; y < 64; y += 1) {
  array[n++] = generate(x, y)
}

You can use constantify the same you would as any other browserify transform:

browserify -t constantify

And to use it from another module, just pass it your source as a string to the fromString method, like so:

var constantify = require('constantify')
var fs = require('fs')

var file = fs.readFileSync(__dirname + '/index.js', 'utf8')
var transformed = constantify.fromString(file)

console.log(transformed)

You can also use it as a standalone command-line tool if installed globally:

constantify index.js > bundled.js
cat index.js | constantify > bundled.js

License

MIT. See LICENSE.md for details.

Something went wrong with that request. Please try again.