🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
27 lines
536 B
JavaScript
Executable File
27 lines
536 B
JavaScript
Executable File
'use strict';
|
|
|
|
const { isFunction } = require('../helpers/is');
|
|
|
|
module.exports = function last(fn, defaultValue) {
|
|
let { items } = this;
|
|
|
|
if (isFunction(fn)) {
|
|
items = this.filter(fn).all();
|
|
}
|
|
|
|
if ((Array.isArray(items) && !items.length) || (!Object.keys(items).length)) {
|
|
if (isFunction(defaultValue)) {
|
|
return defaultValue();
|
|
}
|
|
|
|
return defaultValue;
|
|
}
|
|
|
|
if (Array.isArray(items)) {
|
|
return items[items.length - 1];
|
|
}
|
|
const keys = Object.keys(items);
|
|
|
|
return items[keys[keys.length - 1]];
|
|
};
|