UNPKG

sbg-api

Version:

Pre-processing all source posts before rendering from hexo. Useful for low-end devices to prevent using large number of hexo plugins.

51 lines 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLatestFromArrayDates = void 0; var tslib_1 = require("tslib"); var moment_1 = tslib_1.__importDefault(require("moment")); function getCategoryTags(hexo) { var groups = ['categories', 'tags']; var locals = hexo.locals; var groupfilter = { tags: [], categories: [] }; if (!locals) { return groupfilter; } groups.map(function (group) { var lastModifiedObject = locals.get(group).map(function (items) { if (items.posts) { var archives = items; var posts = archives.posts; var latest = getLatestFromArrayDates(posts.map(function (post) { var _a; return ((_a = post.updated) === null || _a === void 0 ? void 0 : _a.toDate()) || new Date(); })); var permalink = new URL(hexo.config.url); permalink.pathname = archives.path; return { permalink: permalink.toString(), name: archives.name, latest: (0, moment_1.default)(latest).format('YYYY-MM-DDTHH:mm:ssZ') }; } }); groupfilter[group] = lastModifiedObject; }); return groupfilter; } /** * get latest date from array of date * @param arr * @returns */ function getLatestFromArrayDates(arr) { var dateMap = arr.map(function (e) { return e instanceof Date ? e : (0, moment_1.default)(e).toDate(); }); return new Date(Math.max.apply(null, dateMap.map(function (date) { return date.getTime(); }))); } exports.getLatestFromArrayDates = getLatestFromArrayDates; exports.default = getCategoryTags; //# sourceMappingURL=archive.js.map