UNPKG

butter-require

Version:

A fork of 'olalonde/better-require' - lets you load JSON and YAML files using require syntax. For example: var config = require('./config.json'); Extensions available are: json, yaml, coffee, ts, ls, co

92 lines (62 loc) 2.73 kB
A fork of [better-require](https://github.com/olalonde/better-require) with less supported formats, mainly for usage in [uRequire](https://github.com/anodynos/uRequire) due to [some](https://github.com/olalonde/better-require/issues/3) [issues](https://github.com/olalonde/better-require/issues/2) and being *too heavy*. v0.3 also works well with coffee-script -post & pre 1.7.x- (.coffee, .litcoffee, .coffee.md, ) & also LiveScript (.ls) & coco (.co). Formats (& dependencies) removed: - xml: who needs that anymore ? It crashes on Windows anyway... - six You can still manually install them of course... Original docs follow: _________________________________________________________ Augments require() with support for multiple file formats. # Supported file formats **... which return a JSON represenation:** - [json](http://en.wikipedia.org/wiki/JSON) - [yaml](http://en.wikipedia.org/wiki/Yaml) (.yaml, .yml) - [csv](http://en.wikipedia.org/wiki/Comma-separated_values) - [xml](http://en.wikipedia.org/wiki/Xml) - [ini](http://en.wikipedia.org/wiki/INI_file) **... which return a Javascript module:** - [coffeescript](http://coffeescript.org) (.coffeescript, .coffee) - [six](https://github.com/matthewrobb/six) - [clojurescript](https://github.com/clojure/clojurescript) (.cljs) - not bundled - [dart](http://www.dartlang.org/) - not bundled - [typescript](http://www.typescriptlang.org/) (.ts) - not bundled **... work in progress:** - dynamic libraries - ruby - python Behind the scenes, this module adds handlers to [require.extensions](http://nodejs.org/api/all.html#all_require_extensions). # Install npm install better-require # Usage ```javascript /** * @param {String} optional - formats is a white space separated list of formats you would like require() to support. */ // support all available extensions require('better-require')(); // support a subset of extensions require('better-require')(formats); ``` # Example Enable support for all file types: ```javascript require('better-require')(); var config = require('./config.json'); console.log(config); ``` Enable support for only a subset of file types: ```javascript require('better-require')('json yaml xml'); // we can now require .xml, .yaml and .xml files! var config = require('./config.yaml'); console.log(config); ``` # Dependencies - [require-json](https://github.com/olalonde/require-json) - [require-yaml](https://github.com/olalonde/require-yaml) - [require-csv](https://github.com/olalonde/require-csv) - [require-xml](https://github.com/olalonde/require-xml) - [require-ini](https://github.com/olalonde/require-ini) - see package.json # Reference http://nodejs.org/api/all.html#all_require_extensions