From 30c7113f3be6a50611901671db3913710a410021 Mon Sep 17 00:00:00 2001 From: Zach Leatherman Date: Wed, 22 Mar 2023 10:28:46 -0500 Subject: [PATCH] Custom lodash build, fixes #2877 --- package.json | 4 +--- src/ComputedData.js | 14 +++----------- src/ComputedDataProxy.js | 3 +-- src/ComputedDataTemplateString.js | 8 +++----- src/Engines/Nunjucks.js | 2 +- src/Plugins/Pagination.js | 4 +--- src/Template.js | 3 +-- src/TemplateContent.js | 2 +- src/TemplateData.js | 3 +-- src/TemplateDataInitialGlobalData.js | 2 +- test/EleventyTest.js | 2 +- 11 files changed, 15 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 48f92535e..9803e3b8f 100755 --- a/package.json +++ b/package.json @@ -98,6 +98,7 @@ "@11ty/dependency-tree": "^2.0.1", "@11ty/eleventy-dev-server": "^1.0.4", "@11ty/eleventy-utils": "^1.0.1", + "@11ty/lodash-custom": "^4.17.21", "@iarna/toml": "^2.2.5", "@sindresorhus/slugify": "^1.1.2", "bcp-47-normalize": "^1.1.1", @@ -115,9 +116,6 @@ "iso-639-1": "^2.1.15", "kleur": "^4.1.5", "liquidjs": "^10.6.1", - "lodash.chunk": "^4.2.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", "luxon": "^3.3.0", "markdown-it": "^13.0.1", "micromatch": "^4.0.5", diff --git a/src/ComputedData.js b/src/ComputedData.js index c830a6706..13096876c 100644 --- a/src/ComputedData.js +++ b/src/ComputedData.js @@ -1,5 +1,4 @@ -const lodashGet = require("lodash.get"); -const lodashSet = require("lodash.set"); +const { set: lodashSet, get: lodashGet } = require("@11ty/lodash-custom"); const ComputedDataQueue = require("./ComputedDataQueue"); const ComputedDataTemplateString = require("./ComputedDataTemplateString"); @@ -39,20 +38,13 @@ class ComputedData { } } - addTemplateString( - key, - renderFn, - declaredDependencies = [], - symbolParseFn = undefined - ) { + addTemplateString(key, renderFn, declaredDependencies = [], symbolParseFn = undefined) { this.add(key, renderFn, declaredDependencies, symbolParseFn); this.templateStringKeyLookup[key] = true; } async resolveVarOrder(data) { - let proxyByTemplateString = new ComputedDataTemplateString( - this.computedKeys - ); + let proxyByTemplateString = new ComputedDataTemplateString(this.computedKeys); let proxyByProxy = new ComputedDataProxy(this.computedKeys); for (let key of this.computedKeys) { diff --git a/src/ComputedDataProxy.js b/src/ComputedDataProxy.js index afd1ec7bb..2e41df833 100644 --- a/src/ComputedDataProxy.js +++ b/src/ComputedDataProxy.js @@ -1,5 +1,4 @@ -const lodashSet = require("lodash.set"); -const lodashGet = require("lodash.get"); +const { set: lodashSet, get: lodashGet } = require("@11ty/lodash-custom"); const { isPlainObject } = require("@11ty/eleventy-utils"); /* Calculates computed data using Proxies */ diff --git a/src/ComputedDataTemplateString.js b/src/ComputedDataTemplateString.js index fcef90692..73e0005ac 100644 --- a/src/ComputedDataTemplateString.js +++ b/src/ComputedDataTemplateString.js @@ -1,4 +1,5 @@ -const lodashSet = require("lodash.set"); +const { set: lodashSet } = require("@11ty/lodash-custom"); + const debug = require("debug")("Eleventy:ComputedDataTemplateString"); /* Calculates computed data in Template Strings. @@ -38,10 +39,7 @@ class ComputedDataTemplateString { let vars = new Set(); let splits = output.split(this.prefix); for (let split of splits) { - let varName = split.slice( - 0, - split.indexOf(this.suffix) < 0 ? 0 : split.indexOf(this.suffix) - ); + let varName = split.slice(0, split.indexOf(this.suffix) < 0 ? 0 : split.indexOf(this.suffix)); if (varName) { vars.add(varName); } diff --git a/src/Engines/Nunjucks.js b/src/Engines/Nunjucks.js index a51724b55..4aa6666dc 100755 --- a/src/Engines/Nunjucks.js +++ b/src/Engines/Nunjucks.js @@ -362,7 +362,7 @@ class Nunjucks extends TemplateEngine { return ext; } - /* Outputs an Array of lodash.get selectors */ + /* Outputs an Array of lodash get selectors */ parseForSymbols(str) { const { parser, nodes } = NunjucksLib; let obj = parser.parse(str, this._getParseExtensions()); diff --git a/src/Plugins/Pagination.js b/src/Plugins/Pagination.js index 95f162f04..718b2e331 100755 --- a/src/Plugins/Pagination.js +++ b/src/Plugins/Pagination.js @@ -1,6 +1,4 @@ -const lodashChunk = require("lodash.chunk"); -const lodashGet = require("lodash.get"); -const lodashSet = require("lodash.set"); +const { set: lodashSet, get: lodashGet, chunk: lodashChunk } = require("@11ty/lodash-custom"); const { isPlainObject } = require("@11ty/eleventy-utils"); const EleventyBaseError = require("../EleventyBaseError"); diff --git a/src/Template.js b/src/Template.js index bc96367d3..88473751d 100755 --- a/src/Template.js +++ b/src/Template.js @@ -6,8 +6,7 @@ const mkdir = util.promisify(fs.mkdir); const os = require("os"); const path = require("path"); const normalize = require("normalize-path"); -const lodashGet = require("lodash.get"); -const lodashSet = require("lodash.set"); +const { set: lodashSet, get: lodashGet } = require("@11ty/lodash-custom"); const { DateTime } = require("luxon"); const { TemplatePath, isPlainObject } = require("@11ty/eleventy-utils"); diff --git a/src/TemplateContent.js b/src/TemplateContent.js index 14b55f79d..f4d322c35 100644 --- a/src/TemplateContent.js +++ b/src/TemplateContent.js @@ -4,7 +4,7 @@ const util = require("util"); const readFile = util.promisify(fs.readFile); const normalize = require("normalize-path"); const matter = require("gray-matter"); -const lodashSet = require("lodash.set"); +const { set: lodashSet } = require("@11ty/lodash-custom"); const { TemplatePath } = require("@11ty/eleventy-utils"); const EleventyExtensionMap = require("./EleventyExtensionMap"); diff --git a/src/TemplateData.js b/src/TemplateData.js index c850bf1a1..078fd5df8 100644 --- a/src/TemplateData.js +++ b/src/TemplateData.js @@ -1,7 +1,6 @@ const fs = require("fs"); const path = require("path"); -const lodashset = require("lodash.set"); -const lodashget = require("lodash.get"); +const { set: lodashset, get: lodashget } = require("@11ty/lodash-custom"); const { TemplatePath, isPlainObject } = require("@11ty/eleventy-utils"); const merge = require("./Util/Merge"); diff --git a/src/TemplateDataInitialGlobalData.js b/src/TemplateDataInitialGlobalData.js index bf7423d37..2ad04469e 100644 --- a/src/TemplateDataInitialGlobalData.js +++ b/src/TemplateDataInitialGlobalData.js @@ -1,6 +1,6 @@ const pkg = require("../package.json"); const semver = require("semver"); -const lodashset = require("lodash.set"); +const { set: lodashset } = require("@11ty/lodash-custom"); class TemplateDataInitialGlobalData { constructor(templateConfig) { diff --git a/test/EleventyTest.js b/test/EleventyTest.js index fd049cc75..97af8a38d 100644 --- a/test/EleventyTest.js +++ b/test/EleventyTest.js @@ -662,7 +662,7 @@ ${newContents} await fsp.writeFile(includeFilePath, previousContents, { encoding: "utf8" }); }); -const lodashGet = require("lodash.get"); +const { get: lodashGet } = require("@11ty/lodash-custom"); test("Lodash get (for pagination data target) object key with spaces, issue #2851", (t) => { let data = { collections: {