nodejs-latest-linker
Advanced tools
Comparing version
@@ -23,5 +23,7 @@ 'use strict' | ||
#docsDir | ||
constructor ({ baseDir, docsDir }) { | ||
#validateDocsLink | ||
constructor ({ baseDir, docsDir, validateDocsLink }) { | ||
this.#baseDir = baseDir | ||
this.#docsDir = docsDir | ||
this.#validateDocsLink = validateDocsLink ?? (() => true) | ||
} | ||
@@ -42,3 +44,3 @@ | ||
this.#makeDocsLinks(allDirs.map((d) => d.raw)) | ||
await this.#makeDocsLinks(allDirs.map((d) => d.raw)) | ||
@@ -75,3 +77,3 @@ this.#dirs = allDirs.filter((d) => semver.satisfies(d, '~0.10 || ~0.12 || >= 1.0')).map((d) => d.raw) | ||
#makeDocsLinks (versions) { | ||
async #makeDocsLinks (versions) { | ||
if (!this.#docsDir) { | ||
@@ -84,3 +86,5 @@ return | ||
const dst = path.join(this.#docsDir, version) | ||
this.#links.set(dst, src) | ||
if (await this.#validateDocsLink(src)) { | ||
this.#links.set(dst, src) | ||
} | ||
} | ||
@@ -87,0 +91,0 @@ } |
@@ -15,4 +15,13 @@ #!/usr/bin/env node | ||
const dir = path.resolve(process.argv[2]) | ||
const docsDir = process.argv[3] && path.resolve(process.argv[3]); | ||
const docsDir = process.argv[3] && path.resolve(process.argv[3]) | ||
async function validateDocsLink (src) { | ||
try { | ||
const stat = await fs.stat(src) | ||
return stat.isDirectory() | ||
} catch { | ||
return false | ||
} | ||
} | ||
(async function main () { | ||
@@ -30,3 +39,3 @@ /* c8 ignore next 3 */ | ||
const allDirs = (await fs.readdir(dir, { withFileTypes: true })).filter((d) => d.isDirectory()).map((d) => d.name) | ||
const linker = new Linker({ baseDir: dir, docsDir }) | ||
const linker = new Linker({ baseDir: dir, docsDir, validateDocsLink }) | ||
const links = await linker.getLinks(allDirs, fs.readdir) | ||
@@ -33,0 +42,0 @@ for (const [dest, src] of links) { |
{ | ||
"name": "nodejs-latest-linker", | ||
"version": "1.7.0", | ||
"version": "1.7.1", | ||
"description": "An application to create latest-X symlinks at https://nodejs.org/download/release/ after each new release", | ||
@@ -5,0 +5,0 @@ "main": "latest-linker.js", |
11233
3.08%191
6.7%