Files
medusa-store/docs-util/packages/scripts/doc-change-release.ts
Shahed Nasser 0350eeb0a1 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
2023-10-05 12:09:42 +03:00

91 lines
2.1 KiB
JavaScript

#!/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()