first %!s(int64=7) %!d(string=hace) años curry.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años curryRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años date.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años debounce.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años deburr.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años defaultTo.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años defaults.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años defaultsDeep.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años defer.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años delay.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años difference.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años differenceBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años differenceWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años divide.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años drop.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años dropRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años dropRightWhile.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años dropWhile.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años each.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años eachRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años endsWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años entries.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años entriesIn.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años eq.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años escape.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años escapeRegExp.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años every.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años extend.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años extendWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años fill.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años filter.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años find.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años findIndex.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años findKey.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años findLast.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años findLastIndex.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años findLastKey.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años first.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años flatMap.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años flatMapDeep.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años flatMapDepth.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años flatten.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años flattenDeep.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años flattenDepth.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años flip.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años floor.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años flow.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años flowRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años forEach.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años forEachRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años forIn.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años forInRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años forOwn.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años forOwnRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años fp.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años fromPairs.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años function.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años functions.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años functionsIn.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años get.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años groupBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años gt.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años gte.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años has.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años hasIn.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años head.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años identity.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años inRange.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años includes.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años index.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años indexOf.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años initial.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años intersection.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años intersectionBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años intersectionWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años invert.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años invertBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años invoke.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años invokeMap.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isArguments.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isArray.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isArrayBuffer.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isArrayLike.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isArrayLikeObject.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isBoolean.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isBuffer.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isDate.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isElement.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isEmpty.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isEqual.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isEqualWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isError.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isFinite.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isFunction.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isInteger.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isLength.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isMap.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isMatch.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isMatchWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isNaN.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isNative.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isNil.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isNull.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isNumber.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isObject.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isObjectLike.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isPlainObject.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isRegExp.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isSafeInteger.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isSet.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isString.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isSymbol.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isTypedArray.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isUndefined.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isWeakMap.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años isWeakSet.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años iteratee.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años join.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años kebabCase.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años keyBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años keys.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años keysIn.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años lang.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años last.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años lastIndexOf.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años lodash.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años lodash.min.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años lowerCase.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años lowerFirst.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años lt.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años lte.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años map.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años mapKeys.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años mapValues.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años matches.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años matchesProperty.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años math.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años max.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años maxBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años mean.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años meanBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años memoize.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años merge.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años mergeWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años method.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años methodOf.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años min.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años minBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años mixin.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años multiply.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años negate.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años next.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años noop.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años now.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años nth.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años nthArg.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años number.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años object.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años omit.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años omitBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años once.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años orderBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años over.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años overArgs.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años overEvery.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años overSome.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años package.json 11e3a9652a first %!s(int64=7) %!d(string=hace) años pad.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años padEnd.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años padStart.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años parseInt.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años partial.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años partialRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años partition.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años pick.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años pickBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años plant.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años property.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años propertyOf.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años pull.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años pullAll.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años pullAllBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años pullAllWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años pullAt.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años random.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años range.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años rangeRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años rearg.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años reduce.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años reduceRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años reject.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años remove.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años repeat.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años replace.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años rest.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años result.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años reverse.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años round.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sample.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sampleSize.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años seq.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años set.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años setWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años shuffle.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años size.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años slice.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años snakeCase.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años some.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sortBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sortedIndex.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sortedIndexBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sortedIndexOf.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sortedLastIndex.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sortedLastIndexBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sortedLastIndexOf.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sortedUniq.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sortedUniqBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años split.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años spread.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años startCase.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años startsWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años string.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años stubArray.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años stubFalse.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años stubObject.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años stubString.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años stubTrue.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años subtract.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sum.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años sumBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años tail.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años take.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años takeRight.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años takeRightWhile.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años takeWhile.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años tap.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años template.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años templateSettings.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años throttle.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años thru.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años times.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toArray.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toFinite.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toInteger.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toIterator.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toJSON.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toLength.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toLower.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toNumber.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toPairs.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toPairsIn.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toPath.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toPlainObject.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toSafeInteger.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toString.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años toUpper.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años transform.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años trim.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años trimEnd.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años trimStart.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años truncate.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años unary.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años unescape.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años union.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años unionBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años unionWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años uniq.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años uniqBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años uniqWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años uniqueId.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años unset.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años unzip.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años unzipWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años update.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años updateWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años upperCase.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años upperFirst.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años util.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años value.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años valueOf.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años values.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años valuesIn.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años without.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años words.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años wrap.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años wrapperAt.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años wrapperChain.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años wrapperLodash.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años wrapperReverse.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años wrapperValue.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años xor.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años xorBy.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años xorWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años zip.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años zipObject.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años zipObjectDeep.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años zipWith.js 11e3a9652a first %!s(int64=7) %!d(string=hace) años

README.md

lodash v4.17.5

The Lodash library exported as Node.js modules.

Installation

Using npm:

$ npm i -g npm
$ npm i --save lodash

In Node.js:

// Load the full build.
var _ = require('lodash');
// Load the core build.
var _ = require('lodash/core');
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
var fp = require('lodash/fp');

// Load method categories.
var array = require('lodash/array');
var object = require('lodash/fp/object');

// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');

See the package source for more details.

Note:
Install n_ for Lodash use in the Node.js < 6 REPL.

Support

Tested in Chrome 63-64, Firefox 57-58, IE 11, Edge 14, Safari 10-11, Node.js 4-9, & PhantomJS 2.1.1.
Automated browser & CI test runs are available.

adminSystem - Gogs: Go Git Service

No Description

FFIB: 11e3a9652a first 7 years ago
..
lib 11e3a9652a first 7 years ago
node_modules 11e3a9652a first 7 years ago
CHANGELOG.md 11e3a9652a first 7 years ago
LICENSE 11e3a9652a first 7 years ago
README.md 11e3a9652a first 7 years ago
index.js 11e3a9652a first 7 years ago
package.json 11e3a9652a first 7 years ago

README.md

cosmiconfig

Build Status Build status

Find and load a configuration object from

  • a package.json property (anywhere down the file tree)
  • a JSON or YAML "rc file" (anywhere down the file tree)
  • a .config.js CommonJS module (anywhere down the file tree)
  • a CLI --config argument

For example, if your module's name is "soursocks," cosmiconfig will search out configuration in the following places:

  • a soursocks property in package.json (anywhere down the file tree)
  • a .soursocksrc file in JSON or YAML format (anywhere down the file tree)
  • a soursocks.config.js file exporting a JS object (anywhere down the file tree)
  • a CLI --config argument

cosmiconfig continues to search in these places all the way down the file tree until it finds acceptable configuration (or hits the home directory). And it does all this asynchronously, so it shouldn't get in your way.

Additionally, all of these search locations are configurable: you can customize filenames or turn off any location.

You can also look for rc files with extensions, e.g. .soursocksrc.json or .soursocksrc.yaml. You may like extensions on your rc files because you'll get syntax highlighting and linting in text editors.

Installation

npm install cosmiconfig

Tested in Node 0.12+.

Usage

var cosmiconfig = require('cosmiconfig');

var explorer = cosmiconfig(yourModuleName[, options]);

explorer.load(yourSearchPath)
  .then((result) => {
    // result.config is the parsed configuration object
    // result.filepath is the path to the config file that was found
  })
  .catch((parsingError) => {
    // do something constructive
  });

The function cosmiconfig() searches for a configuration object and returns a Promise, which resolves with an object containing the information you're looking for.

So let's say var yourModuleName = 'goldengrahams' — here's how cosmiconfig will work:

  • Starting from process.cwd() (or some other directory defined by the searchPath argument to load()), it looks for configuration objects in three places, in this order:
    1. A goldengrahams property in a package.json file (or some other property defined by options.packageProp);
    2. A .goldengrahamsrc file with JSON or YAML syntax (or some other filename defined by options.rc);
    3. A goldengrahams.config.js JS file exporting the object (or some other filename defined by options.js).
  • If none of those searches reveal a configuration object, it moves down one directory and tries again. So the search continues in ./, ../, ../../, ../../../, etc., checking those three locations in each directory.
  • It continues searching until it arrives at your home directory (or some other directory defined by options.stopDir).
  • If at any point a parseable configuration is found, the cosmiconfig() Promise resolves with its result object.
  • If no configuration object is found, the cosmiconfig() Promise resolves with null.
  • If a configuration object is found but is malformed (causing a parsing error), the cosmiconfig() Promise rejects and shares that error (so you should .catch() it).

All this searching can be short-circuited by passing options.configPath or a --config CLI argument to specify a file. cosmiconfig will read that file and try parsing it as JSON, YAML, or JS.

Caching

As of v2, cosmiconfig uses a few caches to reduce the need for repetitious reading of the filesystem. Every new cosmiconfig instance (created with cosmiconfig()) has its own caches.

To avoid or work around caching, you can

  • create separate instances of cosmiconfig, or
  • set cache: false in your options.
  • use the cache clearing methods documented below.

API

var explorer = cosmiconfig(moduleName[, options])

Creates a cosmiconfig instance (i.e. explorer) configured according to the arguments, and initializes its caches.

moduleName

Type: string

You module name. This is used to create the default filenames that cosmiconfig will look for.

Options

packageProp

Type: string or false Default: '[moduleName]'

Name of the property in package.json to look for.

If false, cosmiconfig will not look in package.json files.

rc

Type: string or false Default: '.[moduleName]rc'

Name of the "rc file" to look for, which can be formatted as JSON or YAML.

If false, cosmiconfig will not look for an rc file.

If rcExtensions: true, the rc file can also have extensions that specify the syntax, e.g. .[moduleName]rc.json. You may like extensions on your rc files because you'll get syntax highlighting and linting in text editors. Also, with rcExtensions: true, you can use JS modules as rc files, e.g. .[moduleName]rc.js.

js

Type: string or false Default: '[moduleName].config.js'

Name of a JS file to look for, which must export the configuration object.

If false, cosmiconfig will not look for a JS file.

argv

Type: string or false Default: 'config'

Name of a process.argv argument to look for, whose value should be the path to a configuration file. cosmiconfig will read the file and try to parse it as JSON, YAML, or JS. By default, cosmiconfig looks for --config.

If false, cosmiconfig will not look for any process.argv arguments.

rcStrictJson

Type: boolean Default: false

If true, cosmiconfig will expect rc files to be strict JSON. No YAML permitted, and no sloppy JSON.

By default, rc files are parsed with js-yaml, which is more permissive with punctuation than standard strict JSON.

rcExtensions

Type: boolean Default: false

If true, cosmiconfig will look for rc files with extensions, in addition to rc files without.

This adds a few steps to the search process. Instead of just looking for .goldengrahamsrc (no extension), it will also look for the following, in this order:

  • .goldengrahamsrc.json
  • .goldengrahamsrc.yaml
  • .goldengrahamsrc.yml
  • .goldengrahamsrc.js
stopDir

Type: string Default: Absolute path to your home directory

Directory where the search will stop.

cache

Type: boolean Default: true

If false, no caches will be used.

transform

Type: Function returning a Promise

A function that transforms the parsed configuration. Receives the result object with config and filepath properties, and must return a Promise that resolves with the transformed result.

The reason you might use this option instead of simply applying your transform function some other way is that the transformed result will be cached. If your transformation involves additional filesystem I/O or other potentially slow processing, you can use this option to avoid repeating those steps every time a given configuration is loaded.

Instance methods (on explorer)

load([searchPath, configPath])

Find and load a configuration file. Returns a Promise that resolves with null, if nothing is found, or an object with two properties:

  • config: The loaded and parsed configuration.
  • filepath: The filepath where this configuration was found.

You should provide either searchPath or configPath. Use configPath if you know the path of the configuration file you want to load. Otherwise, use searchPath.

explorer.load('start/search/here');
explorer.load('start/search/at/this/file.css');

explorer.load(null, 'load/this/file.json');

If you provide searchPath, cosmiconfig will start its search at searchPath and continue to search up the file tree, as documented above.

If you provide configPath (i.e. you already know where the configuration is that you want to load), cosmiconfig will try to read and parse that file.

clearFileCache()

Clears the cache used when you provide a configPath argument to load.

clearDirectoryCache()

Clears the cache used when you provide a searchPath argument to load.

clearCaches()

Performs both clearFileCache() and clearDirectoryCache().

Differences from rc

rc serves its focused purpose well. cosmiconfig differs in a few key ways — making it more useful for some projects, less useful for others:

  • Looks for configuration in some different places: in a package.json property, an rc file, a .config.js file, and rc files with extensions.
  • Built-in support for JSON, YAML, and CommonJS formats.
  • Stops at the first configuration found, instead of finding all that can be found down the filetree and merging them automatically.
  • Options.
  • Asynchronicity.

Contributing & Development

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

And please do participate!