Pushing changes
This commit is contained in:
1
node_modules/requireindex/.npmignore
generated
vendored
Normal file
1
node_modules/requireindex/.npmignore
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
node_modules
|
3
node_modules/requireindex/.travis.yml
generated
vendored
Normal file
3
node_modules/requireindex/.travis.yml
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- 0.10
|
90
node_modules/requireindex/README.md
generated
vendored
Normal file
90
node_modules/requireindex/README.md
generated
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
# Description
|
||||
|
||||
Write minimal node index.js files that require and export siblings by file basename
|
||||
|
||||
# Latest Version
|
||||
|
||||
1.1.0
|
||||
|
||||
# Installation
|
||||
```
|
||||
npm install requireindex
|
||||
```
|
||||
|
||||
or in package.json
|
||||
|
||||
```json
|
||||
{
|
||||
...
|
||||
"dependencies": {
|
||||
"requireindex": "1.1.x"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# Usage
|
||||
Check the [test directory](https://github.com/stephenhandley/requireindex/tree/master/test) for example usage. The [test/lib](https://github.com/stephenhandley/requireindex/tree/master/test/lib) looks like:
|
||||
|
||||
```
|
||||
lib/
|
||||
index.js
|
||||
Foo.js
|
||||
bar/
|
||||
index.js
|
||||
f.js
|
||||
fing.js
|
||||
fed/
|
||||
again.js
|
||||
ignored.js
|
||||
index.js
|
||||
somemore.js
|
||||
bam.js
|
||||
_private.js
|
||||
|
||||
```
|
||||
|
||||
The index.js files in [test/lib/](https://github.com/stephenhandley/requireindex/tree/master/test/lib/index.js) and [test/lib/bar/](https://github.com/stephenhandley/requireindex/tree/master/test/lib/bar/index.js) contain:
|
||||
|
||||
```js
|
||||
module.exports = require('requireindex')(__dirname);
|
||||
```
|
||||
|
||||
and the index.js file in [test/lib/bar/fed/](https://github.com/stephenhandley/requireindex/tree/master/test/lib/bar/fed/index.js) contains:
|
||||
|
||||
```js
|
||||
module.exports = require('requireindex')(__dirname, ['again', 'somemore']);
|
||||
```
|
||||
|
||||
The optional second argument allows you to explicitly specify the required files using their basename. In this example [test/lib/bar/fed/ignored.js](https://github.com/stephenhandley/requireindex/tree/master/test/lib/bar/fed/ignored.js) is not included as a public module. The other way to make a module/file private without the need for explicitly naming all the other included files is to prefix the filename with an underscore, as demonstrated by [test/lib/_private.js](https://github.com/stephenhandley/requireindex/tree/master/test/lib/_private.js) which is not exported.
|
||||
|
||||
So, with these index.js files, the result of
|
||||
|
||||
```js
|
||||
require('lib');
|
||||
```
|
||||
|
||||
is:
|
||||
|
||||
```js
|
||||
{
|
||||
bam: {
|
||||
m: [Function],
|
||||
n: [Function]
|
||||
},
|
||||
bar: {
|
||||
f: [Function],
|
||||
fed: {
|
||||
again: [Function],
|
||||
somemore: [Function]
|
||||
},
|
||||
fing: [Function]
|
||||
},
|
||||
Foo: {
|
||||
l: [Function],
|
||||
ls: [Function]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#Build status
|
||||
[](http://travis-ci.org/stephenhandley/requireindex)
|
59
node_modules/requireindex/index.js
generated
vendored
Normal file
59
node_modules/requireindex/index.js
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
var FS = require('fs');
|
||||
var Path = require('path');
|
||||
|
||||
module.exports = function (dir, basenames) {
|
||||
var requires = {};
|
||||
|
||||
if (arguments.length === 2) {
|
||||
// if basenames argument is passed, explicitly include those files
|
||||
basenames.forEach(function (basename) {
|
||||
var filepath = Path.resolve(Path.join(dir, basename));
|
||||
requires[basename] = require(filepath);
|
||||
});
|
||||
|
||||
} else if (arguments.length === 1) {
|
||||
// if basenames arguments isn't passed, require all javascript
|
||||
// files (except for those prefixed with _) and all directories
|
||||
|
||||
var files = FS.readdirSync(dir);
|
||||
|
||||
// sort files in lowercase alpha for linux
|
||||
files.sort(function (a,b) {
|
||||
a = a.toLowerCase();
|
||||
b = b.toLowerCase();
|
||||
|
||||
if (a < b) {
|
||||
return -1;
|
||||
} else if (b < a) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
|
||||
files.forEach(function (filename) {
|
||||
// ignore index.js and files prefixed with underscore and
|
||||
if ((filename === 'index.js') || (filename[0] === '_') || (filename[0] === '.')) {
|
||||
return;
|
||||
}
|
||||
|
||||
var filepath = Path.resolve(Path.join(dir, filename));
|
||||
var ext = Path.extname(filename);
|
||||
var stats = FS.statSync(filepath);
|
||||
|
||||
// don't require non-javascript files (.txt .md etc.)
|
||||
if (stats.isFile() && !(ext in require.extensions)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var basename = Path.basename(filename, ext);
|
||||
|
||||
requires[basename] = require(filepath);
|
||||
});
|
||||
|
||||
} else {
|
||||
throw new Error("Must pass directory as first argument");
|
||||
}
|
||||
|
||||
return requires;
|
||||
};
|
92
node_modules/requireindex/package.json
generated
vendored
Normal file
92
node_modules/requireindex/package.json
generated
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
{
|
||||
"raw": "requireindex@^1.1.0",
|
||||
"scope": null,
|
||||
"escapedName": "requireindex",
|
||||
"name": "requireindex",
|
||||
"rawSpec": "^1.1.0",
|
||||
"spec": ">=1.1.0 <2.0.0",
|
||||
"type": "range"
|
||||
},
|
||||
"/home/burchettm/statsbot/node_modules/discordie"
|
||||
]
|
||||
],
|
||||
"_from": "requireindex@>=1.1.0 <2.0.0",
|
||||
"_id": "requireindex@1.1.0",
|
||||
"_inCache": true,
|
||||
"_location": "/requireindex",
|
||||
"_npmUser": {
|
||||
"name": "stephenhandley",
|
||||
"email": "stephen.handley@gmail.com"
|
||||
},
|
||||
"_npmVersion": "1.2.18",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"raw": "requireindex@^1.1.0",
|
||||
"scope": null,
|
||||
"escapedName": "requireindex",
|
||||
"name": "requireindex",
|
||||
"rawSpec": "^1.1.0",
|
||||
"spec": ">=1.1.0 <2.0.0",
|
||||
"type": "range"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/discordie"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz",
|
||||
"_shasum": "e5404b81557ef75db6e49c5a72004893fe03e162",
|
||||
"_shrinkwrap": null,
|
||||
"_spec": "requireindex@^1.1.0",
|
||||
"_where": "/home/burchettm/statsbot/node_modules/discordie",
|
||||
"author": {
|
||||
"name": "Stephen Handley",
|
||||
"email": "stephen.handley@gmail.com",
|
||||
"url": "http://person.sh"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "http://github.com/stephenhandley/requireindex/issues"
|
||||
},
|
||||
"dependencies": {},
|
||||
"description": "Write minimal node index.js files that require and export siblings by file basename",
|
||||
"devDependencies": {
|
||||
"asserts": "4.0.x"
|
||||
},
|
||||
"directories": {
|
||||
"lib": ".",
|
||||
"test": "test"
|
||||
},
|
||||
"dist": {
|
||||
"shasum": "e5404b81557ef75db6e49c5a72004893fe03e162",
|
||||
"tarball": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.5"
|
||||
},
|
||||
"homepage": "https://github.com/stephenhandley/requireindex#readme",
|
||||
"keywords": [
|
||||
"require",
|
||||
"index",
|
||||
"index.js"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "stephenhandley",
|
||||
"email": "stephen.handley@gmail.com"
|
||||
}
|
||||
],
|
||||
"name": "requireindex",
|
||||
"optionalDependencies": {},
|
||||
"readme": "ERROR: No README data found!",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/stephenhandley/requireindex.git"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node test/test.js"
|
||||
},
|
||||
"version": "1.1.0"
|
||||
}
|
1
node_modules/requireindex/test/lib/.also_private/private.txt
generated
vendored
Normal file
1
node_modules/requireindex/test/lib/.also_private/private.txt
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
barf
|
4
node_modules/requireindex/test/lib/Foo.js
generated
vendored
Normal file
4
node_modules/requireindex/test/lib/Foo.js
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
module.exports = {
|
||||
l: function() { return "yes"; },
|
||||
ls: function() { return "yep"; }
|
||||
};
|
3
node_modules/requireindex/test/lib/_private.js
generated
vendored
Normal file
3
node_modules/requireindex/test/lib/_private.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = function() {
|
||||
return "ack";
|
||||
}
|
4
node_modules/requireindex/test/lib/bam.js
generated
vendored
Normal file
4
node_modules/requireindex/test/lib/bam.js
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
module.exports = {
|
||||
m: function() { return "ok"; },
|
||||
n: require('./_private')
|
||||
};
|
3
node_modules/requireindex/test/lib/bar/f.js
generated
vendored
Normal file
3
node_modules/requireindex/test/lib/bar/f.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = function() {
|
||||
return "yea";
|
||||
}
|
3
node_modules/requireindex/test/lib/bar/fed/again.js
generated
vendored
Normal file
3
node_modules/requireindex/test/lib/bar/fed/again.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = function() {
|
||||
return "again";
|
||||
}
|
3
node_modules/requireindex/test/lib/bar/fed/ignored.js
generated
vendored
Normal file
3
node_modules/requireindex/test/lib/bar/fed/ignored.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = function() {
|
||||
return "ignored";
|
||||
}
|
1
node_modules/requireindex/test/lib/bar/fed/index.js
generated
vendored
Normal file
1
node_modules/requireindex/test/lib/bar/fed/index.js
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
module.exports = require('../../../../')(__dirname, ['again', 'somemore'])
|
3
node_modules/requireindex/test/lib/bar/fed/somemore.js
generated
vendored
Normal file
3
node_modules/requireindex/test/lib/bar/fed/somemore.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = function() {
|
||||
return "somemore";
|
||||
}
|
3
node_modules/requireindex/test/lib/bar/fing.js
generated
vendored
Normal file
3
node_modules/requireindex/test/lib/bar/fing.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = function() {
|
||||
return "definitely";
|
||||
}
|
1
node_modules/requireindex/test/lib/bar/index.js
generated
vendored
Normal file
1
node_modules/requireindex/test/lib/bar/index.js
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
module.exports = require('../../../')(__dirname)
|
1
node_modules/requireindex/test/lib/index.js
generated
vendored
Normal file
1
node_modules/requireindex/test/lib/index.js
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
module.exports = require('../../')(__dirname)
|
1
node_modules/requireindex/test/lib/not_javascript.txt
generated
vendored
Normal file
1
node_modules/requireindex/test/lib/not_javascript.txt
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
asdf 1 2 / @ 123
|
43
node_modules/requireindex/test/test.js
generated
vendored
Normal file
43
node_modules/requireindex/test/test.js
generated
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
var Assert = require('assert');
|
||||
var Asserts = require('asserts');
|
||||
|
||||
Asserts(function () {
|
||||
var lib = require('./lib');
|
||||
|
||||
return {
|
||||
"requireindex should": {
|
||||
"properly include files parallel to index.js and maintain structure": function () {
|
||||
Asserts.all.equal([
|
||||
[lib.bam.m, [], "ok"],
|
||||
[lib.bar.f, [], "yea"],
|
||||
[lib.bar.fing, [], 'definitely'],
|
||||
[lib.Foo.l, [], 'yes'],
|
||||
[lib.Foo.ls, [], 'yep'],
|
||||
[lib.bam.n, [], 'ack'],
|
||||
[lib.bar.fed.again, [], 'again'],
|
||||
[lib.bar.fed.somemore, [], 'somemore']
|
||||
]);
|
||||
},
|
||||
|
||||
"ignore _ prefixed files": function () {
|
||||
Assert.equal(('_private' in lib), false);
|
||||
},
|
||||
|
||||
"not include files not mentioned when second array argument is used": function () {
|
||||
Assert.equal(('ignored' in lib.bar.fed), false);
|
||||
},
|
||||
|
||||
"ignore non javascript files": function () {
|
||||
Assert.equal(('not_javascript' in lib), false);
|
||||
},
|
||||
|
||||
"sort files by lowercase alpha of the filename": function () {
|
||||
Assert.equal(Object.keys(lib)[0], 'bam');
|
||||
},
|
||||
|
||||
"ignore dot files": function () {
|
||||
Assert.equal(('.also_private' in lib), false);
|
||||
},
|
||||
}
|
||||
};
|
||||
});
|
Reference in New Issue
Block a user