jsx-readme
Version:
Generate Readme files with a React-like syntax and package.json-aware helpers.
63 lines • 2.86 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExamplesFromPkg = void 0;
const jsx_md_1 = __importStar(require("jsx-md"));
const fs_1 = require("fs");
const path = __importStar(require("path"));
const CodeFile_1 = require("./CodeFile");
/** Show all files from the example directory defined in package.json.² */
exports.ExamplesFromPkg = (0, jsx_md_1.awaitComponent)(async ({ pkg,
/** The encoding to use for loading all files. */
encoding = "utf8",
/** Whether to replace all imports from '..' with imports from 'package-name' */
replacePackageImportsWithPackageName = true, title = "🔬 Examples", }) => {
var _a;
const examplesFolder = (_a = pkg.directories) === null || _a === void 0 ? void 0 : _a.example;
if (examplesFolder === undefined) {
return null;
}
const filenames = await fs_1.promises.readdir(examplesFolder);
const examples = await Promise.all(filenames.map(async (fileName) => ({
fileName,
content: await fs_1.promises.readFile(path.join(examplesFolder, fileName), {
encoding,
}),
})));
const replacements = replacePackageImportsWithPackageName
? [
{
find: /from ".."/g,
replace: `from "${pkg.name}"`,
},
]
: [];
return ((0, jsx_md_1.default)(jsx_md_1.Fragment, null,
(0, jsx_md_1.default)(jsx_md_1.Heading, { level: 2 }, title),
examples
.sort(({ fileName: fileNameA }, { fileName: fileNameB }) => fileNameA.localeCompare(fileNameB, "en", { sensitivity: "base" }))
.map(({ fileName, content }) => ((0, jsx_md_1.default)(CodeFile_1.CodeFile, { key: fileName, fileName: fileName, replacements: replacements }, content)))));
});
//# sourceMappingURL=ExamplesFromPkg.js.map