(notes) add routing between notes

This commit is contained in:
2021-03-13 22:11:58 +01:00
parent 2bb43ac961
commit 8fad931dfd
12 changed files with 343 additions and 65 deletions

View File

@@ -1,50 +1,67 @@
import { onMounted, ref } from '@vue/runtime-core'
import MarkdownIt from 'markdown-it'
import { request } from '@octokit/request'
import { useMarkdown } from '@/hooks/useMarkdown.hook'
const md = new MarkdownIt()
interface Tree {
path?: string
mode?: string
type?: string
sha?: string
size?: number
url?: string
}
export const useRepo = (owner: string, repo: string) => {
const { render } = useMarkdown()
const readme = ref<string | null>(null)
const notFound = ref(false)
const tree = ref<Tree[]>([])
onMounted(async () => {
const README = await request('GET /repos/{owner}/{repo}/readme', {
repo,
owner
})
if (README) {
readme.value = md.render(
decodeURIComponent(escape(atob(README.data.content)))
)
}
const commits = await request('GET /repos/{owner}/{repo}/commits', {
owner,
repo
})
const lastCommit = commits.data.shift()
if (!lastCommit) {
return
}
const tree = await request(
'GET /repos/{owner}/{repo}/git/trees/{tree_sha}',
{
owner,
try {
const README = await request('GET /repos/{owner}/{repo}/readme', {
repo,
tree_sha: lastCommit.commit.tree.sha,
recursive: 'true'
}
)
owner
})
console.log(tree.data.tree.filter((t) => t.type === 'blob'))
if (README) {
readme.value = render(README.data.content)
}
const commits = await request('GET /repos/{owner}/{repo}/commits', {
owner,
repo
})
const lastCommit = commits.data.shift()
if (!lastCommit) {
return
}
const treeResponse = await request(
'GET /repos/{owner}/{repo}/git/trees/{tree_sha}',
{
owner,
repo,
tree_sha: lastCommit.commit.tree.sha,
recursive: 'true'
}
)
if (treeResponse) {
tree.value = treeResponse.data.tree.filter((t) => t.type === 'blob')
console.log(tree.value)
}
} catch (error) {
notFound.value = true
}
})
return {
readme
readme,
notFound,
tree
}
}