File: README.md
Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with Node.js and installable via npm i async, it can also be used directly in the browser. An ESM/MJS version is included in the main async package that should automatically be used with compatible bundlers such as Webpack and Rollup.
A pure ESM version of Async is available as async-es.
For Documentation, visit https://caolan.github.io/async/
For Async v1.5.x documentation, go HERE
// for use with Node-style callbacks...
var async = require("async");
var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"};
var configs = {};
async.forEachOf(obj, (value, key, callback) => {
fs.readFile(__dirname + value, "utf8", (err, data) => {
if (err) return callback(err);
try {
configs[key] = JSON.parse(data);
} catch (e) {
return callback(e);
}
callback();
});
}, err => {
if (err) console.error(err.message);
// configs is now a map of JSON data
doSomethingWith(configs);
});var async = require("async");
// ...or ES2017 async functions
async.mapLimit(urls, 5, async function(url) {
const response = await fetch(url)
return response.body
}, (err, results) => {
if (err) throw err
// results is now an array of the response bodies
console.log(results)
})File: support/jsdoc/theme/README.md
Minami
A clean, responsive documentation template theme for JSDoc 3.
Uses
- the Taffy Database library
- Underscore Template library
- Montserrat & Helvetica Neue
Install
$ npm install --save-dev minamiUsage
Clone repository to your designated jsdoc template directory, then:
$ jsdoc entry-file.js -t path/to/minamiNode.js Dependency
In your projects package.json file add a generate script:
"script": {
"generate-docs": "node_modules/.bin/jsdoc --configure .jsdoc.json --verbose"
}In your .jsdoc.json file, add a template option.
"opts": {
"template": "node_modules/minami"
}Example JSDoc Config
{
"tags": {
"allowUnknownTags": true,
"dictionaries": ["jsdoc"]
},
"source": {
"include": ["lib", "package.json", "README.md"],
"includePattern": ".js$",
"excludePattern": "(node_modules/|docs)"
},
"plugins": [
"plugins/markdown"
],
"templates": {
"cleverLinks": false,
"monospaceLinks": true
},
"opts": {
"destination": "./docs/",
"encoding": "utf8",
"private": true,
"recurse": true,
"template": "./node_modules/minami"
}
}License
Licensed under the Apache2 license.
File: README.es.md
Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with Node.js and installable via npm install --save async, it can also be used directly in the browser.
This version of the package is optimized for building with webpack. If you use Async in Node.js, install async instead.
For Documentation, visit https://caolan.github.io/async/
For Async v1.5.x documentation, go HERE
// for use with callbacks...
import { forEachOf } from "async-es";
const images = {cat: "/cat.png", dog: "/dog.png", duck: "/duck.png"};
const sizes = {};
forEachOf(images, (value, key, callback) => {
const imageElem = new Image();
imageElem.src = value;
imageElem.addEventListener("load", () => {
sizes[key] = {
width: imageElem.naturalWidth,
height: imageElem.naturalHeight,
};
callback();
});
imageElem.addEventListener("error", (e) => {
callback(e);
});
}, err => {
if (err) console.error(err.message);
// `sizes` is now a map of image sizes
doSomethingWith(sizes);
});import { mapLimit } from "async-es";
// ...or ES2017 async functions
mapLimit(urls, 5, async function(url) {
const response = await fetch(url)
return response.body
}, (err, results) => {
if (err) throw err
// results is now an array of the response bodies
console.log(results)
})