docs: create typedoc theme and plugins for references (#5297)
* update typedoc and its plugins * refactor existing typedoc configurations * added new typedoc plugin and themes * added more customization options * added more customization options * refactored doc-utils to a workspace * fix tsconfig * update README files * remove comments * revert type changes * remove dependencies no longer needed * removed modules action
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import { Octokit } from "@octokit/core"
|
||||
import fs from "fs"
|
||||
import path from "path"
|
||||
|
||||
const shouldExpire = process.argv.indexOf("--expire") !== -1
|
||||
const octokit = new Octokit({
|
||||
auth: process.env.GH_TOKEN,
|
||||
})
|
||||
|
||||
async function main() {
|
||||
let announcement = {}
|
||||
|
||||
if (shouldExpire) {
|
||||
//check if the file was last updated 6 days ago
|
||||
try {
|
||||
const commitResponse = await octokit.request(
|
||||
"GET /repos/{owner}/{repo}/commits",
|
||||
{
|
||||
owner: "medusajs",
|
||||
repo: "medusa",
|
||||
path: path.join("www", "apps", "docs", "announcement.json"),
|
||||
per_page: 1,
|
||||
}
|
||||
)
|
||||
|
||||
if (
|
||||
commitResponse.data.length &&
|
||||
commitResponse.data[0].commit.committer?.date &&
|
||||
dateDiffInDays(
|
||||
new Date(commitResponse.data[0].commit.committer.date),
|
||||
new Date()
|
||||
) < 6
|
||||
) {
|
||||
console.log("File was edited less than 6 days ago. Expiry canceled.")
|
||||
return
|
||||
}
|
||||
} catch (e) {
|
||||
//continue as if file doesn't exist
|
||||
}
|
||||
} else {
|
||||
//retrieve the latest release
|
||||
const response = await octokit.request(
|
||||
"GET /repos/{owner}/{repo}/releases/latest",
|
||||
{
|
||||
owner: "medusajs",
|
||||
repo: "medusa",
|
||||
}
|
||||
)
|
||||
|
||||
const version = response.data.tag_name
|
||||
|
||||
//add new announcement
|
||||
announcement = {
|
||||
id: response.data.html_url,
|
||||
content: `${version} is out`,
|
||||
isCloseable: true,
|
||||
}
|
||||
}
|
||||
|
||||
//write new config file
|
||||
fs.writeFileSync(
|
||||
path.join(
|
||||
__dirname,
|
||||
"..",
|
||||
"..",
|
||||
"..",
|
||||
"www",
|
||||
"apps",
|
||||
"docs",
|
||||
"announcement.json"
|
||||
),
|
||||
JSON.stringify(announcement)
|
||||
)
|
||||
console.log(`Announcement Bar has been ${shouldExpire ? "removed" : "added"}`)
|
||||
}
|
||||
|
||||
const _MS_PER_DAY = 1000 * 60 * 60 * 24
|
||||
|
||||
// a and b are javascript Date objects
|
||||
function dateDiffInDays(a: Date, b: Date) {
|
||||
// Discard the time and time-zone information.
|
||||
const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate())
|
||||
const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate())
|
||||
|
||||
return Math.floor((utc2 - utc1) / _MS_PER_DAY)
|
||||
}
|
||||
|
||||
void main()
|
||||
Reference in New Issue
Block a user