docs: add copy subscriber button (#12405)
* docs: add copy subscriber button * re-generate * fixes + update copy button
This commit is contained in:
+57
-22
@@ -67,7 +67,7 @@ function formatEventsType(
|
||||
eventVariable.name.replaceAll("WorkflowEvents", "")
|
||||
)
|
||||
if (showHeader) {
|
||||
content.push(`## ${header} Events`)
|
||||
content.push(`${"#".repeat(subtitleLevel - 1)} ${header} Events`)
|
||||
}
|
||||
content.push("")
|
||||
|
||||
@@ -93,9 +93,7 @@ function formatEventsType(
|
||||
.find((tag) => tag.tag === "@eventName")
|
||||
?.content.map((content) => content.text)
|
||||
.join("") || ""
|
||||
eventName = `[${eventName}](#${slugify(eventName.replace(".", ""), {
|
||||
lower: true,
|
||||
})})`
|
||||
eventName = `[${eventName}](#${getEventNameSlug(eventName)})`
|
||||
const eventDescription = event.comment?.summary
|
||||
.map((content) => content.text)
|
||||
.join("")
|
||||
@@ -149,32 +147,30 @@ function formatEventsType(
|
||||
const deprecatedTag = event.comment?.blockTags.find(
|
||||
(tag) => tag.tag === "@deprecated"
|
||||
)
|
||||
const deprecatedMessage = deprecatedTag?.content
|
||||
.map((content) => content.text)
|
||||
.join("")
|
||||
.trim()
|
||||
|
||||
content.push(`${subHeaderPrefix} \`${eventName}\``)
|
||||
content.push(
|
||||
getEventHeading({
|
||||
titleLevel: subtitleLevel,
|
||||
eventName: eventName || "",
|
||||
payload: eventPayload || "",
|
||||
deprecated: !!deprecatedTag,
|
||||
deprecatedMessage,
|
||||
})
|
||||
)
|
||||
content.push("")
|
||||
if (deprecatedTag) {
|
||||
const deprecationText = deprecatedTag.content
|
||||
.map((content) => content.text)
|
||||
.join("")
|
||||
.trim()
|
||||
if (deprecationText.length) {
|
||||
content.push(`<Tooltip text="${deprecationText}">`)
|
||||
}
|
||||
|
||||
content.push(`<Badge variant="orange">Deprecated</Badge>`)
|
||||
|
||||
if (deprecationText.length) {
|
||||
content.push(`</Tooltip>`)
|
||||
}
|
||||
content.push("")
|
||||
}
|
||||
content.push(eventDescription || "")
|
||||
content.push("")
|
||||
content.push(`${subHeaderPrefix}# Payload`)
|
||||
content.push("")
|
||||
content.push(eventPayload || "")
|
||||
content.push("")
|
||||
content.push(`${subHeaderPrefix}# Workflows Emitting this Event`)
|
||||
content.push(
|
||||
`${subHeaderPrefix}# Workflows Emitting this Event\n\nThe following workflows emit this event when they're executed. These workflows are executed by Medusa's API routes. You can also view the events emitted by API routes in the [Store](https://docs.medusajs.com/api/store) and [Admin](https://docs.medusajs.com/api/admin) API references.`
|
||||
)
|
||||
content.push("")
|
||||
workflows?.forEach((workflow) => {
|
||||
content.push(`- [${workflow}](/references/medusa-workflows/${workflow})`)
|
||||
@@ -188,3 +184,42 @@ function formatEventsType(
|
||||
|
||||
return content.join("\n")
|
||||
}
|
||||
|
||||
function getEventHeading({
|
||||
titleLevel,
|
||||
eventName,
|
||||
payload,
|
||||
deprecated = false,
|
||||
deprecatedMessage,
|
||||
}: {
|
||||
titleLevel: number
|
||||
eventName: string
|
||||
payload: string
|
||||
deprecated?: boolean
|
||||
deprecatedMessage?: string
|
||||
}) {
|
||||
const heading = [eventName]
|
||||
if (deprecated) {
|
||||
if (deprecatedMessage?.length) {
|
||||
heading.push(`<Tooltip text="${deprecatedMessage}">`)
|
||||
}
|
||||
|
||||
heading.push(`<Badge variant="orange">Deprecated</Badge>`)
|
||||
|
||||
if (deprecatedMessage?.length) {
|
||||
heading.push(`</Tooltip>`)
|
||||
}
|
||||
}
|
||||
return `<EventHeader headerLvl="${titleLevel}" headerProps={{ id: "${getEventNameSlug(
|
||||
eventName
|
||||
)}", children: (<>${heading.join(
|
||||
"\n"
|
||||
)}</>), className: "flex flex-wrap justify-center gap-docs_0.25" }} eventName="${eventName}" payload={\`${payload.replaceAll(
|
||||
"`",
|
||||
"\\`"
|
||||
)}\`} />`
|
||||
}
|
||||
|
||||
function getEventNameSlug(eventName: string) {
|
||||
return slugify(eventName.replace(".", ""), { lower: true })
|
||||
}
|
||||
|
||||
+15
-8
@@ -25,6 +25,7 @@ export default function () {
|
||||
str += ` <Table.HeaderCell>\nEvent\n</Table.HeaderCell>\n`
|
||||
str += ` <Table.HeaderCell>\nDescription\n</Table.HeaderCell>\n`
|
||||
str += ` <Table.HeaderCell>\nPayload\n</Table.HeaderCell>\n`
|
||||
str += ` <Table.HeaderCell>\nAction\n</Table.HeaderCell>\n`
|
||||
str += ` </Table.Row>\n`
|
||||
str += ` </Table.Header>\n`
|
||||
str += ` <Table.Body>\n`
|
||||
@@ -33,29 +34,35 @@ export default function () {
|
||||
.map((c) => c.text)
|
||||
.join(" ")
|
||||
.split("--")
|
||||
let eventName = `\`${commentContent[0].trim()}\``
|
||||
const eventName = commentContent[0].trim()
|
||||
const eventPayload = commentContent[2]?.trim() || ""
|
||||
let eventNameFormatted = `\`${eventName}\``
|
||||
const eventDescription = commentContent[1]?.trim() || ""
|
||||
const eventPayload = (commentContent[2]?.trim() || "")
|
||||
const eventPayloadFormatted = eventPayload
|
||||
.replace("```ts\n", "")
|
||||
.replace("\n```", "")
|
||||
const isDeprecated = commentContent.length >= 4
|
||||
|
||||
if (isDeprecated) {
|
||||
const deprecatedText = commentContent[4]?.trim()
|
||||
eventName += `\n`
|
||||
eventNameFormatted += `\n`
|
||||
if (deprecatedText) {
|
||||
eventName += `<Tooltip text="${deprecatedText}">`
|
||||
eventNameFormatted += `<Tooltip text="${deprecatedText}">`
|
||||
}
|
||||
eventName += `<Badge variant="orange">Deprecated</Badge>`
|
||||
eventNameFormatted += `<Badge variant="orange">Deprecated</Badge>`
|
||||
if (deprecatedText) {
|
||||
eventName += `</Tooltip>`
|
||||
eventNameFormatted += `</Tooltip>`
|
||||
}
|
||||
}
|
||||
|
||||
str += ` <Table.Row>\n`
|
||||
str += ` <Table.Cell>\n${eventName}\n</Table.Cell>\n`
|
||||
str += ` <Table.Cell>\n${eventNameFormatted}\n</Table.Cell>\n`
|
||||
str += ` <Table.Cell>\n${eventDescription}\n</Table.Cell>\n`
|
||||
str += ` <Table.Cell>\n\`\`\`ts blockStyle="inline"\n${eventPayload}\n\`\`\`\n</Table.Cell>\n`
|
||||
str += ` <Table.Cell>\n\`\`\`ts blockStyle="inline"\n${eventPayloadFormatted}\n\`\`\`\n</Table.Cell>\n`
|
||||
str += ` <Table.Cell>\n<CopyGeneratedSnippetButton tooltipText="Copy subscriber for event" type="subscriber" options={{
|
||||
event: "${eventName}",
|
||||
payload: \`${eventPayload.replaceAll("`", "\\`")}\`
|
||||
}}/>\n</Table.Cell>\n`
|
||||
str += ` </Table.Row>\n`
|
||||
})
|
||||
str += ` </Table.Body>\n`
|
||||
|
||||
Reference in New Issue
Block a user