UNPKG

reachy-url

Version:

Zero dependency nodejs library for checking if URL is reachable or not

91 lines (73 loc) 2.38 kB
import * as swc from "@swc/core"; import { readFile, writeFile } from "fs/promises"; import { Generator } from "npm-dts"; import * as TypeDoc from "typedoc"; import concatMd from "concat-md"; const log = console.log; log(` ____ _ __ ___ / __ )__ __(_) /___/ (_)___ ____ _ / __ / / / / / / __ / / __ \\/ __ \`/ / /_/ / /_/ / / / /_/ / / / / / /_/ / /_____/\\__,_/_/_/\\__,_/_/_/ /_/\\__, / /____/ `); const compile = async () => { const code = await readFile("./index.ts", { encoding: "utf8" }); log("\n=== Started compiling ==="); const es6Config: swc.Options = { jsc: { parser: { syntax: "typescript", }, target: "es2020", preserveAllComments: true, }, module: { type: "es6", }, }; const es6Out = await swc.transform(code, es6Config); // change the module to commonjs es6Config.module.type = "commonjs"; const cjsOut = await swc.transform(code, es6Config); // write the compiled code in lib dir await writeFile("./lib/index.js", es6Out.code); await writeFile("./lib/index.cjs", cjsOut.code); log("=== Compiling finished ===\n"); log("\n=== Generating type definitions ==="); await new Generator({ entry: "./index.ts", output: "./lib/" }).generate(); log("=== Type definitions generated ===\n"); }; const generateDocs = async () => { const app = new TypeDoc.Application(); // If you want TypeDoc to load tsconfig.json / typedoc.json files app.options.addReader(new TypeDoc.TSConfigReader()); app.options.addReader(new TypeDoc.TypeDocReader()); app.bootstrap({ // typedoc options here entryPoints: ["./index.ts"], plugin: ["typedoc-plugin-markdown"], readme: "none", name: "How to use?", //@ts-ignore hideInPageTOC: true, hideBreadcrumbs: true, }); const project = app.convert(); if (project) { // Project may not have converted correctly const outputDir = "docs/generated"; // Rendered docs await app.generateDocs(project, outputDir); log("\n=== Merging generated docs ==="); const readme = await concatMd("./docs", { hideAnchorLinks: true }); await writeFile("README.md", readme); log("=== Docs generated in README.md ==="); return; } log("=== Docs generation failed ==="); process.exit(1); }; compile(); generateDocs();