mirror of
https://github.com/kou029w/hasura-rest-hands-on.git
synced 2025-02-22 00:25:54 +00:00
create project
This commit is contained in:
parent
308f82a562
commit
069ea51e36
23 changed files with 554 additions and 0 deletions
25
.github/workflows/github-pages.yml
vendored
Normal file
25
.github/workflows/github-pages.yml
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
name: github-pages
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
jobs:
|
||||
main:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with: { node-version: lts/*, cache: yarn }
|
||||
- name: Git config
|
||||
run: |
|
||||
git config user.name bot
|
||||
git config user.email bot@example
|
||||
- run: git subtree add --prefix book origin gh-pages
|
||||
- run: brew bundle
|
||||
- run: yarn
|
||||
- run: yarn build
|
||||
- name: Publish
|
||||
run: |
|
||||
git add -f book
|
||||
if git commit -m update; then
|
||||
git subtree push --prefix book origin gh-pages
|
||||
fi
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
/node_modules/
|
||||
/book/
|
||||
/theme/
|
4
.prettierrc.yml
Normal file
4
.prettierrc.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
overrides:
|
||||
- files: "*.md"
|
||||
options:
|
||||
parser: markdown-nocjsp
|
1
Brewfile
Normal file
1
Brewfile
Normal file
|
@ -0,0 +1 @@
|
|||
brew "mdbook"
|
50
Brewfile.lock.json
Normal file
50
Brewfile.lock.json
Normal file
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"entries": {
|
||||
"brew": {
|
||||
"mdbook": {
|
||||
"version": "0.4.10",
|
||||
"bottle": {
|
||||
"rebuild": 0,
|
||||
"root_url": "https://ghcr.io/v2/linuxbrew/core",
|
||||
"files": {
|
||||
"arm64_big_sur": {
|
||||
"cellar": ":any_skip_relocation",
|
||||
"url": "https://ghcr.io/v2/linuxbrew/core/mdbook/blobs/sha256:554151ca6d1771fbbb6dc2dad3d27dfa40629680ad6511690c90596445800ba1",
|
||||
"sha256": "554151ca6d1771fbbb6dc2dad3d27dfa40629680ad6511690c90596445800ba1"
|
||||
},
|
||||
"big_sur": {
|
||||
"cellar": ":any_skip_relocation",
|
||||
"url": "https://ghcr.io/v2/linuxbrew/core/mdbook/blobs/sha256:76903aca2380189e21bfd257a8ec8b130e069fb03cd4415d46ef1af6a711ce2d",
|
||||
"sha256": "76903aca2380189e21bfd257a8ec8b130e069fb03cd4415d46ef1af6a711ce2d"
|
||||
},
|
||||
"catalina": {
|
||||
"cellar": ":any_skip_relocation",
|
||||
"url": "https://ghcr.io/v2/linuxbrew/core/mdbook/blobs/sha256:59e2e920e318782714f1841abb0375f8f17e151f576db14fa0e9041ac14e26cf",
|
||||
"sha256": "59e2e920e318782714f1841abb0375f8f17e151f576db14fa0e9041ac14e26cf"
|
||||
},
|
||||
"mojave": {
|
||||
"cellar": ":any_skip_relocation",
|
||||
"url": "https://ghcr.io/v2/linuxbrew/core/mdbook/blobs/sha256:2f358d7915c4c9c6131e63debcaeabe3e77bfeedf4ecc41dd01c6db5f0229e2a",
|
||||
"sha256": "2f358d7915c4c9c6131e63debcaeabe3e77bfeedf4ecc41dd01c6db5f0229e2a"
|
||||
},
|
||||
"x86_64_linux": {
|
||||
"cellar": ":any_skip_relocation",
|
||||
"url": "https://ghcr.io/v2/linuxbrew/core/mdbook/blobs/sha256:8747b95ef1401af63cab80c7c3dd8ed2e09acac80f48499d951f430b8562c838",
|
||||
"sha256": "8747b95ef1401af63cab80c7c3dd8ed2e09acac80f48499d951f430b8562c838"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"system": {
|
||||
"linux": {
|
||||
"Ubuntu 20.04.2 LTS (focal)": {
|
||||
"HOMEBREW_VERSION": "3.2.2",
|
||||
"HOMEBREW_PREFIX": "/home/linuxbrew/.linuxbrew",
|
||||
"Homebrew/linuxbrew-core": "09bc458ee1de62ff7aa9e8ed31082c7b9e4ba9b4",
|
||||
"GCC": "9.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
121
LICENSE
Normal file
121
LICENSE
Normal file
|
@ -0,0 +1,121 @@
|
|||
Creative Commons Legal Code
|
||||
|
||||
CC0 1.0 Universal
|
||||
|
||||
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
|
||||
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
|
||||
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
|
||||
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
|
||||
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
|
||||
HEREUNDER.
|
||||
|
||||
Statement of Purpose
|
||||
|
||||
The laws of most jurisdictions throughout the world automatically confer
|
||||
exclusive Copyright and Related Rights (defined below) upon the creator
|
||||
and subsequent owner(s) (each and all, an "owner") of an original work of
|
||||
authorship and/or a database (each, a "Work").
|
||||
|
||||
Certain owners wish to permanently relinquish those rights to a Work for
|
||||
the purpose of contributing to a commons of creative, cultural and
|
||||
scientific works ("Commons") that the public can reliably and without fear
|
||||
of later claims of infringement build upon, modify, incorporate in other
|
||||
works, reuse and redistribute as freely as possible in any form whatsoever
|
||||
and for any purposes, including without limitation commercial purposes.
|
||||
These owners may contribute to the Commons to promote the ideal of a free
|
||||
culture and the further production of creative, cultural and scientific
|
||||
works, or to gain reputation or greater distribution for their Work in
|
||||
part through the use and efforts of others.
|
||||
|
||||
For these and/or other purposes and motivations, and without any
|
||||
expectation of additional consideration or compensation, the person
|
||||
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
|
||||
is an owner of Copyright and Related Rights in the Work, voluntarily
|
||||
elects to apply CC0 to the Work and publicly distribute the Work under its
|
||||
terms, with knowledge of his or her Copyright and Related Rights in the
|
||||
Work and the meaning and intended legal effect of CC0 on those rights.
|
||||
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be
|
||||
protected by copyright and related or neighboring rights ("Copyright and
|
||||
Related Rights"). Copyright and Related Rights include, but are not
|
||||
limited to, the following:
|
||||
|
||||
i. the right to reproduce, adapt, distribute, perform, display,
|
||||
communicate, and translate a Work;
|
||||
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||
iii. publicity and privacy rights pertaining to a person's image or
|
||||
likeness depicted in a Work;
|
||||
iv. rights protecting against unfair competition in regards to a Work,
|
||||
subject to the limitations in paragraph 4(a), below;
|
||||
v. rights protecting the extraction, dissemination, use and reuse of data
|
||||
in a Work;
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||
European Parliament and of the Council of 11 March 1996 on the legal
|
||||
protection of databases, and under any national implementation
|
||||
thereof, including any amended or successor version of such
|
||||
directive); and
|
||||
vii. other similar, equivalent or corresponding rights throughout the
|
||||
world based on applicable law or treaty, and any national
|
||||
implementations thereof.
|
||||
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention
|
||||
of, applicable law, Affirmer hereby overtly, fully, permanently,
|
||||
irrevocably and unconditionally waives, abandons, and surrenders all of
|
||||
Affirmer's Copyright and Related Rights and associated claims and causes
|
||||
of action, whether now known or unknown (including existing as well as
|
||||
future claims and causes of action), in the Work (i) in all territories
|
||||
worldwide, (ii) for the maximum duration provided by applicable law or
|
||||
treaty (including future time extensions), (iii) in any current or future
|
||||
medium and for any number of copies, and (iv) for any purpose whatsoever,
|
||||
including without limitation commercial, advertising or promotional
|
||||
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
|
||||
member of the public at large and to the detriment of Affirmer's heirs and
|
||||
successors, fully intending that such Waiver shall not be subject to
|
||||
revocation, rescission, cancellation, termination, or any other legal or
|
||||
equitable action to disrupt the quiet enjoyment of the Work by the public
|
||||
as contemplated by Affirmer's express Statement of Purpose.
|
||||
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason
|
||||
be judged legally invalid or ineffective under applicable law, then the
|
||||
Waiver shall be preserved to the maximum extent permitted taking into
|
||||
account Affirmer's express Statement of Purpose. In addition, to the
|
||||
extent the Waiver is so judged Affirmer hereby grants to each affected
|
||||
person a royalty-free, non transferable, non sublicensable, non exclusive,
|
||||
irrevocable and unconditional license to exercise Affirmer's Copyright and
|
||||
Related Rights in the Work (i) in all territories worldwide, (ii) for the
|
||||
maximum duration provided by applicable law or treaty (including future
|
||||
time extensions), (iii) in any current or future medium and for any number
|
||||
of copies, and (iv) for any purpose whatsoever, including without
|
||||
limitation commercial, advertising or promotional purposes (the
|
||||
"License"). The License shall be deemed effective as of the date CC0 was
|
||||
applied by Affirmer to the Work. Should any part of the License for any
|
||||
reason be judged legally invalid or ineffective under applicable law, such
|
||||
partial invalidity or ineffectiveness shall not invalidate the remainder
|
||||
of the License, and in such case Affirmer hereby affirms that he or she
|
||||
will not (i) exercise any of his or her remaining Copyright and Related
|
||||
Rights in the Work or (ii) assert any associated claims and causes of
|
||||
action with respect to the Work, in either case contrary to Affirmer's
|
||||
express Statement of Purpose.
|
||||
|
||||
4. Limitations and Disclaimers.
|
||||
|
||||
a. No trademark or patent rights held by Affirmer are waived, abandoned,
|
||||
surrendered, licensed or otherwise affected by this document.
|
||||
b. Affirmer offers the Work as-is and makes no representations or
|
||||
warranties of any kind concerning the Work, express, implied,
|
||||
statutory or otherwise, including without limitation warranties of
|
||||
title, merchantability, fitness for a particular purpose, non
|
||||
infringement, or the absence of latent or other defects, accuracy, or
|
||||
the present or absence of errors, whether or not discoverable, all to
|
||||
the greatest extent permissible under applicable law.
|
||||
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||
that may apply to the Work or any use thereof, including without
|
||||
limitation any person's Copyright and Related Rights in the Work.
|
||||
Further, Affirmer disclaims responsibility for obtaining any necessary
|
||||
consents, permissions or other rights required for any use of the
|
||||
Work.
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not a
|
||||
party to this document and has no duty or obligation with respect to
|
||||
this CC0 or use of the Work.
|
17
README.md
Normal file
17
README.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Hasuraで作るREST API
|
||||
|
||||
## ローカル環境でのビルド
|
||||
|
||||
### 前提
|
||||
|
||||
- Ubuntu 20.04 LTS
|
||||
- Homebrew
|
||||
- Yarn
|
||||
|
||||
### 手順
|
||||
|
||||
下記のコマンドを実行すると `book` ディレクトリ以下にファイルが生成されます。
|
||||
|
||||
```sh
|
||||
brew bundle && yarn && yarn build
|
||||
```
|
10
book.toml
Normal file
10
book.toml
Normal file
|
@ -0,0 +1,10 @@
|
|||
[book]
|
||||
language = "ja"
|
||||
title = "Hasuraで作るREST API"
|
||||
authors = ["Kohei Watanabe"]
|
||||
src = "docs"
|
||||
|
||||
[output.html]
|
||||
site-url = "/hasura-rest-hands-on/"
|
||||
git-repository-url = "https://github.com/kou029w/hasura-rest-hands-on"
|
||||
edit-url-template = "https://github.com/kou029w/hasura-rest-hands-on/edit/main/{path}"
|
8
docs/README.md
Normal file
8
docs/README.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Hasuraで作るREST API
|
||||
|
||||
Hasuraを使用してPostgresデータベースに接続したREST APIを構築します。
|
||||
|
||||
<!-- TODO:
|
||||
これから作成する構成 - Heroku Database/Hasura Cloud/CodeSandbox/Vue 3/Quill)
|
||||
https://qfmmc.csb.app/
|
||||
-->
|
13
docs/SUMMARY.md
Normal file
13
docs/SUMMARY.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# 目次
|
||||
|
||||
- [Hasuraで作るREST API](README.md)
|
||||
- [事前準備](preparation.md)
|
||||
- [Herokuのアカウント登録](signup-heroku.md)
|
||||
- [Hasura Cloudのアカウント登録](signup-hasura-cloud.md)
|
||||
- [Hasura Cloudプロジェクトの作成](create-project.md)
|
||||
- [Heroku Databaseへの接続](create-heroku-database.md)
|
||||
- [テーブルの作成](create-table.md)
|
||||
- [GraphQLによるデータの挿入と取得](insert-and-select.md)
|
||||
- [REST APIエンドポイントの作成](create-rest-endpoint.md)
|
||||
- [アクセス権の設定](permissions.md)
|
||||
- [Vueアプリケーションの作成](create-vue-app.md)
|
11
docs/create-heroku-database.md
Normal file
11
docs/create-heroku-database.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Heroku Databaseへの接続
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
12
docs/create-project.md
Normal file
12
docs/create-project.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Hasura Cloudプロジェクトの作成
|
||||
|
||||
もし、プロジェクトが存在しない場合、まずプロジェクトの作成を行います。
|
||||
すでに存在するプロジェクトを利用する場合は不要です。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
画面上にプロジェクトが表示されれば完了です。
|
36
docs/create-rest-endpoint.md
Normal file
36
docs/create-rest-endpoint.md
Normal file
|
@ -0,0 +1,36 @@
|
|||
# REST APIエンドポイントの作成
|
||||
|
||||

|
||||
|
||||
get page
|
||||
GET page/:id
|
||||
|
||||
```graphql
|
||||
query getPage($id: Int!) {
|
||||
page: pages_by_pk(id: $id) {
|
||||
id
|
||||
content
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
put page
|
||||
PUT page/:id
|
||||
|
||||
```graphql
|
||||
mutation putPage($id: Int!, $content: jsonb!) {
|
||||
page: insert_pages_one(
|
||||
object: { id: $id, content: $content }
|
||||
on_conflict: { constraint: pages_pkey, update_columns: content }
|
||||
) {
|
||||
id
|
||||
content
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||

|
12
docs/create-table.md
Normal file
12
docs/create-table.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
# テーブルの作成
|
||||
|
||||

|
||||
|
||||
<!--
|
||||
TODO: テーブル
|
||||
pages
|
||||
id int autoincrement
|
||||
content jsonb
|
||||
-->
|
||||
|
||||

|
47
docs/create-vue-app.md
Normal file
47
docs/create-vue-app.md
Normal file
|
@ -0,0 +1,47 @@
|
|||
# Vueアプリケーションの作成
|
||||
|
||||
https://qfmmc.csb.app/
|
||||
|
||||
```vue
|
||||
<template>
|
||||
<QuillEditor
|
||||
ref="editor"
|
||||
:content="{ ops: [{ insert: '読み込み中…' }] }"
|
||||
@update:content="update"
|
||||
toolbar="full"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { QuillEditor } from "@vueup/vue-quill";
|
||||
import "@vueup/vue-quill/dist/vue-quill.snow.css";
|
||||
import axios from "axios";
|
||||
import _ from "lodash";
|
||||
|
||||
/** ここに先ほど作成したREST APIエンドポイントを指定します */
|
||||
const endpoint = "https://memo-demo.hasura.app/api/rest/page/1";
|
||||
|
||||
export default {
|
||||
name: "App",
|
||||
components: { QuillEditor },
|
||||
beforeMount() {
|
||||
this.update = _.debounce(async (content) => {
|
||||
await axios.put(endpoint, { content });
|
||||
console.debug("updated", content);
|
||||
}, 1000);
|
||||
},
|
||||
async mounted() {
|
||||
const res = await axios.get(endpoint);
|
||||
const content = res.data.page?.content;
|
||||
this.$refs.editor.setContents(content);
|
||||
console.debug("content", content);
|
||||
},
|
||||
};
|
||||
</script>
|
||||
```
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
47
docs/insert-and-select.md
Normal file
47
docs/insert-and-select.md
Normal file
|
@ -0,0 +1,47 @@
|
|||
# GraphQLによるデータの挿入と取得
|
||||
|
||||
<!--
|
||||
TODO:
|
||||
(GraphQLの基本)
|
||||
-->
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
```graphql
|
||||
mutation MyMutation {
|
||||
insert_pages_one(object: {content: {}}) {
|
||||
id
|
||||
content
|
||||
}
|
||||
}
|
||||
```
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||

|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
```graphql
|
||||
mutation MyMutation {
|
||||
insert_pages_one(object: {content: {hey: "hello!"}}) {
|
||||
id
|
||||
content
|
||||
}
|
||||
}
|
||||
```
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
```graphql
|
||||
query MyQuery {
|
||||
pages_by_pk(id: 2) {
|
||||
id
|
||||
content
|
||||
}
|
||||
}
|
||||
```
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||

|
17
docs/permissions.md
Normal file
17
docs/permissions.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
# アクセス権の設定
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
6
docs/preparation.md
Normal file
6
docs/preparation.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
# 事前準備
|
||||
|
||||
あらかじめ下記のアカウントに登録しておきましょう。
|
||||
|
||||
- [Herokuのアカウント登録](signup-heroku.md)
|
||||
- [Hasura Cloudのアカウント登録](signup-hasura-cloud.md)
|
31
docs/signup-hasura-cloud.md
Normal file
31
docs/signup-hasura-cloud.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
# Hasura Cloudのアカウント登録
|
||||
|
||||
[Signup - Hasura Cloud](https://cloud.hasura.io/signup)
|
||||
|
||||
または
|
||||
|
||||
[](https://cloud.hasura.io/)
|
||||
|
||||
このリンクから、Hasura Cloudにアクセスします。
|
||||
|
||||

|
||||
|
||||
GitHubアカウントまたはGoogleアカウント、メールアドレスを使って登録が可能です。
|
||||
|
||||
GitHubアカウントを使用する場合:
|
||||
|
||||
事前に[Join GitHub](https://github.com/join)からGitHubアカウントを作成し、サインインします。
|
||||
|
||||
Googleアカウントを使用する場合:
|
||||
|
||||
事前に[Google アカウントの作成](https://accounts.google.com/signup)し、ログインします。
|
||||
|
||||
メールアドレスを使用する場合:
|
||||
|
||||
[Signup - Hasura Cloud](https://cloud.hasura.io/signup) > [Sign up with Email] から、必要事項を入力し、アカウントを登録します。
|
||||
|
||||

|
||||
|
||||
アカウントを作成後、[Hasura Cloudのプロジェクト一覧](https://cloud.hasura.io/projects)にアクセスできれば完了です。
|
||||
|
||||

|
19
docs/signup-heroku.md
Normal file
19
docs/signup-heroku.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Herokuのアカウント登録
|
||||
|
||||
[Herokuの新規登録](https://signup.heroku.com/jp)からアカウントを作成します。
|
||||
|
||||
アカウントに必要な項目を入力します。
|
||||
|
||||

|
||||
|
||||
入力したメールアドレスに登録用のメールが届くので確認します。
|
||||
|
||||

|
||||
|
||||
メールに記載のリンクにアクセスし、パスワードを設定します。
|
||||
|
||||

|
||||
|
||||
Herokuにようこそ!
|
||||
|
||||

|
15
package.json
Normal file
15
package.json
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"name": "@kou029w/hasura-rest-hands-on",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "esbuild src/*.js --outdir=theme --platform=browser --bundle --minify && mdbook build"
|
||||
},
|
||||
"devDependencies": {
|
||||
"esbuild": "^0.12.15",
|
||||
"highlight.js": "^11.1.0",
|
||||
"highlightjs-graphql": "^1.0.2",
|
||||
"prettier": "^2.3.2",
|
||||
"prettier-plugin-md-nocjsp": "^1.1.1"
|
||||
}
|
||||
}
|
21
src/highlight.js
Normal file
21
src/highlight.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* @license
|
||||
* highlight.js
|
||||
* License: BSD-3-Clause
|
||||
* Copyright (c) 2006 Ivan Sagalaev
|
||||
*/
|
||||
import hljs from "highlight.js";
|
||||
import vue from "highlight.js/lib/languages/xml";
|
||||
|
||||
/**
|
||||
* @license
|
||||
* highlightjs-graphql
|
||||
* License: MIT
|
||||
* Copyright (c) 2019 David Peek
|
||||
*/
|
||||
import { definer as graphql } from "highlightjs-graphql";
|
||||
|
||||
Object.entries({ vue, graphql }).forEach((language) => {
|
||||
hljs.registerLanguage(...language);
|
||||
});
|
||||
Object.assign(window, { hljs });
|
28
yarn.lock
Normal file
28
yarn.lock
Normal file
|
@ -0,0 +1,28 @@
|
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
esbuild@^0.12.15:
|
||||
version "0.12.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.15.tgz#9d99cf39aeb2188265c5983e983e236829f08af0"
|
||||
integrity sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw==
|
||||
|
||||
highlight.js@^11.1.0:
|
||||
version "11.1.0"
|
||||
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.1.0.tgz#0198f7326e64ddfbea5f76b00e84ab542cf24ae8"
|
||||
integrity sha512-X9VVhYKHQPPuwffO8jk4bP/FVj+ibNCy3HxZZNDXFtJrq4O5FdcdCDRIkDis5MiMnjh7UwEdHgRZJcHFYdzDdA==
|
||||
|
||||
highlightjs-graphql@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/highlightjs-graphql/-/highlightjs-graphql-1.0.2.tgz#841e26831e7da9f0a3d66f93e6ff98a0d1ad6f43"
|
||||
integrity sha512-jShTftpKQDwMXc+7OHOpHXRYSweT08EO2YOIcLbwU00e9yuwJMYXGLF1eiDO0aUPeQU4/5EjAh5HtPt3ly7rvg==
|
||||
|
||||
prettier-plugin-md-nocjsp@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/prettier-plugin-md-nocjsp/-/prettier-plugin-md-nocjsp-1.1.1.tgz#c0f9b00eee636d34ad736d6bf01600a794146be4"
|
||||
integrity sha512-KeymD5eu5FrlgGxwt+U27RipSG4SItn5ZqfPFutgmiVLO1clKHtPylRWSf6DnkfnjgUEytEtB4FPOdj1YK2bww==
|
||||
|
||||
prettier@^2.3.2:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d"
|
||||
integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==
|
Loading…
Add table
Reference in a new issue