eleventy-test 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,7 @@
1
1
  import ScenarioOutput from "./ScenarioOutput";
2
+ export declare function determineInstalledEleventyVersions(projectRoot?: string): Promise<{
3
+ [key: string]: string;
4
+ }>;
2
5
  export declare function ensureEleventyExists(projectRoot: string, eleventyVersion: string): Promise<string>;
3
6
  export declare function buildEleventy({ eleventyVersion, scenarioDir, scenarioName, projectRoot, globalInputDir }: {
4
7
  eleventyVersion: any;
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ var src_exports = {};
21
21
  __export(src_exports, {
22
22
  buildEleventy: () => buildEleventy,
23
23
  buildScenarios: () => buildScenarios,
24
+ determineInstalledEleventyVersions: () => determineInstalledEleventyVersions,
24
25
  ensureEleventyExists: () => ensureEleventyExists
25
26
  });
26
27
  module.exports = __toCommonJS(src_exports);
@@ -85,6 +86,24 @@ var ScenarioOutput = class {
85
86
  };
86
87
 
87
88
  // src/eleventyUtils.ts
89
+ async function determineInstalledEleventyVersions(projectRoot = (0, import_process.cwd)()) {
90
+ let eleventyPkgs = await (0, import_promises.readdir)((0, import_path2.join)(projectRoot, "node_modules/@11ty/"));
91
+ const eleventyRegex = new RegExp(/eleventy(\d|$)/m);
92
+ eleventyPkgs = eleventyPkgs.filter((name) => eleventyRegex.test(name));
93
+ const versions2 = {};
94
+ for (let i = 0; i < eleventyPkgs.length; i++) {
95
+ const eleventyPkg = eleventyPkgs[i];
96
+ const eleventyPkgDir = (0, import_path2.join)(projectRoot, "node_modules/@11ty/", eleventyPkg);
97
+ const version = JSON.parse(
98
+ await (0, import_promises.readFile)(
99
+ (0, import_path2.join)(eleventyPkgDir, "package.json"),
100
+ { encoding: "utf-8" }
101
+ )
102
+ ).version;
103
+ versions2[version] = eleventyPkgDir;
104
+ }
105
+ return versions2;
106
+ }
88
107
  async function installEleventyIfPkgManagerFound(eleventyVersion, projectRoot, filename, command) {
89
108
  return new Promise(async (resolve, reject) => {
90
109
  if ((0, import_fs2.existsSync)((0, import_path2.join)(projectRoot, filename))) {
@@ -102,12 +121,12 @@ async function installEleventyIfPkgManagerFound(eleventyVersion, projectRoot, fi
102
121
  }
103
122
  async function ensureEleventyExists(projectRoot, eleventyVersion) {
104
123
  return new Promise(async (resolve, reject) => {
105
- const eleventyDir = (0, import_path2.join)(projectRoot, "node_modules/@11ty/eleventy" + eleventyVersion);
106
- try {
107
- await (0, import_promises.access)(eleventyDir);
108
- resolve(eleventyDir);
109
- } catch {
124
+ const versions2 = await determineInstalledEleventyVersions(projectRoot);
125
+ if (Object.keys(versions2).includes(eleventyVersion)) {
126
+ resolve(versions2[eleventyVersion]);
127
+ } else {
110
128
  console.log(`Eleventy version ${eleventyVersion} could not be found. Installing...`);
129
+ const eleventyDir = (0, import_path2.join)(projectRoot, "node_modules/@11ty/eleventy" + eleventyVersion);
111
130
  if (await installEleventyIfPkgManagerFound(
112
131
  eleventyVersion,
113
132
  projectRoot,
@@ -268,5 +287,6 @@ if (require.main === module) {
268
287
  0 && (module.exports = {
269
288
  buildEleventy,
270
289
  buildScenarios,
290
+ determineInstalledEleventyVersions,
271
291
  ensureEleventyExists
272
292
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eleventy-test",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Multi-configuration testing for Eleventy plugins",
5
5
  "license": "MIT",
6
6
  "repository": "https://github.com/Denperidge/eleventy-test.git",
@@ -18,15 +18,16 @@
18
18
  "test": "ava tests/test.mjs --timeout=90s"
19
19
  },
20
20
  "devDependencies": {
21
+ "@11ty/eleventy": "^3.0.0",
21
22
  "@11ty/eleventy1.0.2": "npm:@11ty/eleventy@1.0.2",
22
23
  "@11ty/eleventy2.0.0-canary.8": "npm:@11ty/eleventy@2.0.0-canary.8",
23
24
  "@11ty/eleventy2.0.1": "npm:@11ty/eleventy@2.0.1",
24
- "@11ty/eleventy3.0.0": "npm:@11ty/eleventy@3.0.0",
25
25
  "@types/node": "^22.10.1",
26
26
  "ava": "^6.2.0",
27
27
  "esbuild": "^0.24.0",
28
28
  "jsdom": "^25.0.1",
29
29
  "npm-run-all": "^4.1.5",
30
30
  "typescript": "^5.7.2"
31
- }
31
+ },
32
+ "dependencies": {}
32
33
  }