UrgentcareCLI 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/Gemfile.lock +60 -25
- data/Notes +1 -1
- data/README.md +5 -5
- data/Rakefile +2 -0
- data/UrgentCare.gemspec +3 -3
- data/background.jpg +0 -0
- data/lib/UrgentCare.rb +3 -0
- data/lib/UrgentCare/CLI.rb +6 -2
- data/lib/UrgentCare/version.rb +1 -1
- data/lib/Urgentcare/Scraper.rb +65 -23
- data/node_modules/.bin/rimraf +1 -0
- data/node_modules/.package-lock.json +250 -0
- data/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- data/node_modules/balanced-match/LICENSE.md +21 -0
- data/node_modules/balanced-match/README.md +97 -0
- data/node_modules/balanced-match/index.js +62 -0
- data/node_modules/balanced-match/package.json +48 -0
- data/node_modules/brace-expansion/LICENSE +21 -0
- data/node_modules/brace-expansion/README.md +129 -0
- data/node_modules/brace-expansion/index.js +201 -0
- data/node_modules/brace-expansion/package.json +47 -0
- data/node_modules/concat-map/.travis.yml +4 -0
- data/node_modules/concat-map/LICENSE +18 -0
- data/node_modules/concat-map/README.markdown +62 -0
- data/node_modules/concat-map/example/map.js +6 -0
- data/node_modules/concat-map/index.js +13 -0
- data/node_modules/concat-map/package.json +43 -0
- data/node_modules/concat-map/test/map.js +39 -0
- data/node_modules/core-util-is/LICENSE +19 -0
- data/node_modules/core-util-is/README.md +3 -0
- data/node_modules/core-util-is/float.patch +604 -0
- data/node_modules/core-util-is/lib/util.js +107 -0
- data/node_modules/core-util-is/package.json +32 -0
- data/node_modules/core-util-is/test.js +68 -0
- data/node_modules/fs.realpath/LICENSE +43 -0
- data/node_modules/fs.realpath/README.md +33 -0
- data/node_modules/fs.realpath/index.js +66 -0
- data/node_modules/fs.realpath/old.js +303 -0
- data/node_modules/fs.realpath/package.json +26 -0
- data/node_modules/glob/LICENSE +21 -0
- data/node_modules/glob/README.md +375 -0
- data/node_modules/glob/changelog.md +67 -0
- data/node_modules/glob/common.js +234 -0
- data/node_modules/glob/glob.js +788 -0
- data/node_modules/glob/package.json +51 -0
- data/node_modules/glob/sync.js +484 -0
- data/node_modules/immediate/LICENSE.txt +20 -0
- data/node_modules/immediate/README.md +93 -0
- data/node_modules/immediate/dist/immediate.js +75 -0
- data/node_modules/immediate/dist/immediate.min.js +1 -0
- data/node_modules/immediate/lib/browser.js +69 -0
- data/node_modules/immediate/lib/index.js +73 -0
- data/node_modules/immediate/package.json +42 -0
- data/node_modules/inflight/LICENSE +15 -0
- data/node_modules/inflight/README.md +37 -0
- data/node_modules/inflight/inflight.js +54 -0
- data/node_modules/inflight/package.json +29 -0
- data/node_modules/inherits/LICENSE +16 -0
- data/node_modules/inherits/README.md +42 -0
- data/node_modules/inherits/inherits.js +9 -0
- data/node_modules/inherits/inherits_browser.js +27 -0
- data/node_modules/inherits/package.json +29 -0
- data/node_modules/isarray/.npmignore +1 -0
- data/node_modules/isarray/.travis.yml +4 -0
- data/node_modules/isarray/Makefile +6 -0
- data/node_modules/isarray/README.md +60 -0
- data/node_modules/isarray/component.json +19 -0
- data/node_modules/isarray/index.js +5 -0
- data/node_modules/isarray/package.json +45 -0
- data/node_modules/isarray/test.js +20 -0
- data/node_modules/jszip/.codeclimate.yml +16 -0
- data/node_modules/jszip/.editorconfig +8 -0
- data/node_modules/jszip/.jshintignore +1 -0
- data/node_modules/jszip/.jshintrc +21 -0
- data/node_modules/jszip/.travis.yml +17 -0
- data/node_modules/jszip/CHANGES.md +163 -0
- data/node_modules/jszip/LICENSE.markdown +651 -0
- data/node_modules/jszip/README.markdown +35 -0
- data/node_modules/jszip/dist/jszip.js +30 -0
- data/node_modules/jszip/dist/jszip.min.js +13 -0
- data/node_modules/jszip/index.d.ts +270 -0
- data/node_modules/jszip/lib/base64.js +106 -0
- data/node_modules/jszip/lib/compressedObject.js +74 -0
- data/node_modules/jszip/lib/compressions.js +14 -0
- data/node_modules/jszip/lib/crc32.js +77 -0
- data/node_modules/jszip/lib/defaults.js +11 -0
- data/node_modules/jszip/lib/external.js +19 -0
- data/node_modules/jszip/lib/flate.js +85 -0
- data/node_modules/jszip/lib/generate/ZipFileWorker.js +540 -0
- data/node_modules/jszip/lib/generate/index.js +57 -0
- data/node_modules/jszip/lib/index.js +52 -0
- data/node_modules/jszip/lib/license_header.js +11 -0
- data/node_modules/jszip/lib/load.js +81 -0
- data/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +74 -0
- data/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +42 -0
- data/node_modules/jszip/lib/nodejsUtils.js +57 -0
- data/node_modules/jszip/lib/object.js +389 -0
- data/node_modules/jszip/lib/readable-stream-browser.js +9 -0
- data/node_modules/jszip/lib/reader/ArrayReader.js +57 -0
- data/node_modules/jszip/lib/reader/DataReader.js +116 -0
- data/node_modules/jszip/lib/reader/NodeBufferReader.js +19 -0
- data/node_modules/jszip/lib/reader/StringReader.js +38 -0
- data/node_modules/jszip/lib/reader/Uint8ArrayReader.js +22 -0
- data/node_modules/jszip/lib/reader/readerFor.js +28 -0
- data/node_modules/jszip/lib/signature.js +7 -0
- data/node_modules/jszip/lib/stream/ConvertWorker.js +26 -0
- data/node_modules/jszip/lib/stream/Crc32Probe.js +24 -0
- data/node_modules/jszip/lib/stream/DataLengthProbe.js +29 -0
- data/node_modules/jszip/lib/stream/DataWorker.js +116 -0
- data/node_modules/jszip/lib/stream/GenericWorker.js +263 -0
- data/node_modules/jszip/lib/stream/StreamHelper.js +212 -0
- data/node_modules/jszip/lib/support.js +38 -0
- data/node_modules/jszip/lib/utf8.js +275 -0
- data/node_modules/jszip/lib/utils.js +476 -0
- data/node_modules/jszip/lib/zipEntries.js +262 -0
- data/node_modules/jszip/lib/zipEntry.js +294 -0
- data/node_modules/jszip/lib/zipObject.js +133 -0
- data/node_modules/jszip/package.json +63 -0
- data/node_modules/jszip/vendor/FileSaver.js +247 -0
- data/node_modules/lie/README.md +62 -0
- data/node_modules/lie/dist/lie.js +350 -0
- data/node_modules/lie/dist/lie.min.js +1 -0
- data/node_modules/lie/dist/lie.polyfill.js +358 -0
- data/node_modules/lie/dist/lie.polyfill.min.js +1 -0
- data/node_modules/lie/lib/browser.js +273 -0
- data/node_modules/lie/lib/index.js +298 -0
- data/node_modules/lie/license.md +7 -0
- data/node_modules/lie/lie.d.ts +244 -0
- data/node_modules/lie/package.json +69 -0
- data/node_modules/lie/polyfill.js +4 -0
- data/node_modules/minimatch/LICENSE +15 -0
- data/node_modules/minimatch/README.md +209 -0
- data/node_modules/minimatch/minimatch.js +923 -0
- data/node_modules/minimatch/package.json +30 -0
- data/node_modules/once/LICENSE +15 -0
- data/node_modules/once/README.md +79 -0
- data/node_modules/once/once.js +42 -0
- data/node_modules/once/package.json +33 -0
- data/node_modules/pako/CHANGELOG.md +164 -0
- data/node_modules/pako/LICENSE +21 -0
- data/node_modules/pako/README.md +191 -0
- data/node_modules/pako/dist/pako.js +6818 -0
- data/node_modules/pako/dist/pako.min.js +1 -0
- data/node_modules/pako/dist/pako_deflate.js +3997 -0
- data/node_modules/pako/dist/pako_deflate.min.js +1 -0
- data/node_modules/pako/dist/pako_inflate.js +3300 -0
- data/node_modules/pako/dist/pako_inflate.min.js +1 -0
- data/node_modules/pako/index.js +14 -0
- data/node_modules/pako/lib/deflate.js +400 -0
- data/node_modules/pako/lib/inflate.js +423 -0
- data/node_modules/pako/lib/utils/common.js +105 -0
- data/node_modules/pako/lib/utils/strings.js +187 -0
- data/node_modules/pako/lib/zlib/README +59 -0
- data/node_modules/pako/lib/zlib/adler32.js +51 -0
- data/node_modules/pako/lib/zlib/constants.js +68 -0
- data/node_modules/pako/lib/zlib/crc32.js +59 -0
- data/node_modules/pako/lib/zlib/deflate.js +1874 -0
- data/node_modules/pako/lib/zlib/gzheader.js +58 -0
- data/node_modules/pako/lib/zlib/inffast.js +345 -0
- data/node_modules/pako/lib/zlib/inflate.js +1556 -0
- data/node_modules/pako/lib/zlib/inftrees.js +343 -0
- data/node_modules/pako/lib/zlib/messages.js +32 -0
- data/node_modules/pako/lib/zlib/trees.js +1222 -0
- data/node_modules/pako/lib/zlib/zstream.js +47 -0
- data/node_modules/pako/package.json +44 -0
- data/node_modules/path-is-absolute/index.js +20 -0
- data/node_modules/path-is-absolute/license +21 -0
- data/node_modules/path-is-absolute/package.json +43 -0
- data/node_modules/path-is-absolute/readme.md +59 -0
- data/node_modules/process-nextick-args/index.js +45 -0
- data/node_modules/process-nextick-args/license.md +19 -0
- data/node_modules/process-nextick-args/package.json +25 -0
- data/node_modules/process-nextick-args/readme.md +18 -0
- data/node_modules/readable-stream/.travis.yml +34 -0
- data/node_modules/readable-stream/CONTRIBUTING.md +38 -0
- data/node_modules/readable-stream/GOVERNANCE.md +136 -0
- data/node_modules/readable-stream/LICENSE +47 -0
- data/node_modules/readable-stream/README.md +58 -0
- data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
- data/node_modules/readable-stream/duplex-browser.js +1 -0
- data/node_modules/readable-stream/duplex.js +1 -0
- data/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
- data/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
- data/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
- data/node_modules/readable-stream/lib/_stream_transform.js +214 -0
- data/node_modules/readable-stream/lib/_stream_writable.js +687 -0
- data/node_modules/readable-stream/lib/internal/streams/BufferList.js +79 -0
- data/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
- data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
- data/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
- data/node_modules/readable-stream/package.json +52 -0
- data/node_modules/readable-stream/passthrough.js +1 -0
- data/node_modules/readable-stream/readable-browser.js +7 -0
- data/node_modules/readable-stream/readable.js +19 -0
- data/node_modules/readable-stream/transform.js +1 -0
- data/node_modules/readable-stream/writable-browser.js +1 -0
- data/node_modules/readable-stream/writable.js +8 -0
- data/node_modules/rimraf/LICENSE +15 -0
- data/node_modules/rimraf/README.md +101 -0
- data/node_modules/rimraf/bin.js +50 -0
- data/node_modules/rimraf/package.json +29 -0
- data/node_modules/rimraf/rimraf.js +372 -0
- data/node_modules/safe-buffer/LICENSE +21 -0
- data/node_modules/safe-buffer/README.md +584 -0
- data/node_modules/safe-buffer/index.d.ts +187 -0
- data/node_modules/safe-buffer/index.js +62 -0
- data/node_modules/safe-buffer/package.json +37 -0
- data/node_modules/selenium-webdriver/CHANGES.md +1114 -0
- data/node_modules/selenium-webdriver/LICENSE +202 -0
- data/node_modules/selenium-webdriver/NOTICE +2 -0
- data/node_modules/selenium-webdriver/README.md +229 -0
- data/node_modules/selenium-webdriver/chrome.js +295 -0
- data/node_modules/selenium-webdriver/chromium.js +829 -0
- data/node_modules/selenium-webdriver/devtools/CDPConnection.js +35 -0
- data/node_modules/selenium-webdriver/edge.js +224 -0
- data/node_modules/selenium-webdriver/example/chrome_android.js +45 -0
- data/node_modules/selenium-webdriver/example/chrome_mobile_emulation.js +46 -0
- data/node_modules/selenium-webdriver/example/firefox_channels.js +84 -0
- data/node_modules/selenium-webdriver/example/google_search.js +50 -0
- data/node_modules/selenium-webdriver/example/google_search_test.js +70 -0
- data/node_modules/selenium-webdriver/example/headless.js +63 -0
- data/node_modules/selenium-webdriver/example/logging.js +64 -0
- data/node_modules/selenium-webdriver/firefox.js +789 -0
- data/node_modules/selenium-webdriver/http/index.js +324 -0
- data/node_modules/selenium-webdriver/http/util.js +172 -0
- data/node_modules/selenium-webdriver/ie.js +503 -0
- data/node_modules/selenium-webdriver/index.js +825 -0
- data/node_modules/selenium-webdriver/io/exec.js +162 -0
- data/node_modules/selenium-webdriver/io/index.js +348 -0
- data/node_modules/selenium-webdriver/io/zip.js +223 -0
- data/node_modules/selenium-webdriver/lib/atoms/find-elements.js +123 -0
- data/node_modules/selenium-webdriver/lib/atoms/get-attribute.js +101 -0
- data/node_modules/selenium-webdriver/lib/atoms/is-displayed.js +101 -0
- data/node_modules/selenium-webdriver/lib/atoms/mutation-listener.js +55 -0
- data/node_modules/selenium-webdriver/lib/by.js +415 -0
- data/node_modules/selenium-webdriver/lib/capabilities.js +553 -0
- data/node_modules/selenium-webdriver/lib/command.js +206 -0
- data/node_modules/selenium-webdriver/lib/error.js +605 -0
- data/node_modules/selenium-webdriver/lib/http.js +704 -0
- data/node_modules/selenium-webdriver/lib/input.js +946 -0
- data/node_modules/selenium-webdriver/lib/logging.js +661 -0
- data/node_modules/selenium-webdriver/lib/promise.js +285 -0
- data/node_modules/selenium-webdriver/lib/proxy.js +212 -0
- data/node_modules/selenium-webdriver/lib/session.js +77 -0
- data/node_modules/selenium-webdriver/lib/symbols.js +37 -0
- data/node_modules/selenium-webdriver/lib/until.js +429 -0
- data/node_modules/selenium-webdriver/lib/webdriver.js +2919 -0
- data/node_modules/selenium-webdriver/net/index.js +107 -0
- data/node_modules/selenium-webdriver/net/portprober.js +75 -0
- data/node_modules/selenium-webdriver/opera.js +406 -0
- data/node_modules/selenium-webdriver/package.json +54 -0
- data/node_modules/selenium-webdriver/proxy.js +32 -0
- data/node_modules/selenium-webdriver/remote/index.js +624 -0
- data/node_modules/selenium-webdriver/safari.js +168 -0
- data/node_modules/selenium-webdriver/testing/index.js +504 -0
- data/node_modules/set-immediate-shim/index.js +7 -0
- data/node_modules/set-immediate-shim/package.json +34 -0
- data/node_modules/set-immediate-shim/readme.md +31 -0
- data/node_modules/string_decoder/.travis.yml +50 -0
- data/node_modules/string_decoder/LICENSE +48 -0
- data/node_modules/string_decoder/README.md +47 -0
- data/node_modules/string_decoder/lib/string_decoder.js +296 -0
- data/node_modules/string_decoder/package.json +31 -0
- data/node_modules/tmp/CHANGELOG.md +288 -0
- data/node_modules/tmp/LICENSE +21 -0
- data/node_modules/tmp/README.md +365 -0
- data/node_modules/tmp/lib/tmp.js +780 -0
- data/node_modules/tmp/node_modules/.bin/rimraf +1 -0
- data/node_modules/tmp/node_modules/rimraf/CHANGELOG.md +65 -0
- data/node_modules/tmp/node_modules/rimraf/LICENSE +15 -0
- data/node_modules/tmp/node_modules/rimraf/README.md +101 -0
- data/node_modules/tmp/node_modules/rimraf/bin.js +68 -0
- data/node_modules/tmp/node_modules/rimraf/package.json +32 -0
- data/node_modules/tmp/node_modules/rimraf/rimraf.js +360 -0
- data/node_modules/tmp/package.json +58 -0
- data/node_modules/util-deprecate/History.md +16 -0
- data/node_modules/util-deprecate/LICENSE +24 -0
- data/node_modules/util-deprecate/README.md +53 -0
- data/node_modules/util-deprecate/browser.js +67 -0
- data/node_modules/util-deprecate/node.js +6 -0
- data/node_modules/util-deprecate/package.json +27 -0
- data/node_modules/wrappy/LICENSE +15 -0
- data/node_modules/wrappy/README.md +36 -0
- data/node_modules/wrappy/package.json +29 -0
- data/node_modules/wrappy/wrappy.js +33 -0
- data/node_modules/ws/LICENSE +21 -0
- data/node_modules/ws/README.md +496 -0
- data/node_modules/ws/browser.js +8 -0
- data/node_modules/ws/index.js +10 -0
- data/node_modules/ws/lib/buffer-util.js +129 -0
- data/node_modules/ws/lib/constants.js +10 -0
- data/node_modules/ws/lib/event-target.js +184 -0
- data/node_modules/ws/lib/extension.js +223 -0
- data/node_modules/ws/lib/limiter.js +55 -0
- data/node_modules/ws/lib/permessage-deflate.js +517 -0
- data/node_modules/ws/lib/receiver.js +507 -0
- data/node_modules/ws/lib/sender.js +405 -0
- data/node_modules/ws/lib/stream.js +165 -0
- data/node_modules/ws/lib/validation.js +104 -0
- data/node_modules/ws/lib/websocket-server.js +418 -0
- data/node_modules/ws/lib/websocket.js +942 -0
- data/node_modules/ws/package.json +56 -0
- data/package-lock.json +458 -0
- data/package.json +5 -0
- data/selenium.log +1 -0
- metadata +314 -19
@@ -0,0 +1,47 @@
|
|
1
|
+
{
|
2
|
+
"name": "brace-expansion",
|
3
|
+
"description": "Brace expansion as known from sh/bash",
|
4
|
+
"version": "1.1.11",
|
5
|
+
"repository": {
|
6
|
+
"type": "git",
|
7
|
+
"url": "git://github.com/juliangruber/brace-expansion.git"
|
8
|
+
},
|
9
|
+
"homepage": "https://github.com/juliangruber/brace-expansion",
|
10
|
+
"main": "index.js",
|
11
|
+
"scripts": {
|
12
|
+
"test": "tape test/*.js",
|
13
|
+
"gentest": "bash test/generate.sh",
|
14
|
+
"bench": "matcha test/perf/bench.js"
|
15
|
+
},
|
16
|
+
"dependencies": {
|
17
|
+
"balanced-match": "^1.0.0",
|
18
|
+
"concat-map": "0.0.1"
|
19
|
+
},
|
20
|
+
"devDependencies": {
|
21
|
+
"matcha": "^0.7.0",
|
22
|
+
"tape": "^4.6.0"
|
23
|
+
},
|
24
|
+
"keywords": [],
|
25
|
+
"author": {
|
26
|
+
"name": "Julian Gruber",
|
27
|
+
"email": "mail@juliangruber.com",
|
28
|
+
"url": "http://juliangruber.com"
|
29
|
+
},
|
30
|
+
"license": "MIT",
|
31
|
+
"testling": {
|
32
|
+
"files": "test/*.js",
|
33
|
+
"browsers": [
|
34
|
+
"ie/8..latest",
|
35
|
+
"firefox/20..latest",
|
36
|
+
"firefox/nightly",
|
37
|
+
"chrome/25..latest",
|
38
|
+
"chrome/canary",
|
39
|
+
"opera/12..latest",
|
40
|
+
"opera/next",
|
41
|
+
"safari/5.1..latest",
|
42
|
+
"ipad/6.0..latest",
|
43
|
+
"iphone/6.0..latest",
|
44
|
+
"android-browser/4.2..latest"
|
45
|
+
]
|
46
|
+
}
|
47
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
This software is released under the MIT license:
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
5
|
+
the Software without restriction, including without limitation the rights to
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
7
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
8
|
+
subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
11
|
+
copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
15
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
16
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
17
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
18
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,62 @@
|
|
1
|
+
concat-map
|
2
|
+
==========
|
3
|
+
|
4
|
+
Concatenative mapdashery.
|
5
|
+
|
6
|
+
[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map)
|
7
|
+
|
8
|
+
[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map)
|
9
|
+
|
10
|
+
example
|
11
|
+
=======
|
12
|
+
|
13
|
+
``` js
|
14
|
+
var concatMap = require('concat-map');
|
15
|
+
var xs = [ 1, 2, 3, 4, 5, 6 ];
|
16
|
+
var ys = concatMap(xs, function (x) {
|
17
|
+
return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
|
18
|
+
});
|
19
|
+
console.dir(ys);
|
20
|
+
```
|
21
|
+
|
22
|
+
***
|
23
|
+
|
24
|
+
```
|
25
|
+
[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]
|
26
|
+
```
|
27
|
+
|
28
|
+
methods
|
29
|
+
=======
|
30
|
+
|
31
|
+
``` js
|
32
|
+
var concatMap = require('concat-map')
|
33
|
+
```
|
34
|
+
|
35
|
+
concatMap(xs, fn)
|
36
|
+
-----------------
|
37
|
+
|
38
|
+
Return an array of concatenated elements by calling `fn(x, i)` for each element
|
39
|
+
`x` and each index `i` in the array `xs`.
|
40
|
+
|
41
|
+
When `fn(x, i)` returns an array, its result will be concatenated with the
|
42
|
+
result array. If `fn(x, i)` returns anything else, that value will be pushed
|
43
|
+
onto the end of the result array.
|
44
|
+
|
45
|
+
install
|
46
|
+
=======
|
47
|
+
|
48
|
+
With [npm](http://npmjs.org) do:
|
49
|
+
|
50
|
+
```
|
51
|
+
npm install concat-map
|
52
|
+
```
|
53
|
+
|
54
|
+
license
|
55
|
+
=======
|
56
|
+
|
57
|
+
MIT
|
58
|
+
|
59
|
+
notes
|
60
|
+
=====
|
61
|
+
|
62
|
+
This module was written while sitting high above the ground in a tree.
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module.exports = function (xs, fn) {
|
2
|
+
var res = [];
|
3
|
+
for (var i = 0; i < xs.length; i++) {
|
4
|
+
var x = fn(xs[i], i);
|
5
|
+
if (isArray(x)) res.push.apply(res, x);
|
6
|
+
else res.push(x);
|
7
|
+
}
|
8
|
+
return res;
|
9
|
+
};
|
10
|
+
|
11
|
+
var isArray = Array.isArray || function (xs) {
|
12
|
+
return Object.prototype.toString.call(xs) === '[object Array]';
|
13
|
+
};
|
@@ -0,0 +1,43 @@
|
|
1
|
+
{
|
2
|
+
"name" : "concat-map",
|
3
|
+
"description" : "concatenative mapdashery",
|
4
|
+
"version" : "0.0.1",
|
5
|
+
"repository" : {
|
6
|
+
"type" : "git",
|
7
|
+
"url" : "git://github.com/substack/node-concat-map.git"
|
8
|
+
},
|
9
|
+
"main" : "index.js",
|
10
|
+
"keywords" : [
|
11
|
+
"concat",
|
12
|
+
"concatMap",
|
13
|
+
"map",
|
14
|
+
"functional",
|
15
|
+
"higher-order"
|
16
|
+
],
|
17
|
+
"directories" : {
|
18
|
+
"example" : "example",
|
19
|
+
"test" : "test"
|
20
|
+
},
|
21
|
+
"scripts" : {
|
22
|
+
"test" : "tape test/*.js"
|
23
|
+
},
|
24
|
+
"devDependencies" : {
|
25
|
+
"tape" : "~2.4.0"
|
26
|
+
},
|
27
|
+
"license" : "MIT",
|
28
|
+
"author" : {
|
29
|
+
"name" : "James Halliday",
|
30
|
+
"email" : "mail@substack.net",
|
31
|
+
"url" : "http://substack.net"
|
32
|
+
},
|
33
|
+
"testling" : {
|
34
|
+
"files" : "test/*.js",
|
35
|
+
"browsers" : {
|
36
|
+
"ie" : [ 6, 7, 8, 9 ],
|
37
|
+
"ff" : [ 3.5, 10, 15.0 ],
|
38
|
+
"chrome" : [ 10, 22 ],
|
39
|
+
"safari" : [ 5.1 ],
|
40
|
+
"opera" : [ 12 ]
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
var concatMap = require('../');
|
2
|
+
var test = require('tape');
|
3
|
+
|
4
|
+
test('empty or not', function (t) {
|
5
|
+
var xs = [ 1, 2, 3, 4, 5, 6 ];
|
6
|
+
var ixes = [];
|
7
|
+
var ys = concatMap(xs, function (x, ix) {
|
8
|
+
ixes.push(ix);
|
9
|
+
return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
|
10
|
+
});
|
11
|
+
t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]);
|
12
|
+
t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]);
|
13
|
+
t.end();
|
14
|
+
});
|
15
|
+
|
16
|
+
test('always something', function (t) {
|
17
|
+
var xs = [ 'a', 'b', 'c', 'd' ];
|
18
|
+
var ys = concatMap(xs, function (x) {
|
19
|
+
return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ];
|
20
|
+
});
|
21
|
+
t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
|
22
|
+
t.end();
|
23
|
+
});
|
24
|
+
|
25
|
+
test('scalars', function (t) {
|
26
|
+
var xs = [ 'a', 'b', 'c', 'd' ];
|
27
|
+
var ys = concatMap(xs, function (x) {
|
28
|
+
return x === 'b' ? [ 'B', 'B', 'B' ] : x;
|
29
|
+
});
|
30
|
+
t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
|
31
|
+
t.end();
|
32
|
+
});
|
33
|
+
|
34
|
+
test('undefs', function (t) {
|
35
|
+
var xs = [ 'a', 'b', 'c', 'd' ];
|
36
|
+
var ys = concatMap(xs, function () {});
|
37
|
+
t.same(ys, [ undefined, undefined, undefined, undefined ]);
|
38
|
+
t.end();
|
39
|
+
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright Node.js contributors. All rights reserved.
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to
|
5
|
+
deal in the Software without restriction, including without limitation the
|
6
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
7
|
+
sell copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
18
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
19
|
+
IN THE SOFTWARE.
|
@@ -0,0 +1,604 @@
|
|
1
|
+
diff --git a/lib/util.js b/lib/util.js
|
2
|
+
index a03e874..9074e8e 100644
|
3
|
+
--- a/lib/util.js
|
4
|
+
+++ b/lib/util.js
|
5
|
+
@@ -19,430 +19,6 @@
|
6
|
+
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
7
|
+
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
8
|
+
|
9
|
+
-var formatRegExp = /%[sdj%]/g;
|
10
|
+
-exports.format = function(f) {
|
11
|
+
- if (!isString(f)) {
|
12
|
+
- var objects = [];
|
13
|
+
- for (var i = 0; i < arguments.length; i++) {
|
14
|
+
- objects.push(inspect(arguments[i]));
|
15
|
+
- }
|
16
|
+
- return objects.join(' ');
|
17
|
+
- }
|
18
|
+
-
|
19
|
+
- var i = 1;
|
20
|
+
- var args = arguments;
|
21
|
+
- var len = args.length;
|
22
|
+
- var str = String(f).replace(formatRegExp, function(x) {
|
23
|
+
- if (x === '%%') return '%';
|
24
|
+
- if (i >= len) return x;
|
25
|
+
- switch (x) {
|
26
|
+
- case '%s': return String(args[i++]);
|
27
|
+
- case '%d': return Number(args[i++]);
|
28
|
+
- case '%j':
|
29
|
+
- try {
|
30
|
+
- return JSON.stringify(args[i++]);
|
31
|
+
- } catch (_) {
|
32
|
+
- return '[Circular]';
|
33
|
+
- }
|
34
|
+
- default:
|
35
|
+
- return x;
|
36
|
+
- }
|
37
|
+
- });
|
38
|
+
- for (var x = args[i]; i < len; x = args[++i]) {
|
39
|
+
- if (isNull(x) || !isObject(x)) {
|
40
|
+
- str += ' ' + x;
|
41
|
+
- } else {
|
42
|
+
- str += ' ' + inspect(x);
|
43
|
+
- }
|
44
|
+
- }
|
45
|
+
- return str;
|
46
|
+
-};
|
47
|
+
-
|
48
|
+
-
|
49
|
+
-// Mark that a method should not be used.
|
50
|
+
-// Returns a modified function which warns once by default.
|
51
|
+
-// If --no-deprecation is set, then it is a no-op.
|
52
|
+
-exports.deprecate = function(fn, msg) {
|
53
|
+
- // Allow for deprecating things in the process of starting up.
|
54
|
+
- if (isUndefined(global.process)) {
|
55
|
+
- return function() {
|
56
|
+
- return exports.deprecate(fn, msg).apply(this, arguments);
|
57
|
+
- };
|
58
|
+
- }
|
59
|
+
-
|
60
|
+
- if (process.noDeprecation === true) {
|
61
|
+
- return fn;
|
62
|
+
- }
|
63
|
+
-
|
64
|
+
- var warned = false;
|
65
|
+
- function deprecated() {
|
66
|
+
- if (!warned) {
|
67
|
+
- if (process.throwDeprecation) {
|
68
|
+
- throw new Error(msg);
|
69
|
+
- } else if (process.traceDeprecation) {
|
70
|
+
- console.trace(msg);
|
71
|
+
- } else {
|
72
|
+
- console.error(msg);
|
73
|
+
- }
|
74
|
+
- warned = true;
|
75
|
+
- }
|
76
|
+
- return fn.apply(this, arguments);
|
77
|
+
- }
|
78
|
+
-
|
79
|
+
- return deprecated;
|
80
|
+
-};
|
81
|
+
-
|
82
|
+
-
|
83
|
+
-var debugs = {};
|
84
|
+
-var debugEnviron;
|
85
|
+
-exports.debuglog = function(set) {
|
86
|
+
- if (isUndefined(debugEnviron))
|
87
|
+
- debugEnviron = process.env.NODE_DEBUG || '';
|
88
|
+
- set = set.toUpperCase();
|
89
|
+
- if (!debugs[set]) {
|
90
|
+
- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
|
91
|
+
- var pid = process.pid;
|
92
|
+
- debugs[set] = function() {
|
93
|
+
- var msg = exports.format.apply(exports, arguments);
|
94
|
+
- console.error('%s %d: %s', set, pid, msg);
|
95
|
+
- };
|
96
|
+
- } else {
|
97
|
+
- debugs[set] = function() {};
|
98
|
+
- }
|
99
|
+
- }
|
100
|
+
- return debugs[set];
|
101
|
+
-};
|
102
|
+
-
|
103
|
+
-
|
104
|
+
-/**
|
105
|
+
- * Echos the value of a value. Trys to print the value out
|
106
|
+
- * in the best way possible given the different types.
|
107
|
+
- *
|
108
|
+
- * @param {Object} obj The object to print out.
|
109
|
+
- * @param {Object} opts Optional options object that alters the output.
|
110
|
+
- */
|
111
|
+
-/* legacy: obj, showHidden, depth, colors*/
|
112
|
+
-function inspect(obj, opts) {
|
113
|
+
- // default options
|
114
|
+
- var ctx = {
|
115
|
+
- seen: [],
|
116
|
+
- stylize: stylizeNoColor
|
117
|
+
- };
|
118
|
+
- // legacy...
|
119
|
+
- if (arguments.length >= 3) ctx.depth = arguments[2];
|
120
|
+
- if (arguments.length >= 4) ctx.colors = arguments[3];
|
121
|
+
- if (isBoolean(opts)) {
|
122
|
+
- // legacy...
|
123
|
+
- ctx.showHidden = opts;
|
124
|
+
- } else if (opts) {
|
125
|
+
- // got an "options" object
|
126
|
+
- exports._extend(ctx, opts);
|
127
|
+
- }
|
128
|
+
- // set default options
|
129
|
+
- if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
|
130
|
+
- if (isUndefined(ctx.depth)) ctx.depth = 2;
|
131
|
+
- if (isUndefined(ctx.colors)) ctx.colors = false;
|
132
|
+
- if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
|
133
|
+
- if (ctx.colors) ctx.stylize = stylizeWithColor;
|
134
|
+
- return formatValue(ctx, obj, ctx.depth);
|
135
|
+
-}
|
136
|
+
-exports.inspect = inspect;
|
137
|
+
-
|
138
|
+
-
|
139
|
+
-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
|
140
|
+
-inspect.colors = {
|
141
|
+
- 'bold' : [1, 22],
|
142
|
+
- 'italic' : [3, 23],
|
143
|
+
- 'underline' : [4, 24],
|
144
|
+
- 'inverse' : [7, 27],
|
145
|
+
- 'white' : [37, 39],
|
146
|
+
- 'grey' : [90, 39],
|
147
|
+
- 'black' : [30, 39],
|
148
|
+
- 'blue' : [34, 39],
|
149
|
+
- 'cyan' : [36, 39],
|
150
|
+
- 'green' : [32, 39],
|
151
|
+
- 'magenta' : [35, 39],
|
152
|
+
- 'red' : [31, 39],
|
153
|
+
- 'yellow' : [33, 39]
|
154
|
+
-};
|
155
|
+
-
|
156
|
+
-// Don't use 'blue' not visible on cmd.exe
|
157
|
+
-inspect.styles = {
|
158
|
+
- 'special': 'cyan',
|
159
|
+
- 'number': 'yellow',
|
160
|
+
- 'boolean': 'yellow',
|
161
|
+
- 'undefined': 'grey',
|
162
|
+
- 'null': 'bold',
|
163
|
+
- 'string': 'green',
|
164
|
+
- 'date': 'magenta',
|
165
|
+
- // "name": intentionally not styling
|
166
|
+
- 'regexp': 'red'
|
167
|
+
-};
|
168
|
+
-
|
169
|
+
-
|
170
|
+
-function stylizeWithColor(str, styleType) {
|
171
|
+
- var style = inspect.styles[styleType];
|
172
|
+
-
|
173
|
+
- if (style) {
|
174
|
+
- return '\u001b[' + inspect.colors[style][0] + 'm' + str +
|
175
|
+
- '\u001b[' + inspect.colors[style][1] + 'm';
|
176
|
+
- } else {
|
177
|
+
- return str;
|
178
|
+
- }
|
179
|
+
-}
|
180
|
+
-
|
181
|
+
-
|
182
|
+
-function stylizeNoColor(str, styleType) {
|
183
|
+
- return str;
|
184
|
+
-}
|
185
|
+
-
|
186
|
+
-
|
187
|
+
-function arrayToHash(array) {
|
188
|
+
- var hash = {};
|
189
|
+
-
|
190
|
+
- array.forEach(function(val, idx) {
|
191
|
+
- hash[val] = true;
|
192
|
+
- });
|
193
|
+
-
|
194
|
+
- return hash;
|
195
|
+
-}
|
196
|
+
-
|
197
|
+
-
|
198
|
+
-function formatValue(ctx, value, recurseTimes) {
|
199
|
+
- // Provide a hook for user-specified inspect functions.
|
200
|
+
- // Check that value is an object with an inspect function on it
|
201
|
+
- if (ctx.customInspect &&
|
202
|
+
- value &&
|
203
|
+
- isFunction(value.inspect) &&
|
204
|
+
- // Filter out the util module, it's inspect function is special
|
205
|
+
- value.inspect !== exports.inspect &&
|
206
|
+
- // Also filter out any prototype objects using the circular check.
|
207
|
+
- !(value.constructor && value.constructor.prototype === value)) {
|
208
|
+
- var ret = value.inspect(recurseTimes, ctx);
|
209
|
+
- if (!isString(ret)) {
|
210
|
+
- ret = formatValue(ctx, ret, recurseTimes);
|
211
|
+
- }
|
212
|
+
- return ret;
|
213
|
+
- }
|
214
|
+
-
|
215
|
+
- // Primitive types cannot have properties
|
216
|
+
- var primitive = formatPrimitive(ctx, value);
|
217
|
+
- if (primitive) {
|
218
|
+
- return primitive;
|
219
|
+
- }
|
220
|
+
-
|
221
|
+
- // Look up the keys of the object.
|
222
|
+
- var keys = Object.keys(value);
|
223
|
+
- var visibleKeys = arrayToHash(keys);
|
224
|
+
-
|
225
|
+
- if (ctx.showHidden) {
|
226
|
+
- keys = Object.getOwnPropertyNames(value);
|
227
|
+
- }
|
228
|
+
-
|
229
|
+
- // Some type of object without properties can be shortcutted.
|
230
|
+
- if (keys.length === 0) {
|
231
|
+
- if (isFunction(value)) {
|
232
|
+
- var name = value.name ? ': ' + value.name : '';
|
233
|
+
- return ctx.stylize('[Function' + name + ']', 'special');
|
234
|
+
- }
|
235
|
+
- if (isRegExp(value)) {
|
236
|
+
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
|
237
|
+
- }
|
238
|
+
- if (isDate(value)) {
|
239
|
+
- return ctx.stylize(Date.prototype.toString.call(value), 'date');
|
240
|
+
- }
|
241
|
+
- if (isError(value)) {
|
242
|
+
- return formatError(value);
|
243
|
+
- }
|
244
|
+
- }
|
245
|
+
-
|
246
|
+
- var base = '', array = false, braces = ['{', '}'];
|
247
|
+
-
|
248
|
+
- // Make Array say that they are Array
|
249
|
+
- if (isArray(value)) {
|
250
|
+
- array = true;
|
251
|
+
- braces = ['[', ']'];
|
252
|
+
- }
|
253
|
+
-
|
254
|
+
- // Make functions say that they are functions
|
255
|
+
- if (isFunction(value)) {
|
256
|
+
- var n = value.name ? ': ' + value.name : '';
|
257
|
+
- base = ' [Function' + n + ']';
|
258
|
+
- }
|
259
|
+
-
|
260
|
+
- // Make RegExps say that they are RegExps
|
261
|
+
- if (isRegExp(value)) {
|
262
|
+
- base = ' ' + RegExp.prototype.toString.call(value);
|
263
|
+
- }
|
264
|
+
-
|
265
|
+
- // Make dates with properties first say the date
|
266
|
+
- if (isDate(value)) {
|
267
|
+
- base = ' ' + Date.prototype.toUTCString.call(value);
|
268
|
+
- }
|
269
|
+
-
|
270
|
+
- // Make error with message first say the error
|
271
|
+
- if (isError(value)) {
|
272
|
+
- base = ' ' + formatError(value);
|
273
|
+
- }
|
274
|
+
-
|
275
|
+
- if (keys.length === 0 && (!array || value.length == 0)) {
|
276
|
+
- return braces[0] + base + braces[1];
|
277
|
+
- }
|
278
|
+
-
|
279
|
+
- if (recurseTimes < 0) {
|
280
|
+
- if (isRegExp(value)) {
|
281
|
+
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
|
282
|
+
- } else {
|
283
|
+
- return ctx.stylize('[Object]', 'special');
|
284
|
+
- }
|
285
|
+
- }
|
286
|
+
-
|
287
|
+
- ctx.seen.push(value);
|
288
|
+
-
|
289
|
+
- var output;
|
290
|
+
- if (array) {
|
291
|
+
- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
|
292
|
+
- } else {
|
293
|
+
- output = keys.map(function(key) {
|
294
|
+
- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
|
295
|
+
- });
|
296
|
+
- }
|
297
|
+
-
|
298
|
+
- ctx.seen.pop();
|
299
|
+
-
|
300
|
+
- return reduceToSingleString(output, base, braces);
|
301
|
+
-}
|
302
|
+
-
|
303
|
+
-
|
304
|
+
-function formatPrimitive(ctx, value) {
|
305
|
+
- if (isUndefined(value))
|
306
|
+
- return ctx.stylize('undefined', 'undefined');
|
307
|
+
- if (isString(value)) {
|
308
|
+
- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
|
309
|
+
- .replace(/'/g, "\\'")
|
310
|
+
- .replace(/\\"/g, '"') + '\'';
|
311
|
+
- return ctx.stylize(simple, 'string');
|
312
|
+
- }
|
313
|
+
- if (isNumber(value)) {
|
314
|
+
- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0,
|
315
|
+
- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 .
|
316
|
+
- if (value === 0 && 1 / value < 0)
|
317
|
+
- return ctx.stylize('-0', 'number');
|
318
|
+
- return ctx.stylize('' + value, 'number');
|
319
|
+
- }
|
320
|
+
- if (isBoolean(value))
|
321
|
+
- return ctx.stylize('' + value, 'boolean');
|
322
|
+
- // For some reason typeof null is "object", so special case here.
|
323
|
+
- if (isNull(value))
|
324
|
+
- return ctx.stylize('null', 'null');
|
325
|
+
-}
|
326
|
+
-
|
327
|
+
-
|
328
|
+
-function formatError(value) {
|
329
|
+
- return '[' + Error.prototype.toString.call(value) + ']';
|
330
|
+
-}
|
331
|
+
-
|
332
|
+
-
|
333
|
+
-function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
|
334
|
+
- var output = [];
|
335
|
+
- for (var i = 0, l = value.length; i < l; ++i) {
|
336
|
+
- if (hasOwnProperty(value, String(i))) {
|
337
|
+
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
|
338
|
+
- String(i), true));
|
339
|
+
- } else {
|
340
|
+
- output.push('');
|
341
|
+
- }
|
342
|
+
- }
|
343
|
+
- keys.forEach(function(key) {
|
344
|
+
- if (!key.match(/^\d+$/)) {
|
345
|
+
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
|
346
|
+
- key, true));
|
347
|
+
- }
|
348
|
+
- });
|
349
|
+
- return output;
|
350
|
+
-}
|
351
|
+
-
|
352
|
+
-
|
353
|
+
-function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
|
354
|
+
- var name, str, desc;
|
355
|
+
- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
|
356
|
+
- if (desc.get) {
|
357
|
+
- if (desc.set) {
|
358
|
+
- str = ctx.stylize('[Getter/Setter]', 'special');
|
359
|
+
- } else {
|
360
|
+
- str = ctx.stylize('[Getter]', 'special');
|
361
|
+
- }
|
362
|
+
- } else {
|
363
|
+
- if (desc.set) {
|
364
|
+
- str = ctx.stylize('[Setter]', 'special');
|
365
|
+
- }
|
366
|
+
- }
|
367
|
+
- if (!hasOwnProperty(visibleKeys, key)) {
|
368
|
+
- name = '[' + key + ']';
|
369
|
+
- }
|
370
|
+
- if (!str) {
|
371
|
+
- if (ctx.seen.indexOf(desc.value) < 0) {
|
372
|
+
- if (isNull(recurseTimes)) {
|
373
|
+
- str = formatValue(ctx, desc.value, null);
|
374
|
+
- } else {
|
375
|
+
- str = formatValue(ctx, desc.value, recurseTimes - 1);
|
376
|
+
- }
|
377
|
+
- if (str.indexOf('\n') > -1) {
|
378
|
+
- if (array) {
|
379
|
+
- str = str.split('\n').map(function(line) {
|
380
|
+
- return ' ' + line;
|
381
|
+
- }).join('\n').substr(2);
|
382
|
+
- } else {
|
383
|
+
- str = '\n' + str.split('\n').map(function(line) {
|
384
|
+
- return ' ' + line;
|
385
|
+
- }).join('\n');
|
386
|
+
- }
|
387
|
+
- }
|
388
|
+
- } else {
|
389
|
+
- str = ctx.stylize('[Circular]', 'special');
|
390
|
+
- }
|
391
|
+
- }
|
392
|
+
- if (isUndefined(name)) {
|
393
|
+
- if (array && key.match(/^\d+$/)) {
|
394
|
+
- return str;
|
395
|
+
- }
|
396
|
+
- name = JSON.stringify('' + key);
|
397
|
+
- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
|
398
|
+
- name = name.substr(1, name.length - 2);
|
399
|
+
- name = ctx.stylize(name, 'name');
|
400
|
+
- } else {
|
401
|
+
- name = name.replace(/'/g, "\\'")
|
402
|
+
- .replace(/\\"/g, '"')
|
403
|
+
- .replace(/(^"|"$)/g, "'");
|
404
|
+
- name = ctx.stylize(name, 'string');
|
405
|
+
- }
|
406
|
+
- }
|
407
|
+
-
|
408
|
+
- return name + ': ' + str;
|
409
|
+
-}
|
410
|
+
-
|
411
|
+
-
|
412
|
+
-function reduceToSingleString(output, base, braces) {
|
413
|
+
- var numLinesEst = 0;
|
414
|
+
- var length = output.reduce(function(prev, cur) {
|
415
|
+
- numLinesEst++;
|
416
|
+
- if (cur.indexOf('\n') >= 0) numLinesEst++;
|
417
|
+
- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
|
418
|
+
- }, 0);
|
419
|
+
-
|
420
|
+
- if (length > 60) {
|
421
|
+
- return braces[0] +
|
422
|
+
- (base === '' ? '' : base + '\n ') +
|
423
|
+
- ' ' +
|
424
|
+
- output.join(',\n ') +
|
425
|
+
- ' ' +
|
426
|
+
- braces[1];
|
427
|
+
- }
|
428
|
+
-
|
429
|
+
- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
|
430
|
+
-}
|
431
|
+
-
|
432
|
+
-
|
433
|
+
// NOTE: These type checking functions intentionally don't use `instanceof`
|
434
|
+
// because it is fragile and can be easily faked with `Object.create()`.
|
435
|
+
function isArray(ar) {
|
436
|
+
@@ -522,166 +98,10 @@ function isPrimitive(arg) {
|
437
|
+
exports.isPrimitive = isPrimitive;
|
438
|
+
|
439
|
+
function isBuffer(arg) {
|
440
|
+
- return arg instanceof Buffer;
|
441
|
+
+ return Buffer.isBuffer(arg);
|
442
|
+
}
|
443
|
+
exports.isBuffer = isBuffer;
|
444
|
+
|
445
|
+
function objectToString(o) {
|
446
|
+
return Object.prototype.toString.call(o);
|
447
|
+
-}
|
448
|
+
-
|
449
|
+
-
|
450
|
+
-function pad(n) {
|
451
|
+
- return n < 10 ? '0' + n.toString(10) : n.toString(10);
|
452
|
+
-}
|
453
|
+
-
|
454
|
+
-
|
455
|
+
-var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
|
456
|
+
- 'Oct', 'Nov', 'Dec'];
|
457
|
+
-
|
458
|
+
-// 26 Feb 16:19:34
|
459
|
+
-function timestamp() {
|
460
|
+
- var d = new Date();
|
461
|
+
- var time = [pad(d.getHours()),
|
462
|
+
- pad(d.getMinutes()),
|
463
|
+
- pad(d.getSeconds())].join(':');
|
464
|
+
- return [d.getDate(), months[d.getMonth()], time].join(' ');
|
465
|
+
-}
|
466
|
+
-
|
467
|
+
-
|
468
|
+
-// log is just a thin wrapper to console.log that prepends a timestamp
|
469
|
+
-exports.log = function() {
|
470
|
+
- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
|
471
|
+
-};
|
472
|
+
-
|
473
|
+
-
|
474
|
+
-/**
|
475
|
+
- * Inherit the prototype methods from one constructor into another.
|
476
|
+
- *
|
477
|
+
- * The Function.prototype.inherits from lang.js rewritten as a standalone
|
478
|
+
- * function (not on Function.prototype). NOTE: If this file is to be loaded
|
479
|
+
- * during bootstrapping this function needs to be rewritten using some native
|
480
|
+
- * functions as prototype setup using normal JavaScript does not work as
|
481
|
+
- * expected during bootstrapping (see mirror.js in r114903).
|
482
|
+
- *
|
483
|
+
- * @param {function} ctor Constructor function which needs to inherit the
|
484
|
+
- * prototype.
|
485
|
+
- * @param {function} superCtor Constructor function to inherit prototype from.
|
486
|
+
- */
|
487
|
+
-exports.inherits = function(ctor, superCtor) {
|
488
|
+
- ctor.super_ = superCtor;
|
489
|
+
- ctor.prototype = Object.create(superCtor.prototype, {
|
490
|
+
- constructor: {
|
491
|
+
- value: ctor,
|
492
|
+
- enumerable: false,
|
493
|
+
- writable: true,
|
494
|
+
- configurable: true
|
495
|
+
- }
|
496
|
+
- });
|
497
|
+
-};
|
498
|
+
-
|
499
|
+
-exports._extend = function(origin, add) {
|
500
|
+
- // Don't do anything if add isn't an object
|
501
|
+
- if (!add || !isObject(add)) return origin;
|
502
|
+
-
|
503
|
+
- var keys = Object.keys(add);
|
504
|
+
- var i = keys.length;
|
505
|
+
- while (i--) {
|
506
|
+
- origin[keys[i]] = add[keys[i]];
|
507
|
+
- }
|
508
|
+
- return origin;
|
509
|
+
-};
|
510
|
+
-
|
511
|
+
-function hasOwnProperty(obj, prop) {
|
512
|
+
- return Object.prototype.hasOwnProperty.call(obj, prop);
|
513
|
+
-}
|
514
|
+
-
|
515
|
+
-
|
516
|
+
-// Deprecated old stuff.
|
517
|
+
-
|
518
|
+
-exports.p = exports.deprecate(function() {
|
519
|
+
- for (var i = 0, len = arguments.length; i < len; ++i) {
|
520
|
+
- console.error(exports.inspect(arguments[i]));
|
521
|
+
- }
|
522
|
+
-}, 'util.p: Use console.error() instead');
|
523
|
+
-
|
524
|
+
-
|
525
|
+
-exports.exec = exports.deprecate(function() {
|
526
|
+
- return require('child_process').exec.apply(this, arguments);
|
527
|
+
-}, 'util.exec is now called `child_process.exec`.');
|
528
|
+
-
|
529
|
+
-
|
530
|
+
-exports.print = exports.deprecate(function() {
|
531
|
+
- for (var i = 0, len = arguments.length; i < len; ++i) {
|
532
|
+
- process.stdout.write(String(arguments[i]));
|
533
|
+
- }
|
534
|
+
-}, 'util.print: Use console.log instead');
|
535
|
+
-
|
536
|
+
-
|
537
|
+
-exports.puts = exports.deprecate(function() {
|
538
|
+
- for (var i = 0, len = arguments.length; i < len; ++i) {
|
539
|
+
- process.stdout.write(arguments[i] + '\n');
|
540
|
+
- }
|
541
|
+
-}, 'util.puts: Use console.log instead');
|
542
|
+
-
|
543
|
+
-
|
544
|
+
-exports.debug = exports.deprecate(function(x) {
|
545
|
+
- process.stderr.write('DEBUG: ' + x + '\n');
|
546
|
+
-}, 'util.debug: Use console.error instead');
|
547
|
+
-
|
548
|
+
-
|
549
|
+
-exports.error = exports.deprecate(function(x) {
|
550
|
+
- for (var i = 0, len = arguments.length; i < len; ++i) {
|
551
|
+
- process.stderr.write(arguments[i] + '\n');
|
552
|
+
- }
|
553
|
+
-}, 'util.error: Use console.error instead');
|
554
|
+
-
|
555
|
+
-
|
556
|
+
-exports.pump = exports.deprecate(function(readStream, writeStream, callback) {
|
557
|
+
- var callbackCalled = false;
|
558
|
+
-
|
559
|
+
- function call(a, b, c) {
|
560
|
+
- if (callback && !callbackCalled) {
|
561
|
+
- callback(a, b, c);
|
562
|
+
- callbackCalled = true;
|
563
|
+
- }
|
564
|
+
- }
|
565
|
+
-
|
566
|
+
- readStream.addListener('data', function(chunk) {
|
567
|
+
- if (writeStream.write(chunk) === false) readStream.pause();
|
568
|
+
- });
|
569
|
+
-
|
570
|
+
- writeStream.addListener('drain', function() {
|
571
|
+
- readStream.resume();
|
572
|
+
- });
|
573
|
+
-
|
574
|
+
- readStream.addListener('end', function() {
|
575
|
+
- writeStream.end();
|
576
|
+
- });
|
577
|
+
-
|
578
|
+
- readStream.addListener('close', function() {
|
579
|
+
- call();
|
580
|
+
- });
|
581
|
+
-
|
582
|
+
- readStream.addListener('error', function(err) {
|
583
|
+
- writeStream.end();
|
584
|
+
- call(err);
|
585
|
+
- });
|
586
|
+
-
|
587
|
+
- writeStream.addListener('error', function(err) {
|
588
|
+
- readStream.destroy();
|
589
|
+
- call(err);
|
590
|
+
- });
|
591
|
+
-}, 'util.pump(): Use readableStream.pipe() instead');
|
592
|
+
-
|
593
|
+
-
|
594
|
+
-var uv;
|
595
|
+
-exports._errnoException = function(err, syscall) {
|
596
|
+
- if (isUndefined(uv)) uv = process.binding('uv');
|
597
|
+
- var errname = uv.errname(err);
|
598
|
+
- var e = new Error(syscall + ' ' + errname);
|
599
|
+
- e.code = errname;
|
600
|
+
- e.errno = errname;
|
601
|
+
- e.syscall = syscall;
|
602
|
+
- return e;
|
603
|
+
-};
|
604
|
+
+}
|