mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 06:27:49 +00:00
Update fp doc generation.
This commit is contained in:
@@ -1,9 +1,45 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash'),
|
||||
fs = require('fs-extra'),
|
||||
path = require('path'),
|
||||
util = require('../common/util');
|
||||
|
||||
var basePath = path.join(__dirname, '..', '..'),
|
||||
docPath = path.join(basePath, 'doc'),
|
||||
readmePath = path.join(docPath, 'FP-Guide.md');
|
||||
|
||||
var mapping = require('../../fp/_mapping'),
|
||||
templatePath = path.join(__dirname, 'template/doc'),
|
||||
template = util.globTemplate(path.join(templatePath, '*.jst'));
|
||||
|
||||
var templateData = {
|
||||
'mapping': mapping,
|
||||
'toFuncList': toFuncList
|
||||
};
|
||||
|
||||
function toFuncList(array) {
|
||||
var chunks = _.chunk(array.slice().sort(), 5),
|
||||
lastChunk = _.last(chunks),
|
||||
last = lastChunk ? lastChunk.pop() : undefined;
|
||||
|
||||
var result = '`' + _.map(chunks, function(chunk) {
|
||||
return chunk.join('`, `') + '`';
|
||||
}).join(',\n`');
|
||||
|
||||
return result + (last == null ? '' : (', & `' + last + '`'));
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
function build(type) {
|
||||
|
||||
function onComplete(error) {
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
build(_.last(process.argv));
|
||||
function build() {
|
||||
fs.writeFile(readmePath, template.wiki(templateData), onComplete);
|
||||
}
|
||||
|
||||
build();
|
||||
|
||||
@@ -1 +1,65 @@
|
||||
## lodash/fp
|
||||
|
||||
The lodash/fp module is an instance of lodash with its methods wrapped to produce
|
||||
immutable auto-curried iteratee-first data-last methods.
|
||||
|
||||
## Installation
|
||||
|
||||
In a browser:
|
||||
```html
|
||||
<script src='path/to/lodash.js'></script>
|
||||
<script src='path/to/lodash.fp.js'></script>
|
||||
```
|
||||
|
||||
In Node.js:
|
||||
```js
|
||||
// load the fp build
|
||||
var _ = require('lodash/fp');
|
||||
|
||||
// or a method category
|
||||
var array = require('lodash/fp/object');
|
||||
|
||||
// or method for smaller builds with browserify/rollup/webpack
|
||||
var extend = require('lodash/fp/extend');
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
#### Arity
|
||||
|
||||
Methods with arity capped to one argument:<br>
|
||||
<%= toFuncList(mapping.aryMethod[1]) %>
|
||||
|
||||
Methods with arity capped to two arguments:<br>
|
||||
<%= toFuncList(mapping.aryMethod[2]) %>
|
||||
|
||||
Methods with arity capped to three arguments:<br>
|
||||
<%= toFuncList(mapping.aryMethod[3]) %>
|
||||
|
||||
Methods with arity capped to four arguments:<br>
|
||||
<%= toFuncList(mapping.aryMethod[4]) %>
|
||||
|
||||
#### Iteratees
|
||||
|
||||
Methods which provide iteratees one argument:<br>
|
||||
<%= toFuncList(_.keys(_.pick(mapping.iterateeAry, _.partial(_.eq, _, 1)))) %>
|
||||
|
||||
Methods which provide iteratees two argument:<br>
|
||||
<%= toFuncList(_.keys(_.pick(mapping.iterateeAry, _.partial(_.eq, _, 2)))) %>
|
||||
|
||||
#### New Methods
|
||||
|
||||
Methods created to accommodate Lodash’s variadic methods:<br>
|
||||
<%= toFuncList(_.keys(mapping.remap)) %>
|
||||
|
||||
#### Exceptions
|
||||
|
||||
Methods which have argument order unchanged:<br>
|
||||
<%= toFuncList(_.keys(mapping.skipRearg)) %>
|
||||
|
||||
#### Aliases
|
||||
|
||||
There are <%= _.size(mapping.aliasToReal) %> method aliases:<br>
|
||||
<%= _.map(mapping.aliasToReal, function(realName, alias) {
|
||||
return ' - Added `_.' + alias + '` as an alias of `_.' + realName + '`';
|
||||
}).join('\n') %>
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"build:main": "node lib/main/build-dist.js",
|
||||
"build:main-modules": "node lib/main/build-modules.js",
|
||||
"doc": "node lib/main/build-doc github",
|
||||
"doc:fp": "node lib/fp/build-doc",
|
||||
"doc:site": "node lib/main/build-doc site",
|
||||
"prepublish": "npm run style",
|
||||
"pretest": "npm run build",
|
||||
|
||||
Reference in New Issue
Block a user