Refactor build scripts and npm package process (#5876)

This commit is contained in:
Bob Ippolito
2024-04-25 15:17:31 -07:00
committed by GitHub
parent db7b242c18
commit 881258be7a
142 changed files with 19360 additions and 1794 deletions

79
scripts/create-docs.js Normal file
View File

@ -0,0 +1,79 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
// @ts-check
'use strict';
const fs = require('fs-extra');
const path = require('node:path');
const {packagesManager} = require('./shared/packagesManager');
const webPkg = packagesManager.getPackageByDirectoryName('lexical-website');
function sidebarTemplate(npmName, readmePath) {
return (
`
---
title: ''
sidebar_label: '${npmName}'
---
{@import ${readmePath}}
`.trim() + '\n'
);
}
function readmeTemplate(npmName, directoryName, description) {
const apiModuleName = directoryName.replace(/-/g, '_');
return (
`
# \`${npmName}\`
[![See API Documentation](https://lexical.dev/img/see-api-documentation.svg)](https://lexical.dev/docs/api/modules/${apiModuleName})
${description}
`.trim() + '\n'
);
}
function updateDocs() {
packagesManager.getPublicPackages().forEach((pkg) => {
const npmName = pkg.getNpmName();
const directoryName = pkg.getDirectoryName();
const root = pkg.resolve('..', '..');
const readmePath = pkg.resolve('README.md');
const sidebarPath = webPkg.resolve(
'docs',
'packages',
`${directoryName}.md`,
);
if (!fs.existsSync(readmePath)) {
console.log(`Creating ${path.relative(root, readmePath)}`);
fs.writeFileSync(
readmePath,
readmeTemplate(
npmName,
directoryName,
pkg.packageJson.description ||
'TODO: This package needs a description!',
),
);
}
if (!fs.existsSync(sidebarPath)) {
console.log(`Creating ${path.relative(root, sidebarPath)}`);
fs.writeFileSync(
sidebarPath,
sidebarTemplate(
npmName,
path.relative(path.dirname(sidebarPath), readmePath),
),
);
}
});
}
updateDocs();