You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
typesetting/pitfall/pdfkit/node_modules/with
Matthew Butterick 3f36e2ce2c porting 7 years ago
..
node_modules porting 7 years ago
.npmignore porting 7 years ago
LICENSE porting 7 years ago
README.md porting 7 years ago
index.js porting 7 years ago
package.json porting 7 years ago
vars.js porting 7 years ago

README.md

with

Compile time with for strict mode JavaScript

build status Dependency Status NPM version

Installation

$ npm install with

Usage

var addWith = require('with')

addWith('obj', 'console.log(a)')
// => "var a = obj.a;console.log(a)"

addWith("obj || {}", "console.log(helper(a))", ["helper"])
// => var locals = (obj || {}),a = locals.a;console.log(helper(a))

API

addWith(obj, src, [exclude], [environments])

The idea is that this is roughly equivallent to:

with (obj) {
  src
}

There are a few differences though. For starters, it will be assumed that all variables used in src come from obj so any that don't (e.g. template helpers) need to have their names parsed to exclude as an array. If you want to have browser globals available you can pass a collection of environments, e.g.

addWith('obj', 'document.createElement(foo)', [], ['reservedVars', 'ecmaIdentifiers', 'nonstandard', 'browser'])

The default environment is: ['reservedVars', 'ecmaIdentifiers', 'nonstandard', 'node']

It also makes everything be declared, so you can always do:

if (foo === undefined)

instead of

if (typeof foo === 'undefined')

It is also safe to use in strict mode (unlike with) and it minifies properly (with disables virtually all minification).

License

MIT