diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index e2976af8..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,55 +0,0 @@ -version: 2 -jobs: - build: - working_directory: ~/graphql-compose - docker: - - image: circleci/node:8 - steps: - - checkout - - restore_cache: - keys: - - website-node-modules-{{ checksum "website/yarn.lock" }}-{{ checksum "yarn.lock" }} - - website-node-modules- - - run: - name: Install node_modules - command: | - yarn --no-progress - cd website - yarn --no-progress - # - run: - # name: Install crowdin - # command: | - # sudo apt-get update - # sudo apt-get install default-jre - # wget https://artifacts.crowdin.com/repo/deb/crowdin.deb -O crowdin.deb - # sudo dpkg -i crowdin.deb - # - run: - # name: Install apt packages - # command: | - # sudo apt install rsync - - deploy: - name: Publish gh-pages - command: | - git config --global user.email "nodkz@users.noreply.github.com" - git config --global user.name "Pavel Chertorogov" - echo "machine github.com login nodkz password $GITHUB_TOKEN" > ~/.netrc - # yarn write-translations && yarn crowdin-upload && yarn crowdin-download - GIT_USER=nodkz yarn docusaurus-publish - - save_cache: - key: website-node-modules-{{ checksum "website/yarn.lock" }}-{{ checksum "yarn.lock" }} - paths: - - node_modules - - website/node_modules - - tmp -workflows: - version: 2 - build_and_deploy: - jobs: - - build: - filters: - branches: - only: source -general: - branches: - ignore: - - master diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 27d2dae2..00000000 --- a/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -*/node_modules -*.log diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index bfe5a08b..00000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -__generated__ \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 989766c2..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,50 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'prettier'], - extends: [ - 'plugin:@typescript-eslint/recommended', - 'prettier/@typescript-eslint', - 'plugin:prettier/recommended', - ], - parserOptions: { - sourceType: 'module', - useJSXTextNode: true, - project: './tsconfig.json', - }, - rules: { - 'no-underscore-dangle': 0, - 'arrow-body-style': 0, - 'no-unused-expressions': 0, - 'no-plusplus': 0, - 'no-console': 0, - 'func-names': 0, - 'comma-dangle': [ - 'error', - { - arrays: 'always-multiline', - objects: 'always-multiline', - imports: 'always-multiline', - exports: 'always-multiline', - functions: 'ignore', - }, - ], - 'no-prototype-builtins': 0, - 'prefer-destructuring': 0, - 'no-else-return': 0, - 'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }], - '@typescript-eslint/explicit-member-accessibility': 0, - '@typescript-eslint/no-explicit-any': 0, - '@typescript-eslint/explicit-function-return-type': 0, - '@typescript-eslint/no-empty-interface': 0, - '@typescript-eslint/no-unused-vars': 0, - '@typescript-eslint/no-var-requires': 0, - }, - env: { - jasmine: true, - jest: true, - }, - globals: { - Class: true, - Iterator: true, - }, -}; diff --git a/.gitignore b/.gitignore deleted file mode 100644 index ff160eec..00000000 --- a/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -node_modules -.DS_Store -lib/core/metadata.js -lib/core/MetadataBlog.js -website/translated_docs -website/build/ -website/yarn.lock -website/node_modules -build -translated_docs -tmp -dist - -# DOCS should be ignored! -# They can be fetched by `yarn fetch-docs` command -docs - -website/i18n/* -!website/i18n/en.json - diff --git a/.markdownlint.json b/.markdownlint.json deleted file mode 100644 index 85da601f..00000000 --- a/.markdownlint.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "line-length": false, - "no-trailing-punctuation": { - "punctuation": ",;" - }, - "no-inline-html": false, - "ol-prefix": false, - "first-line-h1": false, - "first-heading-h1": false -} \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 09101a7e..00000000 --- a/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "singleQuote": true, - "arrowParens": "always", - "tabWidth": 2, - "useTabs": false, - "printWidth": 100, - "trailingComma": "es5" -} diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index afdea5f2..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Launch Program", - "program": "${workspaceFolder}/index.js", - "outFiles": [ - "${workspaceFolder}/**/*.js" - ] - }, - { - "type": "node", - "name": "Jest", - "request": "launch", - "program": "${workspaceFolder}/node_modules/jest/bin/jest", - "args": ["--runInBand", "--watch"], - "cwd": "${workspaceFolder}", - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen" - }, - { - "type": "node", - "request": "launch", - "name": "Debug gen-api", - "program": "${workspaceFolder}/gen-api/write-docs-api-files.ts", - "preLaunchTask": "tsc: build - tsconfig.build.json", - "outFiles": ["${workspaceFolder}/dist/**/*.js"] - } - ] -} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index d369844d..00000000 --- a/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM node:8.11.4 - -WORKDIR /app/website - -EXPOSE 3000 35729 -COPY ./docs /app/docs -COPY ./website /app/website -RUN yarn install - -CMD ["yarn", "start"] diff --git a/README.md b/README.md index 31838cb5..186653a2 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,2 @@ -# Graphql-compose website - -**If you want to make changes in documentation, please do it in the upstream repo https://github.com/graphql-compose/graphql-compose/tree/master/docs. This repo contains configuration for docusaurus and styles for layout.** - - -**Use `source` branch for making PRs.** `.gihub.io` website requires that `master` branch is used only for already builded version. Changes from `source` branch are automatically picked into `master` branch by CI. - -This code is used to generate https://graphql-compose.github.io. It pulls in files from `docs/` and `website/` to generate html files served on the site. - -`website/` contains the JS, CSS, images and other files (and blog, which contains some markdown files too, these are separated from `docs/`, not too important). - -`cd website && npm install && npm start` to start the development server & watcher. - -Don't use `npm build`. It's mostly for debugging. - -Two special files: - -- `sidebars.json`: lists the sections. -- `siteConfig.json`: some header and i18n configs. - -During your development, most changes will be picked up at each browser refresh. If you touch these two files or `blog/`, however, you'll have to restart the server to see the changes. - -## Translations - -The entire site can be translated via the [Crowdin project](https://crowdin.com/project/graphql-compose). This repo only has the canonical english documentation. Don't manually edit things in `i18n/`. - -## Debugging - -`console.log`s appear in your terminal! - -## Building and Deploying - -Changes from `source` branch are automatically picked into `master` branch by CI, then published. Translation download/uploads are still manual right now (needs API key, which @nodkz have). +Icon set: https://www.flaticon.com/packs/tool-box-3 +Icon editor: http://vectorpaint.yaks.co.nz/ diff --git a/additional-types.svg b/additional-types.svg new file mode 100644 index 00000000..c05641e7 --- /dev/null +++ b/additional-types.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/blog/2016/03/11/blog-post.html b/blog/2016/03/11/blog-post.html new file mode 100644 index 00000000..27f85d13 --- /dev/null +++ b/blog/2016/03/11/blog-post.html @@ -0,0 +1,112 @@ +Blog Title · graphql-compose

8.x.x

\ No newline at end of file diff --git a/blog/2017/04/10/blog-post-two.html b/blog/2017/04/10/blog-post-two.html new file mode 100644 index 00000000..a0a918f0 --- /dev/null +++ b/blog/2017/04/10/blog-post-two.html @@ -0,0 +1,112 @@ +New Blog Post · graphql-compose

8.x.x

\ No newline at end of file diff --git a/blog/2017/09/25/testing-rss.html b/blog/2017/09/25/testing-rss.html new file mode 100644 index 00000000..5e3d1259 --- /dev/null +++ b/blog/2017/09/25/testing-rss.html @@ -0,0 +1,110 @@ +Adding RSS Support - RSS Truncation Test · graphql-compose

8.x.x

\ No newline at end of file diff --git a/blog/2017/09/26/adding-rss.html b/blog/2017/09/26/adding-rss.html new file mode 100644 index 00000000..4b876254 --- /dev/null +++ b/blog/2017/09/26/adding-rss.html @@ -0,0 +1,108 @@ +Adding RSS Support · graphql-compose

8.x.x

\ No newline at end of file diff --git a/blog/2017/10/24/new-version-1.0.0.html b/blog/2017/10/24/new-version-1.0.0.html new file mode 100644 index 00000000..6148956c --- /dev/null +++ b/blog/2017/10/24/new-version-1.0.0.html @@ -0,0 +1,107 @@ +New Version 1.0.0 · graphql-compose

8.x.x

\ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml new file mode 100644 index 00000000..9895cc89 --- /dev/null +++ b/blog/atom.xml @@ -0,0 +1,74 @@ + + + https://graphql-compose.github.io/blog + graphql-compose Blog + 2017-10-24T06:00:00Z + Feed for Node.js + + The best place to stay up-to-date with the latest graphql-compose news and events. + https://graphql-compose.github.io/img/logo.png + + <![CDATA[New Version 1.0.0]]> + https://graphql-compose.github.io/blog/2017/10/24/new-version-1.0.0.html + + + 2017-10-24T06:00:00Z + This blog post will test file name parsing issues when periods are present.

]]>
+ + Eric Nakagawa + http://twitter.com/ericnakagawa + +
+ + <![CDATA[Adding RSS Support]]> + https://graphql-compose.github.io/blog/2017/09/26/adding-rss.html + + + 2017-09-26T06:00:00Z + This is a test post.

A whole bunch of other information.

]]>
+ + Eric Nakagawa + http://twitter.com/ericnakagawa + +
+ + <![CDATA[Adding RSS Support - RSS Truncation Test]]> + https://graphql-compose.github.io/blog/2017/09/25/testing-rss.html + + + 2017-09-25T06:00:00Z + 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

+

This should be truncated.

+]]>
+ + Eric Nakagawa + http://twitter.com/ericnakagawa + +
+ + <![CDATA[New Blog Post]]> + https://graphql-compose.github.io/blog/2017/04/10/blog-post-two.html + + + 2017-04-10T06:00:00Z + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.

+]]>
+ + Blog Author + http://twitter.com/ + +
+ + <![CDATA[Blog Title]]> + https://graphql-compose.github.io/blog/2016/03/11/blog-post.html + + + 2016-03-11T06:00:00Z + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.

+]]>
+ + Blog Author + http://twitter.com/ + +
+
\ No newline at end of file diff --git a/blog/feed.xml b/blog/feed.xml new file mode 100644 index 00000000..767c626d --- /dev/null +++ b/blog/feed.xml @@ -0,0 +1,55 @@ + + + + graphql-compose Blog + https://graphql-compose.github.io/blog + The best place to stay up-to-date with the latest graphql-compose news and events. + Tue, 24 Oct 2017 06:00:00 GMT + http://blogs.law.harvard.edu/tech/rss + Feed for Node.js + + graphql-compose Blog + https://graphql-compose.github.io/img/logo.png + https://graphql-compose.github.io/blog + + + <![CDATA[New Version 1.0.0]]> + https://graphql-compose.github.io/blog/2017/10/24/new-version-1.0.0.html + https://graphql-compose.github.io/blog/2017/10/24/new-version-1.0.0.html + Tue, 24 Oct 2017 06:00:00 GMT + This blog post will test file name parsing issues when periods are present.

]]>
+
+ + <![CDATA[Adding RSS Support]]> + https://graphql-compose.github.io/blog/2017/09/26/adding-rss.html + https://graphql-compose.github.io/blog/2017/09/26/adding-rss.html + Tue, 26 Sep 2017 06:00:00 GMT + This is a test post.

A whole bunch of other information.

]]>
+
+ + <![CDATA[Adding RSS Support - RSS Truncation Test]]> + https://graphql-compose.github.io/blog/2017/09/25/testing-rss.html + https://graphql-compose.github.io/blog/2017/09/25/testing-rss.html + Mon, 25 Sep 2017 06:00:00 GMT + 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

+

This should be truncated.

+]]>
+
+ + <![CDATA[New Blog Post]]> + https://graphql-compose.github.io/blog/2017/04/10/blog-post-two.html + https://graphql-compose.github.io/blog/2017/04/10/blog-post-two.html + Mon, 10 Apr 2017 06:00:00 GMT + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.

+]]>
+
+ + <![CDATA[Blog Title]]> + https://graphql-compose.github.io/blog/2016/03/11/blog-post.html + https://graphql-compose.github.io/blog/2016/03/11/blog-post.html + Fri, 11 Mar 2016 06:00:00 GMT + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.

+]]>
+
+
+
\ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 00000000..1321989c --- /dev/null +++ b/blog/index.html @@ -0,0 +1,113 @@ +Blog · graphql-compose

8.x.x

\ No newline at end of file diff --git a/website/static/circle.yml b/circle.yml similarity index 100% rename from website/static/circle.yml rename to circle.yml diff --git a/crowdin.yaml b/crowdin.yaml deleted file mode 100644 index 3b9fff0b..00000000 --- a/crowdin.yaml +++ /dev/null @@ -1,54 +0,0 @@ -project_identifier_env: CROWDIN_DOCUSAURUS_PROJECT_ID -api_key_env: CROWDIN_DOCUSAURUS_API_KEY -base_path: "./" -preserve_hierarchy: true - -files: - - - source: '/docs/*.md' - translation: '/website/translated_docs/%locale%/%original_file_name%' - languages_mapping: &anchor - locale: - 'af': 'af' - 'ar': 'ar' - 'bs-BA': 'bs-BA' - 'ca': 'ca' - 'cs': 'cs' - 'da': 'da' - 'de': 'de' - 'el': 'el' - 'es-ES': 'es-ES' - 'fa': 'fa-IR' - 'fi': 'fi' - 'fr': 'fr' - 'he': 'he' - 'hu': 'hu' - 'id': 'id-ID' - 'it': 'it' - 'ja': 'ja' - 'ko': 'ko' - 'mr': 'mr-IN' - 'nl': 'nl' - 'no': 'no-NO' - 'pl': 'pl' - 'pt-BR': 'pt-BR' - 'pt-PT': 'pt-PT' - 'ro': 'ro' - 'ru': 'ru' - 'sk': 'sk-SK' - 'sr': 'sr' - 'sv-SE': 'sv-SE' - 'tr': 'tr' - 'uk': 'uk' - 'vi': 'vi' - 'zh-CN': 'zh-CN' - 'zh-TW': 'zh-TW' - 'th': 'th' - - - source: '/website/i18n/en.json' - translation: '/website/i18n/%locale%.json' - languages_mapping: *anchor - - - source: '/website/versioned_docs/**/*.md' - translation: '/website/translated_docs/%locale%/**/%original_file_name%' - languages_mapping: *anchor diff --git a/css/main.css b/css/main.css new file mode 100644 index 00000000..73f434eb --- /dev/null +++ b/css/main.css @@ -0,0 +1 @@ +a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}body{color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word}*{box-sizing:border-box}b,strong{font-weight:600}em,i{font-style:italic}[type=checkbox]{box-sizing:border-box;padding:0}a,a:hover{color:#400d7d}a:hover{text-decoration:none}a:active,a:hover{outline-width:0}a:not([href]){color:inherit;text-decoration:none}p{margin-bottom:1em;margin-top:0}h1,h2,h3,h4,h5,h6{color:inherit;font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:1.5em}h1{font-size:32px}h2{font-size:24px}h3{font-size:20px}h4{font-size:16px}h5{font-size:14px}h6{font-size:13.6px}ol,ul{margin-bottom:1em;margin-top:0;padding-left:2em}ol ol,ul ol{list-style-type:lower-roman}ol ol,ol ul,ul ol,ul ul{margin-bottom:0;margin-top:0}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}li{word-wrap:break-all}li>p{margin-top:1em}li+li{margin-top:.25em}img{border-style:none;box-sizing:content-box;max-width:100%}img[align=right]{padding-left:1.25em}img[align=left]{padding-right:1.25em}table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:16px;margin-top:0;overflow:auto;width:100%}table tr{background-color:transparent;border-top:1px solid #dfe2e5}table tr:nth-child(2n){background-color:#f6f8fa}table td,table th{border:1px solid #dfe2e5;padding:6px 13px}table th{background-color:inherit;font-weight:600}table td,table th{color:inherit}blockquote{color:#6a737d;font-size:16px;margin:0;margin-bottom:16px;padding:0 1em}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}code{background-color:rgba(27,31,35,.05);border-radius:3px;color:inherit;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:85%;margin:0;padding:3.2px 6.4px}pre{margin-bottom:16px}pre code{background-color:transparent;border:0;display:inline;font-size:85%;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;white-space:pre;word-break:normal;word-wrap:normal}kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1;color:#444d56;display:inline-block;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:68.75%;line-height:10px;padding:3px 5px;vertical-align:middle}hr{border:1px solid #dfe2e5;box-sizing:content-box;margin:1.5em 0;overflow:hidden;padding:0}hr:after,hr:before{content:"";display:table}hr:after{clear:both}body{min-height:100vh;text-rendering:optimizeLegibility}@media only screen and (min-width:736px){body{display:flex;flex-direction:column}}article:after,article:before{content:"";display:table}article:after{clear:both}article>:first-child{margin-top:0}article>:last-child{margin-bottom:0}article iframe,article p img{display:block;margin-left:auto;margin-right:auto;max-width:100%}.anchor{display:block;position:relative;top:-80px}.hash-link{line-height:1;margin-left:-20px;opacity:0;padding-right:4px;transition:opacity .3s}.hash-link:hover{opacity:1!important;transition:none}.hash-link .hash-link-icon{vertical-align:middle}.button{border:1px solid #400d7d;border-radius:3px;color:#400d7d;display:inline-block;font-size:14px;font-weight:400;line-height:1.2em;padding:10px;text-decoration:none!important;text-transform:uppercase;transition:background .3s,color .3s}.button:hover{background:#400d7d;color:#fff}h1:hover .hash-link,h2:hover .hash-link,h3:hover .hash-link,h4:hover .hash-link{opacity:.5;transition:none}blockquote{background-color:rgba(255,229,100,.3);border-left:8px solid #ffe564;padding:15px 30px 15px 15px}.wrapper{margin:0 auto;max-width:1100px;padding:0 20px}.wrapper blockquote>p:first-child{padding-top:0}.center{display:block}.center,.homeContainer{text-align:center}.homeContainer .homeWrapper{padding:2em 10px}.homeContainer .homeWrapper .wrapper{margin:0 auto;max-width:900px;padding:0 20px}.homeContainer .homeWrapper .projectLogo img{height:100px;margin-bottom:0}.homeContainer .homeWrapper #project_title{font-size:300%;letter-spacing:-.08em;line-height:1em;margin-bottom:80px}.homeContainer .homeWrapper #project_tagline{font-size:200%;letter-spacing:-.04em;line-height:1em}.projectLogo{display:none;pointer-events:none}.projectLogo img{height:100px;margin-bottom:0}.projectIntro{margin:40px 0}.projectTitle{color:#400d7d;font-size:250%;line-height:1em}.projectTitle>small{display:block;font-weight:400;font-size:50%;line-height:1em;margin:.7em 0 1.3em}@media only screen and (min-width:480px){.projectTitle{font-size:300%;margin:.3em 0}.projectLogo img{height:200px;margin-bottom:10px}.homeContainer .homeWrapper{padding-left:10px;padding-right:10px}}@media only screen and (min-width:736px){.homeContainer .homeWrapper{position:relative}.homeContainer .homeWrapper #inner{max-width:600px;padding-right:40px}}@media only screen and (min-width:1200px){.homeContainer .homeWrapper #inner{max-width:750px}.homeContainer .homeWrapper .projectLogo{align-items:center;bottom:0;display:flex;justify-content:flex-end;left:0;padding:2em 100px 4em;position:absolute;right:0;top:0}.homeContainer .homeWrapper .projectLogo img{height:100%;max-height:250px}}@media only screen and (min-width:1500px){.homeContainer .homeWrapper #inner{max-width:1100px;padding-bottom:40px;padding-top:40px}.wrapper{max-width:1400px}}.mainContainer{flex:1 1 auto;max-width:100%;padding:48px 0}.mainContainer .wrapper{text-align:left}.mainContainer .wrapper .allShareBlock{padding:10px 0}.mainContainer .wrapper .allShareBlock .pluginBlock{margin:12px 0;padding:0}.mainContainer .wrapper .post{position:relative}.mainContainer .wrapper .post.basicPost{margin-top:30px}.mainContainer .wrapper .post .postHeader{margin-bottom:16px}.mainContainer .wrapper .post .postHeaderTitle{margin-top:0;padding:0}.mainContainer .wrapper .post .postSocialPlugins{padding-top:1em}.mainContainer .wrapper .post .docPagination{background:#400d7d;bottom:0;left:0;position:absolute;right:0}.mainContainer .wrapper .post .docPagination .pager{display:inline-block;width:50%}.mainContainer .wrapper .post .docPagination .pagingNext{float:right;text-align:right}.mainContainer .wrapper .post .docPagination a{border:none;color:#fff;display:block;padding:4px 12px}.mainContainer .wrapper .post .docPagination a:hover{background-color:#f9f9f9;color:#393939}.mainContainer .wrapper .post .docPagination a .pagerLabel{display:inline}.mainContainer .wrapper .post .docPagination a .pagerTitle{display:none}@media only screen and (min-width:480px){.mainContainer .wrapper .post .docPagination a .pagerLabel{display:none}.mainContainer .wrapper .post .docPagination a .pagerTitle{display:inline}}@media only screen and (min-width:1024px){.mainContainer .wrapper .post{display:block}.mainContainer .wrapper .posts .post{width:100%}}.fixedHeaderContainer{background:#400d7d;color:#fff;min-height:50px;padding:8px 0;position:fixed;width:100%;z-index:9999;-webkit-transform:translateZ(0);transform:translateZ(0)}@media only screen and (min-width:1024px){.fixedHeaderContainer{flex-shrink:0}}.fixedHeaderContainer a{align-items:center;border:0;color:#fff;display:flex;flex-flow:row nowrap;height:34px;z-index:10000}.fixedHeaderContainer header{display:flex;flex-flow:row nowrap;position:relative;text-align:left}.fixedHeaderContainer header img{height:100%;margin-right:10px}.fixedHeaderContainer header .headerTitle{font-size:1.25em;margin:0}.fixedHeaderContainer header .headerTitleWithLogo{display:block;font-size:1.25em;line-height:18px;margin:0;position:relative;z-index:9999}.fixedHeaderContainer header h3{color:#fff;font-size:16px;margin:0;margin-left:10px;text-decoration:underline}@media (max-width:480px){.headerTitle{font-size:17px}.headerTitleWithLogo{display:none!important}}.promoSection{display:flex;flex-flow:column wrap;font-size:125%;line-height:1.6em;position:relative;z-index:99}.promoSection .promoRow{padding:10px 0}.promoSection .promoRow .pluginWrapper{display:block}.promoSection .promoRow .pluginWrapper.ghStarWrapper,.promoSection .promoRow .pluginWrapper.ghWatchWrapper{height:28px}.promoSection .promoRow .pluginRowBlock{display:flex;flex-wrap:wrap;justify-content:center;margin:0 -2px}.promoSection .promoRow .pluginRowBlock .pluginWrapper{padding:0 2px}.promoSection .promoRow .pluginRowBlock iframe{margin-left:2px;margin-top:5px}input[type=search]{-moz-appearance:none;-webkit-appearance:none}.navSearchWrapper{align-items:center;align-self:center;display:flex;justify-content:center;padding-left:10px;position:absolute;right:10px;top:15px}.navSearchWrapper:before{border:3px solid #e5e5e5;border-radius:50%;content:" ";display:block;height:6px;left:15px;position:absolute;top:50%;-webkit-transform:translateY(-58%);transform:translateY(-58%);width:6px;z-index:1}.navSearchWrapper:after{background:#e5e5e5;content:" ";height:7px;left:24px;position:absolute;top:55%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);width:3px;z-index:1}.navSearchWrapper .aa-dropdown-menu{background:#f9f9f9;border:3px solid rgba(57,57,57,.25);color:#393939;font-size:14px;left:auto!important;line-height:1.2em;right:0!important}.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--category-header{background:#400d7d;color:#fff;font-size:14px;font-weight:400}.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#400d7d;color:#fff}.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight,.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--title .algolia-docsearch-suggestion--highlight{color:#400d7d}.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--subcategory-column,.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion__secondary{border-color:rgba(57,57,57,.3)}input#search_input_react{background-color:rgba(0,0,0,.2);border:none;border-radius:20px;color:#fff;font-size:14px;font-weight:300;line-height:20px;outline:none;padding-left:25px;position:relative;transition:width .5s ease;width:170px}.navSearchWrapper:before{left:24px}.navSearchWrapper:after{left:35px}input#search_input_react:active,input#search_input_react:focus{color:#fff;width:220px}.navigationSlider .slidingNav .navSearchWrapper .algolia-docsearch-footer a{height:auto}@media only screen and (max-width:735px){.navSearchWrapper{width:40%}}input::-webkit-input-placeholder{color:#e5e5e5}input:-ms-input-placeholder{color:#e5e5e5}input::-ms-input-placeholder{color:#e5e5e5}input::placeholder{color:#e5e5e5}.hljs{padding:1.25rem 1.5rem}.gridBlock{padding:0}.gridBlock>*{box-sizing:border-box}.gridBlock .fourByGridBlock img,.gridBlock .threeByGridBlock img,.gridBlock .twoByGridBlock img{max-width:100%}.gridBlock .gridClear{clear:both}@media only screen and (max-width:735px){.gridBlock .fourByGridBlock{flex:1 0 26%}}@media only screen and (min-width:736px){.gridBlock{display:flex;flex-direction:row;flex-wrap:wrap}.gridBlock>*{margin:0 12px}.gridBlock>:first-child{margin-left:0}.gridBlock>:last-child{margin-right:0}.gridBlock .twoByGridBlock{flex:1 0 40%}.gridBlock .threeByGridBlock{flex:1 0 26%}.gridBlock .fourByGridBlock{flex:1 0 20%}h2+.gridBlock{padding-top:20px}}@media only screen and (min-width:1400px){.gridBlock{display:flex;flex-direction:row;flex-wrap:wrap}}.alignCenter{text-align:center}.alignRight{text-align:right}.imageAlignSide{display:flex;flex-flow:row wrap}.blockImage{max-width:730px}.imageAlignSide .blockImage{flex:0 1 500px;max-width:500px}@media only screen and (max-width:735px){.imageAlignSide .blockImage{display:none}}.imageAlignSide .blockContent{flex:1 1}.imageAlignBottom .blockImage{margin:0 auto 20px;max-width:730px}.imageAlignBottom.alignCenter .blockImage{margin-left:auto;margin-right:auto}.imageAlignTop .blockImage{margin-bottom:20px;max-width:80px}.imageAlignTop.alignCenter .blockImage{margin-left:auto;margin-right:auto}.imageAlignRight .blockImage{margin-left:40px}.imageAlignLeft .blockImage{margin-right:40px}.container .gridBlock .blockContent p{padding:0}.container .wrapper .alignCenter h2{text-align:center}.container .wrapper .imageAlignSide h2{text-align:left}.container .wrapper .imageAlignSide p{margin:0;margin-bottom:40px;max-width:560px}.highlightBackground{background:rgba(153,66,79,.7);color:#fff}.highlightBackground a{font-weight:800}.container.highlightBackground .wrapper h1,.container.highlightBackground .wrapper h2,.container.highlightBackground .wrapper h3,.container.highlightBackground .wrapper h4,.container.highlightBackground .wrapper h5,.highlightBackground a{border-color:#fff;color:#fff}.lightBackground{background:#f7f7f7}.darkBackground{background:gray;color:#fff}.darkBackground a,.darkBackground code{color:#d6b3b8}.container.darkBackground .wrapper h1,.container.darkBackground .wrapper h2,.container.darkBackground .wrapper h3,.container.darkBackground .wrapper h4,.container.darkBackground .wrapper h5{border-color:#fff;color:#fff}.container.paddingAll{padding:40px}.container.paddingBottom{padding-bottom:80px}.container.paddingLeft{padding-left:40px}.container.paddingRight{padding-right:40px}.container.paddingTop{padding-top:80px}@media only screen and (max-width:735px){.container.paddingBottom{padding-bottom:40px}.container.paddingTop{padding-top:20px}}@media only screen and (max-width:1023px){.responsiveList .blockContent{position:relative}.responsiveList .blockContent>div{padding-left:20px}.responsiveList .blockContent:before{content:"\2022";position:absolute}}.navigationSlider .navSlideout{cursor:pointer;padding-top:4px;position:absolute;right:10px;top:0;transition:top .3s;z-index:101}.navigationSlider .slidingNav{bottom:auto;box-sizing:border-box;left:0;position:fixed;right:0;top:0}.navigationSlider .slidingNav.slidingNavActive{height:auto;padding-top:42px;width:300px}.navigationSlider .slidingNav ul{background:#4f2284;box-sizing:border-box;color:#fff;display:flex;flex-wrap:nowrap;list-style:none;margin-top:50px;padding:0;width:100%}.navigationSlider .slidingNav.slidingNavActive ul{display:block}.navigationSlider .slidingNav ul li{flex:1 1 auto;margin:0;text-align:center;white-space:nowrap}.navigationSlider .slidingNav ul li a{align-items:center;box-sizing:border-box;color:#400d7d;color:inherit;display:flex;font-size:.9em;height:auto;height:50px;justify-content:center;margin:0;padding:10px;transition:background-color .3s}.navigationSlider .slidingNav ul li.siteNavGroupActive a,.navigationSlider .slidingNav ul li.siteNavItemActive a,.navigationSlider .slidingNav ul li a:focus,.navigationSlider .slidingNav ul li a:hover{background:#400d7d}.languages-icon{width:20px}#languages-dropdown{pointer-events:none;position:absolute;width:100%}#languages-dropdown.visible{display:flex}#languages-dropdown.hide{display:none}#languages-dropdown-items{background-color:#400d7d;display:flex;flex-direction:column;min-width:120px;pointer-events:all}#languages li{display:block}.navPusher{left:0;min-height:100%;padding-top:100px;position:relative;z-index:99}.singleRowMobileNav.navPusher{padding-top:50px}.navPusher:after{background:rgba(0,0,0,.4);content:"";height:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .5s,width .1s .5s,height .1s .5s;width:0}@media screen and (min-width:1024px){.navPusher{display:flex;flex-direction:column;min-height:calc(100vh - 50px);padding-top:50px}.navPusher,.navPusher>:first-child{flex-grow:1}}.sliderActive .navPusher:after{height:100%;opacity:1;transition:opacity .5s;width:100%;z-index:100}@media only screen and (max-width:1024px){.reactNavSearchWrapper input#search_input_react{background-color:hsla(17,71%,82%,.25);border:none;border-radius:20px;box-sizing:border-box;color:#393939;font-size:14px;line-height:20px;outline:none;padding-left:38px;position:relative;transition:background-color .2s cubic-bezier(.68,-.55,.265,1.55),width .2s cubic-bezier(.68,-.55,.265,1.55),color .2s ease;width:100%}.reactNavSearchWrapper input#search_input_react:active,.reactNavSearchWrapper input#search_input_react:focus{background-color:#400d7d;color:#fff}.reactNavSearchWrapper .algolia-docsearch-suggestion--subcategory-inline{display:none}.reactNavSearchWrapper>span{width:100%}.reactNavSearchWrapper .aa-dropdown-menu{font-size:12px;line-height:2em;padding:0;border-width:1px;min-width:500px}.reactNavSearchWrapper .algolia-docsearch-suggestion__secondary{border-top:none}.aa-suggestions{min-height:140px;max-height:60vh;-webkit-overflow-scrolling:touch;overflow-y:scroll}#languages-dropdown{left:0;top:50px}#languages-dropdown-items{background-color:#400d7d;display:flex;flex-direction:row}}@media only screen and (min-width:1024px){.navSearchWrapper{padding-left:10px;position:relative;right:auto;top:auto}.reactNavSearchWrapper input#search_input_react{height:100%;padding-top:8px;padding-bottom:8px;padding-left:38px}.navSearchWrapper .algolia-autocomplete{display:block}.navigationSlider{height:34px;margin-left:auto;position:relative}.navigationSlider .navSlideout{display:none}.navigationSlider nav.slidingNav{background:none;height:auto;position:relative;right:auto;top:auto;width:auto}.navigationSlider .slidingNav ul{background:none;display:flex;flex-flow:row nowrap;margin:0;padding:0;width:auto}.navigationSlider .slidingNav ul li a{border:0;color:hsla(0,0%,100%,.8);display:flex;font-size:16px;font-size:1em;font-weight:300;height:32px;line-height:1.2em;margin:0;padding:0;padding:6px 10px}.navigationSlider .slidingNav ul li.siteNavGroupActive a,.navigationSlider .slidingNav ul li.siteNavItemActive a,.navigationSlider .slidingNav ul li a:hover{color:#fff}}@media only screen and (max-width:735px){.navigationSlider .slidingNav ul{overflow-x:auto}.navigationSlider .slidingNav ul::-webkit-scrollbar{display:none}.reactNavSearchWrapper .aa-dropdown-menu{min-width:400px}}@media only screen and (max-width:475px){.reactNavSearchWrapper .aa-dropdown-menu{min-width:300px}}.docMainWrapper .wrapper{padding-left:0;padding-right:0;padding-top:10px}@media only screen and (min-width:1024px){.docMainWrapper{width:100%}.docMainWrapper>*{margin:0 24px}.docMainWrapper>:first-child{margin-left:0}.docMainWrapper>:last-child{margin-right:0}.docMainWrapper .mainContainer{min-width:0}}.edit-page-link{float:right;font-size:10px;font-weight:400;margin-top:3px;text-decoration:none}@media only screen and (max-width:1023px){.edit-page-link{display:none}}.docLastUpdate{font-size:13px;font-style:italic;margin:20px 0;text-align:right}.docs-prevnext{margin:20px 0}.docs-prevnext:after{clear:both;content:" ";display:table}.docs-next{float:right}.docs-prev{float:left}@media only screen and (max-width:735px){.docs-next{clear:both;float:left}.docs-next,.docs-prev{margin:10px 0}.arrow-next{float:right;margin-left:10px}.arrow-prev{float:left;margin-right:10px}.function-name-prevnext{width:200px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.hide{display:none}.collapsible{cursor:pointer}.collapsible .arrow{float:right;margin-right:8px;margin-top:-4px;-webkit-transform:rotate(90deg);transform:rotate(90deg);transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear, -webkit-transform .2s linear}.collapsible .arrow.rotate{-webkit-transform:rotate(180deg);transform:rotate(180deg)}@media only screen and (max-width:1023px){.docsNavContainer{background:#fff;left:0;position:fixed;width:100%;z-index:100}}@media only screen and (min-width:1024px){.docsNavContainer{flex:0 0 240px;height:calc(100vh - 50px);position:-webkit-sticky;position:sticky;overflow-y:auto;top:50px}}.docsSliderActive.docsNavContainer{box-sizing:border-box;height:100%;-webkit-overflow-scrolling:touch;overflow-y:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;padding-bottom:50px}.docsNavContainer .toc .navBreadcrumb{background-color:#f1f1f1;box-sizing:border-box;display:flex;flex-flow:row nowrap;font-size:12px;height:48px;overflow:hidden;padding:8px 20px}.docsNavContainer .toc .navWrapper{padding:0}@media only screen and (min-width:1024px){.docsNavContainer .toc .navBreadcrumb{display:none}.navBreadcrumb h2{padding:0 10px}.separateOnPageNav .docsNavContainer{flex:0 0 240px}}.navBreadcrumb a,.navBreadcrumb span{border:0;color:#393939}@media only screen and (max-width:735px){.anchor{top:-144px}}@media only screen and (min-width:1024px){.toc{padding:40px 0}}.toc section{padding:0;position:relative}.toc section .navGroups{display:none;padding:48px 20px 60px}.toc .toggleNav{color:#393939;position:relative}.toc .toggleNav .navToggle{cursor:pointer;height:32px;margin-right:10px;position:relative;text-align:left;width:18px}.toc .toggleNav .navToggle:after,.toc .toggleNav .navToggle:before{border:5px solid #393939;border-width:5px 0;content:"";height:6px;left:0;left:8px;margin-top:-8px;position:absolute;top:50%;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:3px;z-index:1}.toc .toggleNav .navToggle:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.toc .toggleNav .navToggle i:after,.toc .toggleNav .navToggle i:before{background:transparent;border-color:transparent #393939;border-style:solid;border-width:0 5px 5px;content:"";height:0;left:2px;margin-top:-7px;opacity:1;position:absolute;top:50%;width:5px;z-index:10}.toggleNav h2 i{padding:0 4px}.toc .toggleNav .navToggle i:after{border-width:5px 5px 0;margin-top:2px}.docsSliderActive .toc .toggleNav .navToggle:after,.docsSliderActive .toc .toggleNav .navToggle:before{border-width:8px 0;height:0;margin-top:-8px}.docsSliderActive .toc .toggleNav .navToggle i{opacity:0}.docsSliderActive .tocToggler{visibility:hidden}.toc .toggleNav .navGroup{margin-bottom:16px}.toc .toggleNav .subNavGroup{margin-bottom:0}.toc .toggleNav .navGroup .navGroupCategoryTitle{color:#393939;font-size:18px;font-weight:500;line-height:1.2em;margin-bottom:8px;margin-top:0}.toc .toggleNav .navGroup .navGroupSubcategoryTitle{color:#393939;font-size:14px;font-weight:500;line-height:1.5;margin-bottom:0;margin-top:0;padding:4px 0}.toc .toggleNav .navGroup .navListItem{margin:0}.toc .toggleNav .navGroup h3 i:not(:empty){box-sizing:border-box;color:rgba(57,57,57,.5);display:inline-block;height:16px;margin-right:10px;text-align:center;transition:color .2s;width:16px}.toc .toggleNav ul{padding:0 8px}.docsSliderActive .toc .toggleNav ul{padding-left:0}.toc .toggleNav ul li{list-style-type:none;padding:0}.toc .toggleNav ul li a{border:none;color:#717171;display:block;font-size:14px;padding:4px 0;transition:color .3s}.toc .toggleNav ul li.navListItemActive a,.toc .toggleNav ul li a:focus,.toc .toggleNav ul li a:hover{color:#400d7d}.docsSliderActive .toc .navBreadcrumb,.tocActive .navBreadcrumb{border-bottom:1px solid #ccc;margin-bottom:20px;position:fixed;width:100%}.toc .toggleNav .navBreadcrumb h2{border:0;flex-grow:1;font-size:16px;font-weight:600;line-height:32px;margin:0;padding:0}.docsSliderActive .toc section .navGroups{display:block;padding-top:60px}.tocToggler{cursor:pointer;height:32px;line-height:32px;margin-right:-10px;padding:0 10px}.icon-toc{box-sizing:border-box;display:inline-block;line-height:normal;position:relative;top:-1px;vertical-align:middle}.icon-toc,.icon-toc:after,.icon-toc:before{background-color:currentColor;border:1px solid currentColor;border-radius:50%;box-sizing:border-box;height:4px;width:4px}.icon-toc:after,.icon-toc:before{content:"";position:absolute}.icon-toc:before{left:-1px;top:-7px}.icon-toc:after{left:-1px;top:5px}.tocActive .icon-toc{border-radius:0;height:16px;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:3px}.tocActive .icon-toc:before{border-radius:0;height:3px;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:16px}.tocActive .icon-toc:after{content:""}@media only screen and (min-width:1024px){.docMainWrapper{display:flex;flex-flow:row nowrap}.docMainWrapper .wrapper{padding-top:0;padding-left:0;padding-right:0}}.onPageNav{display:none}.onPageNav::-webkit-scrollbar{display:none}.onPageNav a{color:#717171}.onPageNav ul{list-style:none}.onPageNav ul li{font-size:12px;line-height:16px;padding-bottom:8px}.onPageNav ul ul{padding:8px 0 0 20px}.onPageNav ul ul li{padding-bottom:5px}@media only screen and (min-width:1024px){.toc section .navGroups{display:block;padding:0;padding-top:8px}.navBreadcrumb h2{padding:0 10px}}@supports ((position: -webkit-sticky) or (position: sticky)){@media only screen and (max-width:1023px){.tocActive .onPageNav{background:#fff;bottom:0;display:block;left:0;overflow-y:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;padding:0 20px;position:fixed;right:0;top:148px;z-index:10}.tocActive .singleRowMobileNav .onPageNav{top:98px}.tocActive .navBreadcrumb h2,.tocActive .navToggle{visibility:hidden}.tocActive .onPageNav>.toc-headings{padding:12px 0}}@media only screen and (min-width:1024px){.separateOnPageNav .headerWrapper.wrapper,.separateOnPageNav .wrapper{max-width:1400px}.separateOnPageNav .toc{width:auto}.separateOnPageNav.sideNavVisible .navPusher .mainContainer{flex:1 auto;max-width:100%;min-width:0}.onPageNav{align-self:flex-start;display:block;flex:0 0 240px;max-height:calc(100vh - 90px);overflow-y:auto;position:-webkit-sticky;position:sticky;top:90px}.onPageNav>.toc-headings{border-left:1px solid #e0e0e0;padding:10px 0 2px 15px}.tocToggler{display:none}}}.blog .wrapper{max-width:1100px}.blogContainer .posts .post{border-bottom:1px solid #e0e0e0;border-radius:3px;margin-bottom:20px;padding-bottom:20px}.blogContainer .postHeader{margin-bottom:10px}.blogContainer .postHeaderTitle{margin-top:0}.blogContainer .postHeader p.post-meta{margin-bottom:10px;padding:0}.blogContainer .postHeader .authorBlock{display:flex}.blogContainer .postHeader .post-authorName{color:rgba(57,57,57,.7);display:flex;flex-direction:column;font-size:14px;font-weight:400;justify-content:center;margin-right:10px;margin-top:0;margin-bottom:0;padding:0}.blogContainer .postHeader .authorPhoto{border-radius:50%;height:30px;overflow:hidden;width:30px}.blogContainer .postHeader .authorPhoto.authorPhotoBig{height:50px;width:50px}.blog-recent{margin:20px 0}.blog-recent>a{float:left}@media only screen and (max-width:735px){.blog-recent{height:40px}}.blogSocialSection{display:block;padding:36px 0}.blogSocialSection .blogSocialSectionItem{padding-bottom:5px}.fb-like{display:block;margin-bottom:20px;width:100%}.more-users{margin:0 auto;max-width:560px;text-align:center}.productShowcaseSection{padding:0 20px;text-align:center}.productShowcaseSection.paddingTop{padding-top:20px}.productShowcaseSection.paddingBottom{padding-bottom:80px}.productShowcaseSection h2{color:#400d7d;font-size:30px;line-height:1em;margin-top:20px;padding:10px 0;text-align:center}.productShowcaseSection p{margin:0 auto;max-width:560px;padding:.8em 0}.productShowcaseSection .logos{align-items:center;display:flex;flex-flow:row wrap;justify-content:center;padding:20px}.productShowcaseSection .logos img{max-height:110px;padding:20px;width:110px}@media only screen and (max-width:735px){.productShowcaseSection .logos img{max-height:64px;padding:20px;width:64px}}.showcaseSection{margin:0 auto;max-width:900px}.showcaseSection,.showcaseSection .prose h1{text-align:center}.showcaseSection .prose{margin:0 auto;max-width:560px;text-align:center}.showcaseSection .logos{align-items:center;display:flex;flex-flow:row wrap;justify-content:center}.showcaseSection .logos img{max-height:128px;padding:20px;width:128px}@media only screen and (max-width:735px){.showcaseSection .logos img{max-height:64px;padding:20px;width:64px}}.nav-footer{background:#20232a;border:none;color:#202020;font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:24px;padding-bottom:2em;padding-top:2em;position:relative}@media only screen and (min-width:1024px){.nav-footer{flex-shrink:0}}.nav-footer .sitemap{display:flex;justify-content:space-between;margin:0 auto 3em;max-width:1080px}.nav-footer .sitemap div{flex:1}.nav-footer .sitemap .nav-home{display:table;height:72px;margin:-12px 20px 0 0;opacity:.4;padding:10px;transition:opacity .15s ease-in-out;width:72px}.nav-footer .sitemap .nav-home:focus,.nav-footer .sitemap .nav-home:hover{opacity:1}@media only screen and (max-width:735px){.nav-footer .sitemap{display:flex;flex-direction:column;margin:0 2em 3em;width:calc(100% - 4em)}.nav-footer .sitemap>div{margin-bottom:18px}}.nav-footer .sitemap a{color:hsla(0,0%,100%,.6);display:block;margin:2px -10px;padding:3px 10px}.nav-footer .sitemap a:focus,.nav-footer .sitemap a:hover,.nav-footer .sitemap h5>a:focus,.nav-footer .sitemap h5>a:hover{color:#fff;text-decoration:none}.nav-footer .sitemap h5,.nav-footer .sitemap h6{margin:0 0 10px}.nav-footer .sitemap h5,.nav-footer .sitemap h5>a,.nav-footer .sitemap h6,.nav-footer .sitemap h6>a{color:#fff}.nav-footer .sitemap h5>a,.nav-footer .sitemap h6>a{margin:0 -10px}.nav-footer .fbOpenSource{display:block;margin:1em auto;opacity:.4;transition:opacity .15s ease-in-out;width:170px}.nav-footer .fbOpenSource:hover{opacity:1}.nav-footer .copyright{color:hsla(0,0%,100%,.4);text-align:center}.nav-footer .social{padding:5px 0}.tabs{border-top:1px solid #cfcfcf}.nav-tabs{display:flex;border-bottom:4px solid #e0e0e0;width:100%;padding:0;overflow-x:auto;white-space:nowrap;max-height:100%}.nav-tabs::-webkit-scrollbar{display:none}.tabs .tab-pane:focus{outline:none}.tabs .nav-tabs>div{font-size:14px;line-height:1.14286;padding:12px 16px;text-decoration:none;display:block;cursor:pointer}.tabs .nav-tabs>div.active{border-bottom:4px solid #400d7d}.tab-pane{display:none}.tab-pane.active{display:block}.tab-pane>pre{white-space:pre-wrap}.tab-pane>pre>code{margin-top:0;border-radius:0;box-shadow:none}@media only screen and (min-width:736px){#docsNav.container.docsNavContainer .toc{position:fixed;overflow-y:scroll;bottom:0;top:0;padding:80px 0 60px;width:220px}#docsNav.container.docsNavContainer .toc::-webkit-scrollbar{display:none}#docsNav.container.docsNavContainer{position:static}#docsNav.container{flex:0 0 200px}.container.paddingTop{padding-top:60px}.container.paddingBottom{padding-bottom:40px}.onPageNav{top:70px;max-height:calc(100vh - 70px)}.onPageNav .toc-headings{margin-bottom:15px}.post{padding-top:10px!important}.docMainWrapper .mainContainer{margin-left:40px}}@media only screen and (min-width:736px) and (max-width:900px){.docMainWrapper .mainContainer{margin-left:0;max-width:65%!important}}a{color:#1a0dab;text-decoration:none}a:focus,a:hover{color:#609}a.navItemActive{color:#8c32f9!important}.mainContainer h1,.mainContainer h2,.mainContainer h3,.mainContainer h4,.mainContainer h5{color:#000!important;font-weight:bolder!important}h2 small{font-size:80%;line-height:130%;color:#555}.button{text-transform:none}.leftCentredBlock{text-align:left;max-width:560px;margin:0 auto}.mTop20{margin-top:20px}.blockImage,.pluginsHeader{text-align:center}.pluginsHeader{font-size:250%;line-height:100%;padding:0 0 30px;font-weight:700}@media only screen and (max-width:736px){.pluginsHeader{padding-top:30px}}.pluginsSubHeader{padding-bottom:30px}.pluginsSubFooter,.pluginsSubHeader{font-size:130%;line-height:130%;text-align:center}.pluginsSubFooter{padding-top:30px}.pluginsBlock{margin-top:30px}.pluginsBlock .blockImage{max-width:300px;flex:0 1 300px}.pluginsBlock .blockImage img{padding-top:20px;max-width:200px;max-height:150px}.blockContent h2{margin-top:0!important}.projectTitle{font-weight:700}.imageAlignTop .blockImage{margin-bottom:0;margin-top:30px}.buttonDark{background:#400d7d;color:#fff}.buttonDark:hover,.buttonLight{background:#fff;color:#400d7d}.buttonLight:hover{background:#400d7d;color:#fff}@media only screen and (min-width:350px){.productShowcaseSection .logos img{max-height:210px;padding:10px;width:300px}}.editor-window{background-color:#f0f0f0;border-radius:5px 5px 0 0;text-align:left}.editor-window .editor-menubar{background-color:#e5e4e4;height:50px;display:flex;align-items:center;border-radius:5px 5px 0 0}.editor-window .hljs{background-color:#f0f0f0}.editor-window code,.editor-window code span{font-family:Menlo,DejaVu Sans Mono,Lucida Console,monospace;font-size:13pt}@media (max-width:420px){.editor-window code,.editor-window code span{font-size:13px}}.editor-window pre{overflow-x:auto;border-radius:0 0 5px 5px;padding-left:20px;height:100%}.editor-menubar>.editor-button{border-radius:50%;height:10px;width:10px;margin:0 2px}.editor-filename{color:#141414;font-family:Menlo,DejaVu Sans Mono,Lucida Console,monospace;font-size:12pt;font-weight:600;margin-left:10px}.editor-menubar .close{background-color:red;margin-left:10px}.editor-menubar .minimize{background-color:#ff0}.editor-menubar .maximize{background-color:green}.opencollective{text-align:center;padding:40px 10px}.opencollective .button{font-size:20px}.opencollective .backer-avatar,.opencollective .sponsor-avatar{border:1px solid red;display:inline-block;width:100px;height:100px;border-radius:50%;border:1px solid #fff;overflow:hidden;-o-object-fit:contain;object-fit:contain;padding:5px;margin:5px;border:1px solid #ccc}.opencollective .sponsor-avatar{width:200px;height:200px}.opencollective .fallbackAvatarName{color:#000;vertical-align:middle;line-height:85px}.contributors{text-align:center;padding:40px 10px}.contributor-avatar{border:1px solid red;display:inline-block;width:100px;height:100px;border-radius:50%;border:1px solid #fff;overflow:hidden;-o-object-fit:contain;object-fit:contain;padding:5px;margin:5px;border:1px solid #ccc}.sideNavVisible footer{display:none} \ No newline at end of file diff --git a/css/prism.css b/css/prism.css new file mode 100644 index 00000000..d783edb5 --- /dev/null +++ b/css/prism.css @@ -0,0 +1,115 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * Modified prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*='language-'], +pre[class*='language-'] { + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*='language-'] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} + +/* Inline code */ +:not(pre) > code[class*='language-'] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: 0.7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.number, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #dd4a68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 6711192a..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - docusaurus: - build: . - ports: - - 3000:3000 - - 35729:35729 - volumes: - - ./docs:/app/docs - - ./website/blog:/app/website/blog - - ./website/core:/app/website/core - - ./website/i18n:/app/website/i18n - - ./website/pages:/app/website/pages - - ./website/static:/app/website/static - - ./website/sidebars.json:/app/website/sidebars.json - - ./website/siteConfig.js:/app/website/siteConfig.js - working_dir: /app/website diff --git a/docs/5.12.0/api/EnumTypeComposer.html b/docs/5.12.0/api/EnumTypeComposer.html new file mode 100644 index 00000000..a33a7d9d --- /dev/null +++ b/docs/5.12.0/api/EnumTypeComposer.html @@ -0,0 +1,232 @@ +EnumTypeComposer · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/InputTypeComposer.html b/docs/5.12.0/api/InputTypeComposer.html new file mode 100644 index 00000000..570166f4 --- /dev/null +++ b/docs/5.12.0/api/InputTypeComposer.html @@ -0,0 +1,320 @@ +InputTypeComposer · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/InterfaceTypeComposer.html b/docs/5.12.0/api/InterfaceTypeComposer.html new file mode 100644 index 00000000..89b4fe85 --- /dev/null +++ b/docs/5.12.0/api/InterfaceTypeComposer.html @@ -0,0 +1,372 @@ +InterfaceTypeComposer · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/ObjectTypeComposer.html b/docs/5.12.0/api/ObjectTypeComposer.html new file mode 100644 index 00000000..22884d92 --- /dev/null +++ b/docs/5.12.0/api/ObjectTypeComposer.html @@ -0,0 +1,59 @@ +ObjectTypeComposer · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/Resolver.html b/docs/5.12.0/api/Resolver.html new file mode 100644 index 00000000..326d6627 --- /dev/null +++ b/docs/5.12.0/api/Resolver.html @@ -0,0 +1,473 @@ +Resolver · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/ScalarTypeComposer.html b/docs/5.12.0/api/ScalarTypeComposer.html new file mode 100644 index 00000000..4f02fd62 --- /dev/null +++ b/docs/5.12.0/api/ScalarTypeComposer.html @@ -0,0 +1,186 @@ +ScalarTypeComposer · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/SchemaComposer.html b/docs/5.12.0/api/SchemaComposer.html new file mode 100644 index 00000000..7344c480 --- /dev/null +++ b/docs/5.12.0/api/SchemaComposer.html @@ -0,0 +1,434 @@ +SchemaComposer · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/TypeComposer.html b/docs/5.12.0/api/TypeComposer.html new file mode 100644 index 00000000..c7c111e3 --- /dev/null +++ b/docs/5.12.0/api/TypeComposer.html @@ -0,0 +1,599 @@ +TypeComposer · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/TypeMapper.html b/docs/5.12.0/api/TypeMapper.html new file mode 100644 index 00000000..5415bb2d --- /dev/null +++ b/docs/5.12.0/api/TypeMapper.html @@ -0,0 +1,210 @@ +TypeMapper · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/UnionTypeComposer.html b/docs/5.12.0/api/UnionTypeComposer.html new file mode 100644 index 00000000..46642d98 --- /dev/null +++ b/docs/5.12.0/api/UnionTypeComposer.html @@ -0,0 +1,278 @@ +UnionTypeComposer · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/api/misc-api-methods.html b/docs/5.12.0/api/misc-api-methods.html new file mode 100644 index 00000000..5df6ec7b --- /dev/null +++ b/docs/5.12.0/api/misc-api-methods.html @@ -0,0 +1,447 @@ +API misc · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/basics/generating-schema.html b/docs/5.12.0/basics/generating-schema.html new file mode 100644 index 00000000..862b1eb1 --- /dev/null +++ b/docs/5.12.0/basics/generating-schema.html @@ -0,0 +1,214 @@ +Generating Schema · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/basics/type-modification.html b/docs/5.12.0/basics/type-modification.html new file mode 100644 index 00000000..9eed222f --- /dev/null +++ b/docs/5.12.0/basics/type-modification.html @@ -0,0 +1,209 @@ +Type modification · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/basics/understanding-relations.html b/docs/5.12.0/basics/understanding-relations.html new file mode 100644 index 00000000..e54ce87b --- /dev/null +++ b/docs/5.12.0/basics/understanding-relations.html @@ -0,0 +1,310 @@ +Relations between Types · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/basics/understanding-types.html b/docs/5.12.0/basics/understanding-types.html new file mode 100644 index 00000000..9395e0f6 --- /dev/null +++ b/docs/5.12.0/basics/understanding-types.html @@ -0,0 +1,393 @@ +Type creation · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/basics/what-is-resolver.html b/docs/5.12.0/basics/what-is-resolver.html new file mode 100644 index 00000000..7b4975e2 --- /dev/null +++ b/docs/5.12.0/basics/what-is-resolver.html @@ -0,0 +1,320 @@ +Resolvers · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/guide/elasticsearch-with-mongoose.html b/docs/5.12.0/guide/elasticsearch-with-mongoose.html new file mode 100644 index 00000000..478cf8d9 --- /dev/null +++ b/docs/5.12.0/guide/elasticsearch-with-mongoose.html @@ -0,0 +1,435 @@ +[WIP] Use ElasticSearch with Mongoose · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/guide/file-uploads.html b/docs/5.12.0/guide/file-uploads.html new file mode 100644 index 00000000..cc49c668 --- /dev/null +++ b/docs/5.12.0/guide/file-uploads.html @@ -0,0 +1,256 @@ +File uploads · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/guide/mongoose.html b/docs/5.12.0/guide/mongoose.html new file mode 100644 index 00000000..6673519f --- /dev/null +++ b/docs/5.12.0/guide/mongoose.html @@ -0,0 +1,183 @@ +[WIP] Generate types from Mongoose Models · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/guide/relay.html b/docs/5.12.0/guide/relay.html new file mode 100644 index 00000000..d16e07a7 --- /dev/null +++ b/docs/5.12.0/guide/relay.html @@ -0,0 +1,123 @@ +[WIP] Relay Schema · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/guide/wrapping-rest-api.html b/docs/5.12.0/guide/wrapping-rest-api.html new file mode 100644 index 00000000..08b341cb --- /dev/null +++ b/docs/5.12.0/guide/wrapping-rest-api.html @@ -0,0 +1,220 @@ +Wrapping REST API · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/intro/installation.html b/docs/5.12.0/intro/installation.html new file mode 100644 index 00000000..db494fd3 --- /dev/null +++ b/docs/5.12.0/intro/installation.html @@ -0,0 +1,114 @@ +Installation · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/intro/live-demos.html b/docs/5.12.0/intro/live-demos.html new file mode 100644 index 00000000..79367cf3 --- /dev/null +++ b/docs/5.12.0/intro/live-demos.html @@ -0,0 +1,120 @@ +Live Demos · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/intro/prerequisites.html b/docs/5.12.0/intro/prerequisites.html new file mode 100644 index 00000000..79e96d85 --- /dev/null +++ b/docs/5.12.0/intro/prerequisites.html @@ -0,0 +1,116 @@ +Prerequisites · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/intro/quick-start.html b/docs/5.12.0/intro/quick-start.html new file mode 100644 index 00000000..daa84454 --- /dev/null +++ b/docs/5.12.0/intro/quick-start.html @@ -0,0 +1,273 @@ +Quick Start Guide · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/plugins/list-of-plugins.html b/docs/5.12.0/plugins/list-of-plugins.html new file mode 100644 index 00000000..0647fe78 --- /dev/null +++ b/docs/5.12.0/plugins/list-of-plugins.html @@ -0,0 +1,128 @@ +Plugins list · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/plugins/plugin-aws.html b/docs/5.12.0/plugins/plugin-aws.html new file mode 100644 index 00000000..c7e2ae50 --- /dev/null +++ b/docs/5.12.0/plugins/plugin-aws.html @@ -0,0 +1,153 @@ +graphql-compose-aws · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/plugins/plugin-connection.html b/docs/5.12.0/plugins/plugin-connection.html new file mode 100644 index 00000000..31729aa7 --- /dev/null +++ b/docs/5.12.0/plugins/plugin-connection.html @@ -0,0 +1,207 @@ +graphql-compose-connection · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/plugins/plugin-elasticsearch.html b/docs/5.12.0/plugins/plugin-elasticsearch.html new file mode 100644 index 00000000..c352ed40 --- /dev/null +++ b/docs/5.12.0/plugins/plugin-elasticsearch.html @@ -0,0 +1,234 @@ +graphql-compose-elasticsearch · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/plugins/plugin-json.html b/docs/5.12.0/plugins/plugin-json.html new file mode 100644 index 00000000..b3f248ea --- /dev/null +++ b/docs/5.12.0/plugins/plugin-json.html @@ -0,0 +1,311 @@ +graphql-compose-json · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/plugins/plugin-mongoose.html b/docs/5.12.0/plugins/plugin-mongoose.html new file mode 100644 index 00000000..2ed3b509 --- /dev/null +++ b/docs/5.12.0/plugins/plugin-mongoose.html @@ -0,0 +1,639 @@ +graphql-compose-mongoose · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/plugins/plugin-pagination.html b/docs/5.12.0/plugins/plugin-pagination.html new file mode 100644 index 00000000..db97c5fd --- /dev/null +++ b/docs/5.12.0/plugins/plugin-pagination.html @@ -0,0 +1,135 @@ +graphql-compose-pagination · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/plugins/plugin-relay.html b/docs/5.12.0/plugins/plugin-relay.html new file mode 100644 index 00000000..fa5bb836 --- /dev/null +++ b/docs/5.12.0/plugins/plugin-relay.html @@ -0,0 +1,148 @@ +graphql-compose-relay · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/plugins/plugin-writing-custom-plugin.html b/docs/5.12.0/plugins/plugin-writing-custom-plugin.html new file mode 100644 index 00000000..136e9ace --- /dev/null +++ b/docs/5.12.0/plugins/plugin-writing-custom-plugin.html @@ -0,0 +1,109 @@ +[WIP] How to write a custom plugin · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/recipes/authorization.html b/docs/5.12.0/recipes/authorization.html new file mode 100644 index 00000000..fe49f92a --- /dev/null +++ b/docs/5.12.0/recipes/authorization.html @@ -0,0 +1,59 @@ +[WIP] Authorization · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/5.12.0/recipes/writing-tests.html b/docs/5.12.0/recipes/writing-tests.html new file mode 100644 index 00000000..2d529ec3 --- /dev/null +++ b/docs/5.12.0/recipes/writing-tests.html @@ -0,0 +1,59 @@ +[WIP] Writing tests · graphql-compose

5.12.0

\ No newline at end of file diff --git a/docs/6.x.x/api/EnumTypeComposer.html b/docs/6.x.x/api/EnumTypeComposer.html new file mode 100644 index 00000000..8f2a80c8 --- /dev/null +++ b/docs/6.x.x/api/EnumTypeComposer.html @@ -0,0 +1,287 @@ +EnumTypeComposer · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/InputTypeComposer.html b/docs/6.x.x/api/InputTypeComposer.html new file mode 100644 index 00000000..581d844d --- /dev/null +++ b/docs/6.x.x/api/InputTypeComposer.html @@ -0,0 +1,422 @@ +InputTypeComposer · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/InterfaceTypeComposer.html b/docs/6.x.x/api/InterfaceTypeComposer.html new file mode 100644 index 00000000..622dd196 --- /dev/null +++ b/docs/6.x.x/api/InterfaceTypeComposer.html @@ -0,0 +1,482 @@ +InterfaceTypeComposer · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/ObjectTypeComposer.html b/docs/6.x.x/api/ObjectTypeComposer.html new file mode 100644 index 00000000..876b17ba --- /dev/null +++ b/docs/6.x.x/api/ObjectTypeComposer.html @@ -0,0 +1,726 @@ +ObjectTypeComposer · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/Resolver.html b/docs/6.x.x/api/Resolver.html new file mode 100644 index 00000000..2a92805a --- /dev/null +++ b/docs/6.x.x/api/Resolver.html @@ -0,0 +1,523 @@ +Resolver · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/ScalarTypeComposer.html b/docs/6.x.x/api/ScalarTypeComposer.html new file mode 100644 index 00000000..864b18da --- /dev/null +++ b/docs/6.x.x/api/ScalarTypeComposer.html @@ -0,0 +1,245 @@ +ScalarTypeComposer · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/SchemaComposer.html b/docs/6.x.x/api/SchemaComposer.html new file mode 100644 index 00000000..b1827570 --- /dev/null +++ b/docs/6.x.x/api/SchemaComposer.html @@ -0,0 +1,460 @@ +SchemaComposer · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/TypeComposer.html b/docs/6.x.x/api/TypeComposer.html new file mode 100644 index 00000000..f7f357f4 --- /dev/null +++ b/docs/6.x.x/api/TypeComposer.html @@ -0,0 +1,549 @@ +TypeComposer · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/TypeMapper.html b/docs/6.x.x/api/TypeMapper.html new file mode 100644 index 00000000..388d5919 --- /dev/null +++ b/docs/6.x.x/api/TypeMapper.html @@ -0,0 +1,236 @@ +TypeMapper · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/UnionTypeComposer.html b/docs/6.x.x/api/UnionTypeComposer.html new file mode 100644 index 00000000..6b11ce2c --- /dev/null +++ b/docs/6.x.x/api/UnionTypeComposer.html @@ -0,0 +1,317 @@ +UnionTypeComposer · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/api/misc-api-methods.html b/docs/6.x.x/api/misc-api-methods.html new file mode 100644 index 00000000..02de046b --- /dev/null +++ b/docs/6.x.x/api/misc-api-methods.html @@ -0,0 +1,427 @@ +API misc · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/basics/generating-schema.html b/docs/6.x.x/basics/generating-schema.html new file mode 100644 index 00000000..94007375 --- /dev/null +++ b/docs/6.x.x/basics/generating-schema.html @@ -0,0 +1,214 @@ +Generating Schema · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/basics/type-modification.html b/docs/6.x.x/basics/type-modification.html new file mode 100644 index 00000000..1a59375a --- /dev/null +++ b/docs/6.x.x/basics/type-modification.html @@ -0,0 +1,209 @@ +Type modification · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/basics/understanding-relations.html b/docs/6.x.x/basics/understanding-relations.html new file mode 100644 index 00000000..602de29c --- /dev/null +++ b/docs/6.x.x/basics/understanding-relations.html @@ -0,0 +1,310 @@ +Relations between Types · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/basics/understanding-types.html b/docs/6.x.x/basics/understanding-types.html new file mode 100644 index 00000000..94fb5232 --- /dev/null +++ b/docs/6.x.x/basics/understanding-types.html @@ -0,0 +1,401 @@ +Type creation · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/basics/what-is-resolver.html b/docs/6.x.x/basics/what-is-resolver.html new file mode 100644 index 00000000..437a49fe --- /dev/null +++ b/docs/6.x.x/basics/what-is-resolver.html @@ -0,0 +1,320 @@ +Resolvers · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/guide/elasticsearch-with-mongoose.html b/docs/6.x.x/guide/elasticsearch-with-mongoose.html new file mode 100644 index 00000000..6a5cd6f3 --- /dev/null +++ b/docs/6.x.x/guide/elasticsearch-with-mongoose.html @@ -0,0 +1,385 @@ +[WIP] Use ElasticSearch with Mongoose · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/guide/file-uploads.html b/docs/6.x.x/guide/file-uploads.html new file mode 100644 index 00000000..f121eb69 --- /dev/null +++ b/docs/6.x.x/guide/file-uploads.html @@ -0,0 +1,256 @@ +File uploads · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/guide/mongoose.html b/docs/6.x.x/guide/mongoose.html new file mode 100644 index 00000000..91039824 --- /dev/null +++ b/docs/6.x.x/guide/mongoose.html @@ -0,0 +1,133 @@ +[WIP] Generate types from Mongoose Models · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/guide/relay.html b/docs/6.x.x/guide/relay.html new file mode 100644 index 00000000..4feab140 --- /dev/null +++ b/docs/6.x.x/guide/relay.html @@ -0,0 +1,73 @@ +[WIP] Relay Schema · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/guide/wrapping-rest-api.html b/docs/6.x.x/guide/wrapping-rest-api.html new file mode 100644 index 00000000..42c095d4 --- /dev/null +++ b/docs/6.x.x/guide/wrapping-rest-api.html @@ -0,0 +1,220 @@ +Wrapping REST API · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/intro/installation.html b/docs/6.x.x/intro/installation.html new file mode 100644 index 00000000..3478ef25 --- /dev/null +++ b/docs/6.x.x/intro/installation.html @@ -0,0 +1,114 @@ +Installation · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/intro/live-demos.html b/docs/6.x.x/intro/live-demos.html new file mode 100644 index 00000000..67fa0937 --- /dev/null +++ b/docs/6.x.x/intro/live-demos.html @@ -0,0 +1,120 @@ +Live Demos · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/intro/prerequisites.html b/docs/6.x.x/intro/prerequisites.html new file mode 100644 index 00000000..67ea8ff1 --- /dev/null +++ b/docs/6.x.x/intro/prerequisites.html @@ -0,0 +1,116 @@ +Prerequisites · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/intro/quick-start.html b/docs/6.x.x/intro/quick-start.html new file mode 100644 index 00000000..bf3266be --- /dev/null +++ b/docs/6.x.x/intro/quick-start.html @@ -0,0 +1,273 @@ +Quick Start Guide · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/plugins/list-of-plugins.html b/docs/6.x.x/plugins/list-of-plugins.html new file mode 100644 index 00000000..24e93532 --- /dev/null +++ b/docs/6.x.x/plugins/list-of-plugins.html @@ -0,0 +1,128 @@ +Plugins list · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/plugins/plugin-aws.html b/docs/6.x.x/plugins/plugin-aws.html new file mode 100644 index 00000000..acb6c06b --- /dev/null +++ b/docs/6.x.x/plugins/plugin-aws.html @@ -0,0 +1,153 @@ +graphql-compose-aws · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/plugins/plugin-connection.html b/docs/6.x.x/plugins/plugin-connection.html new file mode 100644 index 00000000..d64db3c2 --- /dev/null +++ b/docs/6.x.x/plugins/plugin-connection.html @@ -0,0 +1,207 @@ +graphql-compose-connection · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/plugins/plugin-elasticsearch.html b/docs/6.x.x/plugins/plugin-elasticsearch.html new file mode 100644 index 00000000..d383a980 --- /dev/null +++ b/docs/6.x.x/plugins/plugin-elasticsearch.html @@ -0,0 +1,234 @@ +graphql-compose-elasticsearch · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/plugins/plugin-json.html b/docs/6.x.x/plugins/plugin-json.html new file mode 100644 index 00000000..e27b7c7c --- /dev/null +++ b/docs/6.x.x/plugins/plugin-json.html @@ -0,0 +1,311 @@ +graphql-compose-json · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/plugins/plugin-mongoose.html b/docs/6.x.x/plugins/plugin-mongoose.html new file mode 100644 index 00000000..3b551080 --- /dev/null +++ b/docs/6.x.x/plugins/plugin-mongoose.html @@ -0,0 +1,639 @@ +graphql-compose-mongoose · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/plugins/plugin-pagination.html b/docs/6.x.x/plugins/plugin-pagination.html new file mode 100644 index 00000000..41565c20 --- /dev/null +++ b/docs/6.x.x/plugins/plugin-pagination.html @@ -0,0 +1,135 @@ +graphql-compose-pagination · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/plugins/plugin-relay.html b/docs/6.x.x/plugins/plugin-relay.html new file mode 100644 index 00000000..fdc54d60 --- /dev/null +++ b/docs/6.x.x/plugins/plugin-relay.html @@ -0,0 +1,148 @@ +graphql-compose-relay · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/plugins/plugin-writing-custom-plugin.html b/docs/6.x.x/plugins/plugin-writing-custom-plugin.html new file mode 100644 index 00000000..ad12e844 --- /dev/null +++ b/docs/6.x.x/plugins/plugin-writing-custom-plugin.html @@ -0,0 +1,59 @@ +[WIP] How to write a custom plugin · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/recipes/authorization.html b/docs/6.x.x/recipes/authorization.html new file mode 100644 index 00000000..f1bb9b64 --- /dev/null +++ b/docs/6.x.x/recipes/authorization.html @@ -0,0 +1,59 @@ +[WIP] Authorization · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/6.x.x/recipes/writing-tests.html b/docs/6.x.x/recipes/writing-tests.html new file mode 100644 index 00000000..0c4d5c3e --- /dev/null +++ b/docs/6.x.x/recipes/writing-tests.html @@ -0,0 +1,59 @@ +[WIP] Writing tests · graphql-compose

6.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/EnumTypeComposer.html b/docs/7.x.x/api/EnumTypeComposer.html new file mode 100644 index 00000000..f1d1b02b --- /dev/null +++ b/docs/7.x.x/api/EnumTypeComposer.html @@ -0,0 +1,406 @@ +EnumTypeComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/InputTypeComposer.html b/docs/7.x.x/api/InputTypeComposer.html new file mode 100644 index 00000000..236ca01f --- /dev/null +++ b/docs/7.x.x/api/InputTypeComposer.html @@ -0,0 +1,504 @@ +InputTypeComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/InterfaceTypeComposer.html b/docs/7.x.x/api/InterfaceTypeComposer.html new file mode 100644 index 00000000..54f0b5db --- /dev/null +++ b/docs/7.x.x/api/InterfaceTypeComposer.html @@ -0,0 +1,713 @@ +InterfaceTypeComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/ListComposer.html b/docs/7.x.x/api/ListComposer.html new file mode 100644 index 00000000..becf03c4 --- /dev/null +++ b/docs/7.x.x/api/ListComposer.html @@ -0,0 +1,84 @@ +ListComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/NonNullComposer.html b/docs/7.x.x/api/NonNullComposer.html new file mode 100644 index 00000000..37dcd61f --- /dev/null +++ b/docs/7.x.x/api/NonNullComposer.html @@ -0,0 +1,84 @@ +NonNullComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/ObjectTypeComposer.html b/docs/7.x.x/api/ObjectTypeComposer.html new file mode 100644 index 00000000..54a4b26e --- /dev/null +++ b/docs/7.x.x/api/ObjectTypeComposer.html @@ -0,0 +1,949 @@ +ObjectTypeComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/Resolver.html b/docs/7.x.x/api/Resolver.html new file mode 100644 index 00000000..7fb8b8bb --- /dev/null +++ b/docs/7.x.x/api/Resolver.html @@ -0,0 +1,563 @@ +Resolver · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/ScalarTypeComposer.html b/docs/7.x.x/api/ScalarTypeComposer.html new file mode 100644 index 00000000..8d3e1f6a --- /dev/null +++ b/docs/7.x.x/api/ScalarTypeComposer.html @@ -0,0 +1,265 @@ +ScalarTypeComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/SchemaComposer.html b/docs/7.x.x/api/SchemaComposer.html new file mode 100644 index 00000000..e658de0e --- /dev/null +++ b/docs/7.x.x/api/SchemaComposer.html @@ -0,0 +1,448 @@ +SchemaComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/ThunkComposer.html b/docs/7.x.x/api/ThunkComposer.html new file mode 100644 index 00000000..2ed2f7a3 --- /dev/null +++ b/docs/7.x.x/api/ThunkComposer.html @@ -0,0 +1,84 @@ +ThunkComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/TypeComposer.html b/docs/7.x.x/api/TypeComposer.html new file mode 100644 index 00000000..fabe35c2 --- /dev/null +++ b/docs/7.x.x/api/TypeComposer.html @@ -0,0 +1,549 @@ +TypeComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/TypeMapper.html b/docs/7.x.x/api/TypeMapper.html new file mode 100644 index 00000000..169e5aac --- /dev/null +++ b/docs/7.x.x/api/TypeMapper.html @@ -0,0 +1,288 @@ +TypeMapper · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/UnionTypeComposer.html b/docs/7.x.x/api/UnionTypeComposer.html new file mode 100644 index 00000000..22441b90 --- /dev/null +++ b/docs/7.x.x/api/UnionTypeComposer.html @@ -0,0 +1,355 @@ +UnionTypeComposer · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/api/misc-api-methods.html b/docs/7.x.x/api/misc-api-methods.html new file mode 100644 index 00000000..d4532eae --- /dev/null +++ b/docs/7.x.x/api/misc-api-methods.html @@ -0,0 +1,427 @@ +API misc · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/basics/generating-schema.html b/docs/7.x.x/basics/generating-schema.html new file mode 100644 index 00000000..a9822e29 --- /dev/null +++ b/docs/7.x.x/basics/generating-schema.html @@ -0,0 +1,214 @@ +Generating Schema · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/basics/type-modification.html b/docs/7.x.x/basics/type-modification.html new file mode 100644 index 00000000..43b15645 --- /dev/null +++ b/docs/7.x.x/basics/type-modification.html @@ -0,0 +1,209 @@ +Type modification · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/basics/understanding-relations.html b/docs/7.x.x/basics/understanding-relations.html new file mode 100644 index 00000000..c315fd8a --- /dev/null +++ b/docs/7.x.x/basics/understanding-relations.html @@ -0,0 +1,311 @@ +Relations between Types · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/basics/understanding-types.html b/docs/7.x.x/basics/understanding-types.html new file mode 100644 index 00000000..dcbe1dc8 --- /dev/null +++ b/docs/7.x.x/basics/understanding-types.html @@ -0,0 +1,401 @@ +Type creation · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/basics/what-is-resolver.html b/docs/7.x.x/basics/what-is-resolver.html new file mode 100644 index 00000000..a7d58e46 --- /dev/null +++ b/docs/7.x.x/basics/what-is-resolver.html @@ -0,0 +1,320 @@ +Resolvers · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/guide/elasticsearch-with-mongoose.html b/docs/7.x.x/guide/elasticsearch-with-mongoose.html new file mode 100644 index 00000000..8f2826d3 --- /dev/null +++ b/docs/7.x.x/guide/elasticsearch-with-mongoose.html @@ -0,0 +1,385 @@ +[WIP] Use ElasticSearch with Mongoose · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/guide/file-uploads.html b/docs/7.x.x/guide/file-uploads.html new file mode 100644 index 00000000..c6fc8751 --- /dev/null +++ b/docs/7.x.x/guide/file-uploads.html @@ -0,0 +1,256 @@ +File uploads · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/guide/mongoose.html b/docs/7.x.x/guide/mongoose.html new file mode 100644 index 00000000..f00308a0 --- /dev/null +++ b/docs/7.x.x/guide/mongoose.html @@ -0,0 +1,133 @@ +[WIP] Generate types from Mongoose Models · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/guide/relay.html b/docs/7.x.x/guide/relay.html new file mode 100644 index 00000000..ba5492ad --- /dev/null +++ b/docs/7.x.x/guide/relay.html @@ -0,0 +1,73 @@ +[WIP] Relay Schema · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/guide/wrapping-rest-api.html b/docs/7.x.x/guide/wrapping-rest-api.html new file mode 100644 index 00000000..347668fc --- /dev/null +++ b/docs/7.x.x/guide/wrapping-rest-api.html @@ -0,0 +1,220 @@ +Wrapping REST API · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/intro/installation.html b/docs/7.x.x/intro/installation.html new file mode 100644 index 00000000..37790c33 --- /dev/null +++ b/docs/7.x.x/intro/installation.html @@ -0,0 +1,114 @@ +Installation · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/intro/live-demos.html b/docs/7.x.x/intro/live-demos.html new file mode 100644 index 00000000..df4e2916 --- /dev/null +++ b/docs/7.x.x/intro/live-demos.html @@ -0,0 +1,120 @@ +Live Demos · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/intro/prerequisites.html b/docs/7.x.x/intro/prerequisites.html new file mode 100644 index 00000000..2348e4e7 --- /dev/null +++ b/docs/7.x.x/intro/prerequisites.html @@ -0,0 +1,116 @@ +Prerequisites · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/intro/quick-start.html b/docs/7.x.x/intro/quick-start.html new file mode 100644 index 00000000..45aca8da --- /dev/null +++ b/docs/7.x.x/intro/quick-start.html @@ -0,0 +1,273 @@ +Quick Start Guide · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/plugins/list-of-plugins.html b/docs/7.x.x/plugins/list-of-plugins.html new file mode 100644 index 00000000..a916ae06 --- /dev/null +++ b/docs/7.x.x/plugins/list-of-plugins.html @@ -0,0 +1,128 @@ +Plugins list · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/plugins/plugin-aws.html b/docs/7.x.x/plugins/plugin-aws.html new file mode 100644 index 00000000..88eb58b0 --- /dev/null +++ b/docs/7.x.x/plugins/plugin-aws.html @@ -0,0 +1,153 @@ +graphql-compose-aws · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/plugins/plugin-connection.html b/docs/7.x.x/plugins/plugin-connection.html new file mode 100644 index 00000000..4999db14 --- /dev/null +++ b/docs/7.x.x/plugins/plugin-connection.html @@ -0,0 +1,207 @@ +graphql-compose-connection · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/plugins/plugin-elasticsearch.html b/docs/7.x.x/plugins/plugin-elasticsearch.html new file mode 100644 index 00000000..039a8ef2 --- /dev/null +++ b/docs/7.x.x/plugins/plugin-elasticsearch.html @@ -0,0 +1,234 @@ +graphql-compose-elasticsearch · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/plugins/plugin-json.html b/docs/7.x.x/plugins/plugin-json.html new file mode 100644 index 00000000..37503fd3 --- /dev/null +++ b/docs/7.x.x/plugins/plugin-json.html @@ -0,0 +1,311 @@ +graphql-compose-json · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/plugins/plugin-mongoose.html b/docs/7.x.x/plugins/plugin-mongoose.html new file mode 100644 index 00000000..1c4ad491 --- /dev/null +++ b/docs/7.x.x/plugins/plugin-mongoose.html @@ -0,0 +1,639 @@ +graphql-compose-mongoose · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/plugins/plugin-pagination.html b/docs/7.x.x/plugins/plugin-pagination.html new file mode 100644 index 00000000..41cebe20 --- /dev/null +++ b/docs/7.x.x/plugins/plugin-pagination.html @@ -0,0 +1,135 @@ +graphql-compose-pagination · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/plugins/plugin-relay.html b/docs/7.x.x/plugins/plugin-relay.html new file mode 100644 index 00000000..7ca253ab --- /dev/null +++ b/docs/7.x.x/plugins/plugin-relay.html @@ -0,0 +1,148 @@ +graphql-compose-relay · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/plugins/plugin-writing-custom-plugin.html b/docs/7.x.x/plugins/plugin-writing-custom-plugin.html new file mode 100644 index 00000000..8c3f269b --- /dev/null +++ b/docs/7.x.x/plugins/plugin-writing-custom-plugin.html @@ -0,0 +1,59 @@ +[WIP] How to write a custom plugin · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/recipes/authorization.html b/docs/7.x.x/recipes/authorization.html new file mode 100644 index 00000000..0b87cb3d --- /dev/null +++ b/docs/7.x.x/recipes/authorization.html @@ -0,0 +1,59 @@ +[WIP] Authorization · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/7.x.x/recipes/writing-tests.html b/docs/7.x.x/recipes/writing-tests.html new file mode 100644 index 00000000..7a8d75a0 --- /dev/null +++ b/docs/7.x.x/recipes/writing-tests.html @@ -0,0 +1,59 @@ +[WIP] Writing tests · graphql-compose

7.x.x

\ No newline at end of file diff --git a/docs/api/EnumTypeComposer.html b/docs/api/EnumTypeComposer.html new file mode 100644 index 00000000..5f7279bb --- /dev/null +++ b/docs/api/EnumTypeComposer.html @@ -0,0 +1,495 @@ +EnumTypeComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/InputTypeComposer.html b/docs/api/InputTypeComposer.html new file mode 100644 index 00000000..9c5e907e --- /dev/null +++ b/docs/api/InputTypeComposer.html @@ -0,0 +1,619 @@ +InputTypeComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/InterfaceTypeComposer.html b/docs/api/InterfaceTypeComposer.html new file mode 100644 index 00000000..d214cf59 --- /dev/null +++ b/docs/api/InterfaceTypeComposer.html @@ -0,0 +1,906 @@ +InterfaceTypeComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/ListComposer.html b/docs/api/ListComposer.html new file mode 100644 index 00000000..1ea42f9a --- /dev/null +++ b/docs/api/ListComposer.html @@ -0,0 +1,165 @@ +ListComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/NonNullComposer.html b/docs/api/NonNullComposer.html new file mode 100644 index 00000000..4abe4252 --- /dev/null +++ b/docs/api/NonNullComposer.html @@ -0,0 +1,165 @@ +NonNullComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/ObjectTypeComposer.html b/docs/api/ObjectTypeComposer.html new file mode 100644 index 00000000..939243bd --- /dev/null +++ b/docs/api/ObjectTypeComposer.html @@ -0,0 +1,1121 @@ +ObjectTypeComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/Resolver.html b/docs/api/Resolver.html new file mode 100644 index 00000000..0b89cca2 --- /dev/null +++ b/docs/api/Resolver.html @@ -0,0 +1,637 @@ +Resolver · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/ScalarTypeComposer.html b/docs/api/ScalarTypeComposer.html new file mode 100644 index 00000000..2a56362e --- /dev/null +++ b/docs/api/ScalarTypeComposer.html @@ -0,0 +1,353 @@ +ScalarTypeComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/SchemaComposer.html b/docs/api/SchemaComposer.html new file mode 100644 index 00000000..19e30dc6 --- /dev/null +++ b/docs/api/SchemaComposer.html @@ -0,0 +1,512 @@ +SchemaComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/ThunkComposer.html b/docs/api/ThunkComposer.html new file mode 100644 index 00000000..d66d1f28 --- /dev/null +++ b/docs/api/ThunkComposer.html @@ -0,0 +1,150 @@ +ThunkComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/TypeComposer.html b/docs/api/TypeComposer.html new file mode 100644 index 00000000..1d0e1b14 --- /dev/null +++ b/docs/api/TypeComposer.html @@ -0,0 +1,549 @@ +TypeComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/TypeMapper.html b/docs/api/TypeMapper.html new file mode 100644 index 00000000..3cb53862 --- /dev/null +++ b/docs/api/TypeMapper.html @@ -0,0 +1,422 @@ +TypeMapper · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/UnionTypeComposer.html b/docs/api/UnionTypeComposer.html new file mode 100644 index 00000000..b814039d --- /dev/null +++ b/docs/api/UnionTypeComposer.html @@ -0,0 +1,448 @@ +UnionTypeComposer · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/api/misc-api-methods.html b/docs/api/misc-api-methods.html new file mode 100644 index 00000000..48523b43 --- /dev/null +++ b/docs/api/misc-api-methods.html @@ -0,0 +1,427 @@ +API misc · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/basics/generating-schema.html b/docs/basics/generating-schema.html new file mode 100644 index 00000000..a68a062d --- /dev/null +++ b/docs/basics/generating-schema.html @@ -0,0 +1,214 @@ +Generating Schema · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/basics/type-modification.html b/docs/basics/type-modification.html new file mode 100644 index 00000000..d5bfb787 --- /dev/null +++ b/docs/basics/type-modification.html @@ -0,0 +1,209 @@ +Type modification · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/basics/understanding-relations.html b/docs/basics/understanding-relations.html new file mode 100644 index 00000000..17a80a5a --- /dev/null +++ b/docs/basics/understanding-relations.html @@ -0,0 +1,311 @@ +Relations between Types · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/basics/understanding-types.html b/docs/basics/understanding-types.html new file mode 100644 index 00000000..f2e7b7a4 --- /dev/null +++ b/docs/basics/understanding-types.html @@ -0,0 +1,401 @@ +Type creation · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/basics/what-is-resolver.html b/docs/basics/what-is-resolver.html new file mode 100644 index 00000000..f1acfb31 --- /dev/null +++ b/docs/basics/what-is-resolver.html @@ -0,0 +1,320 @@ +Resolvers · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/guide/elasticsearch-with-mongoose.html b/docs/guide/elasticsearch-with-mongoose.html new file mode 100644 index 00000000..e83a99bf --- /dev/null +++ b/docs/guide/elasticsearch-with-mongoose.html @@ -0,0 +1,385 @@ +[WIP] Use ElasticSearch with Mongoose · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/guide/file-uploads.html b/docs/guide/file-uploads.html new file mode 100644 index 00000000..395c78bc --- /dev/null +++ b/docs/guide/file-uploads.html @@ -0,0 +1,256 @@ +File uploads · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/guide/mongoose.html b/docs/guide/mongoose.html new file mode 100644 index 00000000..dd702b92 --- /dev/null +++ b/docs/guide/mongoose.html @@ -0,0 +1,133 @@ +[WIP] Generate types from Mongoose Models · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/guide/relay.html b/docs/guide/relay.html new file mode 100644 index 00000000..98584d27 --- /dev/null +++ b/docs/guide/relay.html @@ -0,0 +1,73 @@ +[WIP] Relay Schema · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/guide/wrapping-rest-api.html b/docs/guide/wrapping-rest-api.html new file mode 100644 index 00000000..0f8a77f0 --- /dev/null +++ b/docs/guide/wrapping-rest-api.html @@ -0,0 +1,220 @@ +Wrapping REST API · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/intro/installation.html b/docs/intro/installation.html new file mode 100644 index 00000000..7d74b4f6 --- /dev/null +++ b/docs/intro/installation.html @@ -0,0 +1,114 @@ +Installation · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/intro/live-demos.html b/docs/intro/live-demos.html new file mode 100644 index 00000000..78b6d73b --- /dev/null +++ b/docs/intro/live-demos.html @@ -0,0 +1,120 @@ +Live Demos · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/intro/prerequisites.html b/docs/intro/prerequisites.html new file mode 100644 index 00000000..d1b57061 --- /dev/null +++ b/docs/intro/prerequisites.html @@ -0,0 +1,116 @@ +Prerequisites · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/intro/quick-start.html b/docs/intro/quick-start.html new file mode 100644 index 00000000..9ab17ecc --- /dev/null +++ b/docs/intro/quick-start.html @@ -0,0 +1,273 @@ +Quick Start Guide · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/next/README.html b/docs/next/README.html new file mode 100644 index 00000000..f170c3f8 --- /dev/null +++ b/docs/next/README.html @@ -0,0 +1,112 @@ +README · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/EnumTypeComposer.html b/docs/next/api/EnumTypeComposer.html new file mode 100644 index 00000000..7011a1e4 --- /dev/null +++ b/docs/next/api/EnumTypeComposer.html @@ -0,0 +1,495 @@ +EnumTypeComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/InputTypeComposer.html b/docs/next/api/InputTypeComposer.html new file mode 100644 index 00000000..099d9ccd --- /dev/null +++ b/docs/next/api/InputTypeComposer.html @@ -0,0 +1,619 @@ +InputTypeComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/InterfaceTypeComposer.html b/docs/next/api/InterfaceTypeComposer.html new file mode 100644 index 00000000..3cc72ce0 --- /dev/null +++ b/docs/next/api/InterfaceTypeComposer.html @@ -0,0 +1,906 @@ +InterfaceTypeComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/ListComposer.html b/docs/next/api/ListComposer.html new file mode 100644 index 00000000..e00891a6 --- /dev/null +++ b/docs/next/api/ListComposer.html @@ -0,0 +1,165 @@ +ListComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/NonNullComposer.html b/docs/next/api/NonNullComposer.html new file mode 100644 index 00000000..0314be32 --- /dev/null +++ b/docs/next/api/NonNullComposer.html @@ -0,0 +1,165 @@ +NonNullComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/ObjectTypeComposer.html b/docs/next/api/ObjectTypeComposer.html new file mode 100644 index 00000000..bce7ac83 --- /dev/null +++ b/docs/next/api/ObjectTypeComposer.html @@ -0,0 +1,1121 @@ +ObjectTypeComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/Resolver.html b/docs/next/api/Resolver.html new file mode 100644 index 00000000..f81c01ad --- /dev/null +++ b/docs/next/api/Resolver.html @@ -0,0 +1,637 @@ +Resolver · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/ScalarTypeComposer.html b/docs/next/api/ScalarTypeComposer.html new file mode 100644 index 00000000..bcb69c25 --- /dev/null +++ b/docs/next/api/ScalarTypeComposer.html @@ -0,0 +1,353 @@ +ScalarTypeComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/SchemaComposer.html b/docs/next/api/SchemaComposer.html new file mode 100644 index 00000000..073f097b --- /dev/null +++ b/docs/next/api/SchemaComposer.html @@ -0,0 +1,512 @@ +SchemaComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/ThunkComposer.html b/docs/next/api/ThunkComposer.html new file mode 100644 index 00000000..e2a0586f --- /dev/null +++ b/docs/next/api/ThunkComposer.html @@ -0,0 +1,150 @@ +ThunkComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/TypeMapper.html b/docs/next/api/TypeMapper.html new file mode 100644 index 00000000..c057e848 --- /dev/null +++ b/docs/next/api/TypeMapper.html @@ -0,0 +1,422 @@ +TypeMapper · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/UnionTypeComposer.html b/docs/next/api/UnionTypeComposer.html new file mode 100644 index 00000000..b1f73792 --- /dev/null +++ b/docs/next/api/UnionTypeComposer.html @@ -0,0 +1,448 @@ +UnionTypeComposer · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/api/misc-api-methods.html b/docs/next/api/misc-api-methods.html new file mode 100644 index 00000000..4242b168 --- /dev/null +++ b/docs/next/api/misc-api-methods.html @@ -0,0 +1,427 @@ +API misc · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/basics/generating-schema.html b/docs/next/basics/generating-schema.html new file mode 100644 index 00000000..dc9363c5 --- /dev/null +++ b/docs/next/basics/generating-schema.html @@ -0,0 +1,214 @@ +Generating Schema · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/basics/type-modification.html b/docs/next/basics/type-modification.html new file mode 100644 index 00000000..b6d07ec0 --- /dev/null +++ b/docs/next/basics/type-modification.html @@ -0,0 +1,209 @@ +Type modification · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/basics/understanding-relations.html b/docs/next/basics/understanding-relations.html new file mode 100644 index 00000000..666342c5 --- /dev/null +++ b/docs/next/basics/understanding-relations.html @@ -0,0 +1,311 @@ +Relations between Types · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/basics/understanding-types.html b/docs/next/basics/understanding-types.html new file mode 100644 index 00000000..be702bbc --- /dev/null +++ b/docs/next/basics/understanding-types.html @@ -0,0 +1,401 @@ +Type creation · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/basics/what-is-resolver.html b/docs/next/basics/what-is-resolver.html new file mode 100644 index 00000000..261a5924 --- /dev/null +++ b/docs/next/basics/what-is-resolver.html @@ -0,0 +1,320 @@ +Resolvers · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/guide/elasticsearch-with-mongoose.html b/docs/next/guide/elasticsearch-with-mongoose.html new file mode 100644 index 00000000..65d309e2 --- /dev/null +++ b/docs/next/guide/elasticsearch-with-mongoose.html @@ -0,0 +1,385 @@ +[WIP] Use ElasticSearch with Mongoose · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/guide/file-uploads.html b/docs/next/guide/file-uploads.html new file mode 100644 index 00000000..b7975f27 --- /dev/null +++ b/docs/next/guide/file-uploads.html @@ -0,0 +1,256 @@ +File uploads · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/guide/mongoose.html b/docs/next/guide/mongoose.html new file mode 100644 index 00000000..f28a2ac6 --- /dev/null +++ b/docs/next/guide/mongoose.html @@ -0,0 +1,133 @@ +[WIP] Generate types from Mongoose Models · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/guide/relay.html b/docs/next/guide/relay.html new file mode 100644 index 00000000..d59e7b4d --- /dev/null +++ b/docs/next/guide/relay.html @@ -0,0 +1,73 @@ +[WIP] Relay Schema · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/guide/wrapping-rest-api.html b/docs/next/guide/wrapping-rest-api.html new file mode 100644 index 00000000..670bbc7d --- /dev/null +++ b/docs/next/guide/wrapping-rest-api.html @@ -0,0 +1,220 @@ +Wrapping REST API · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/intro/installation.html b/docs/next/intro/installation.html new file mode 100644 index 00000000..9c8fcd2c --- /dev/null +++ b/docs/next/intro/installation.html @@ -0,0 +1,114 @@ +Installation · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/intro/live-demos.html b/docs/next/intro/live-demos.html new file mode 100644 index 00000000..f9a3e644 --- /dev/null +++ b/docs/next/intro/live-demos.html @@ -0,0 +1,120 @@ +Live Demos · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/intro/prerequisites.html b/docs/next/intro/prerequisites.html new file mode 100644 index 00000000..a1301abe --- /dev/null +++ b/docs/next/intro/prerequisites.html @@ -0,0 +1,116 @@ +Prerequisites · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/intro/quick-start.html b/docs/next/intro/quick-start.html new file mode 100644 index 00000000..6577e8ba --- /dev/null +++ b/docs/next/intro/quick-start.html @@ -0,0 +1,273 @@ +Quick Start Guide · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/plugins/list-of-plugins.html b/docs/next/plugins/list-of-plugins.html new file mode 100644 index 00000000..f3ded02c --- /dev/null +++ b/docs/next/plugins/list-of-plugins.html @@ -0,0 +1,128 @@ +Plugins list · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/plugins/plugin-aws.html b/docs/next/plugins/plugin-aws.html new file mode 100644 index 00000000..2d8b8b71 --- /dev/null +++ b/docs/next/plugins/plugin-aws.html @@ -0,0 +1,153 @@ +graphql-compose-aws · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/plugins/plugin-connection.html b/docs/next/plugins/plugin-connection.html new file mode 100644 index 00000000..5e6f072f --- /dev/null +++ b/docs/next/plugins/plugin-connection.html @@ -0,0 +1,207 @@ +graphql-compose-connection · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/plugins/plugin-elasticsearch.html b/docs/next/plugins/plugin-elasticsearch.html new file mode 100644 index 00000000..930a7b48 --- /dev/null +++ b/docs/next/plugins/plugin-elasticsearch.html @@ -0,0 +1,234 @@ +graphql-compose-elasticsearch · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/plugins/plugin-json.html b/docs/next/plugins/plugin-json.html new file mode 100644 index 00000000..f4059070 --- /dev/null +++ b/docs/next/plugins/plugin-json.html @@ -0,0 +1,311 @@ +graphql-compose-json · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/plugins/plugin-mongoose.html b/docs/next/plugins/plugin-mongoose.html new file mode 100644 index 00000000..edcdb44c --- /dev/null +++ b/docs/next/plugins/plugin-mongoose.html @@ -0,0 +1,957 @@ +graphql-compose-mongoose · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/plugins/plugin-pagination.html b/docs/next/plugins/plugin-pagination.html new file mode 100644 index 00000000..5bfa9d8b --- /dev/null +++ b/docs/next/plugins/plugin-pagination.html @@ -0,0 +1,135 @@ +graphql-compose-pagination · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/plugins/plugin-relay.html b/docs/next/plugins/plugin-relay.html new file mode 100644 index 00000000..62bae094 --- /dev/null +++ b/docs/next/plugins/plugin-relay.html @@ -0,0 +1,148 @@ +graphql-compose-relay · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/plugins/plugin-writing-custom-plugin.html b/docs/next/plugins/plugin-writing-custom-plugin.html new file mode 100644 index 00000000..532fc525 --- /dev/null +++ b/docs/next/plugins/plugin-writing-custom-plugin.html @@ -0,0 +1,59 @@ +[WIP] How to write a custom plugin · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/recipes/authorization.html b/docs/next/recipes/authorization.html new file mode 100644 index 00000000..69ff9cf5 --- /dev/null +++ b/docs/next/recipes/authorization.html @@ -0,0 +1,59 @@ +[WIP] Authorization · graphql-compose

next

\ No newline at end of file diff --git a/docs/next/recipes/writing-tests.html b/docs/next/recipes/writing-tests.html new file mode 100644 index 00000000..819c6b3f --- /dev/null +++ b/docs/next/recipes/writing-tests.html @@ -0,0 +1,59 @@ +[WIP] Writing tests · graphql-compose

next

\ No newline at end of file diff --git a/docs/plugins/list-of-plugins.html b/docs/plugins/list-of-plugins.html new file mode 100644 index 00000000..8f1ce16c --- /dev/null +++ b/docs/plugins/list-of-plugins.html @@ -0,0 +1,128 @@ +Plugins list · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/plugins/plugin-aws.html b/docs/plugins/plugin-aws.html new file mode 100644 index 00000000..44900244 --- /dev/null +++ b/docs/plugins/plugin-aws.html @@ -0,0 +1,153 @@ +graphql-compose-aws · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/plugins/plugin-connection.html b/docs/plugins/plugin-connection.html new file mode 100644 index 00000000..13f8b93f --- /dev/null +++ b/docs/plugins/plugin-connection.html @@ -0,0 +1,207 @@ +graphql-compose-connection · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/plugins/plugin-elasticsearch.html b/docs/plugins/plugin-elasticsearch.html new file mode 100644 index 00000000..1c979cd7 --- /dev/null +++ b/docs/plugins/plugin-elasticsearch.html @@ -0,0 +1,234 @@ +graphql-compose-elasticsearch · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/plugins/plugin-json.html b/docs/plugins/plugin-json.html new file mode 100644 index 00000000..21e87cf3 --- /dev/null +++ b/docs/plugins/plugin-json.html @@ -0,0 +1,311 @@ +graphql-compose-json · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/plugins/plugin-mongoose.html b/docs/plugins/plugin-mongoose.html new file mode 100644 index 00000000..9b55c195 --- /dev/null +++ b/docs/plugins/plugin-mongoose.html @@ -0,0 +1,957 @@ +graphql-compose-mongoose · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/plugins/plugin-pagination.html b/docs/plugins/plugin-pagination.html new file mode 100644 index 00000000..88ba213d --- /dev/null +++ b/docs/plugins/plugin-pagination.html @@ -0,0 +1,135 @@ +graphql-compose-pagination · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/plugins/plugin-relay.html b/docs/plugins/plugin-relay.html new file mode 100644 index 00000000..e1bab07d --- /dev/null +++ b/docs/plugins/plugin-relay.html @@ -0,0 +1,148 @@ +graphql-compose-relay · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/plugins/plugin-writing-custom-plugin.html b/docs/plugins/plugin-writing-custom-plugin.html new file mode 100644 index 00000000..f03c8f6d --- /dev/null +++ b/docs/plugins/plugin-writing-custom-plugin.html @@ -0,0 +1,59 @@ +[WIP] How to write a custom plugin · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/recipes/authorization.html b/docs/recipes/authorization.html new file mode 100644 index 00000000..b9ec96c2 --- /dev/null +++ b/docs/recipes/authorization.html @@ -0,0 +1,59 @@ +[WIP] Authorization · graphql-compose

8.x.x

\ No newline at end of file diff --git a/docs/recipes/writing-tests.html b/docs/recipes/writing-tests.html new file mode 100644 index 00000000..7bc8f1b9 --- /dev/null +++ b/docs/recipes/writing-tests.html @@ -0,0 +1,59 @@ +[WIP] Writing tests · graphql-compose

8.x.x

\ No newline at end of file diff --git a/en/help-with-translations.html b/en/help-with-translations.html new file mode 100644 index 00000000..adf11707 --- /dev/null +++ b/en/help-with-translations.html @@ -0,0 +1,62 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js

8.x.x

\ No newline at end of file diff --git a/en/help.html b/en/help.html new file mode 100644 index 00000000..737ff9d1 --- /dev/null +++ b/en/help.html @@ -0,0 +1,62 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js

8.x.x

\ No newline at end of file diff --git a/en/index.html b/en/index.html new file mode 100644 index 00000000..c971ad3d --- /dev/null +++ b/en/index.html @@ -0,0 +1,135 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js

8.x.x

\ No newline at end of file diff --git a/en/users.html b/en/users.html new file mode 100644 index 00000000..270d2189 --- /dev/null +++ b/en/users.html @@ -0,0 +1,56 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js

8.x.x

\ No newline at end of file diff --git a/en/versions.html b/en/versions.html new file mode 100644 index 00000000..9190725c --- /dev/null +++ b/en/versions.html @@ -0,0 +1,56 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js

8.x.x

\ No newline at end of file diff --git a/gen-api/MarkdownGenerator.ts b/gen-api/MarkdownGenerator.ts deleted file mode 100644 index 3938402f..00000000 --- a/gen-api/MarkdownGenerator.ts +++ /dev/null @@ -1,268 +0,0 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { ClassData, ClassMethodData, ClassPropertyData, InterfaceData } from './TSClassParser'; -import { trim, prettifyReturnType } from './utils'; - -export default class MarkdownGenerator { - static generate(data: ClassData, interfaces?: InterfaceData[]) { - let m = ''; - - m += MarkdownGenerator.generateHeader(data); - m += MarkdownGenerator.generateStaticProperties(data.staticProperties); - m += MarkdownGenerator.generateStaticMethods(data.staticMethods); - m += MarkdownGenerator.generateGetters(data.getters); - m += MarkdownGenerator.generateProperties(data.properties); - m += MarkdownGenerator.generateMethods(data.methods); - m += MarkdownGenerator.generateTypeDefinitions(interfaces); - - m = trim(m) + '\n'; - - return m; - } - - static generateHeader(data: ClassData) { - let m = ''; - - m += '---\n'; - m += `id: ${data.name}\n`; - m += `title: ${data.name}\n`; - m += `custom_edit_url: https://github.com/graphql-compose/graphql-compose/blob/master/src/${ - data.name - }.d.ts\n`; - m += '---\n\n'; - - m += `\n\n`; - - if (data.documentation) { - m += `${trim(data.documentation)}\n\n`; - } - - return m; - } - - static generateStaticProperties(_staticProperties: ClassPropertyData[]): string { - let m = ''; - - // filter private/protected properties - const staticProperties = _staticProperties.filter((n) => !n.name.startsWith('_')); - - if (!staticProperties || staticProperties.length === 0) return m; - - m += '## Static properties\n\n'; - - staticProperties.forEach((property) => { - if (!MarkdownGenerator.isPublic(property)) return; - m += `### static ${property.name}\n\n`; - m += MarkdownGenerator.createPropertyCodeSnippet(property) + '\n\n'; - if (property.documentation) { - m += trim(property.documentation) + '\n\n'; - } - }); - - return m; - } - - static generateStaticMethods(_staticMethods: ClassMethodData[]): string { - let m = ''; - - // filter private/protected properties - const staticMethods = _staticMethods.filter((n) => !n.name.startsWith('_')); - - if (!staticMethods || staticMethods.length === 0) return m; - - m += '## Static methods\n\n'; - - staticMethods.forEach((method) => { - if (!MarkdownGenerator.isPublic(method)) return; - m += `### static ${method.name}()\n\n`; - m += MarkdownGenerator.createMethodCodeSnippet(method) + '\n\n'; - if (method.documentation) { - m += trim(method.documentation) + '\n\n'; - } - }); - - return m; - } - - static generateProperties(_properties: ClassPropertyData[]): string { - let m = ''; - - // filter private/protected properties - const properties = _properties.filter((n) => !n.name.startsWith('_')); - - if (!properties || properties.length === 0) return m; - - m += '## Properties\n\n'; - - properties.forEach((property) => { - if (!MarkdownGenerator.isPublic(property)) return; - m += `### ${property.name}\n\n`; - m += MarkdownGenerator.createPropertyCodeSnippet(property) + '\n\n'; - if (property.documentation) { - m += trim(property.documentation) + '\n\n'; - } - }); - - return m; - } - - static generateGetters(_getters: ClassPropertyData[]): string { - let m = ''; - - // filter private/protected properties - const getters = _getters.filter((n) => !n.name.startsWith('_')); - - if (!getters || getters.length === 0) return m; - - m += '## Getters\n\n'; - - getters.forEach((getter) => { - if (!MarkdownGenerator.isPublic(getter)) return; - m += `### ${getter.name}\n\n`; - m += MarkdownGenerator.createPropertyCodeSnippet(getter) + '\n\n'; - if (getter.documentation) { - m += trim(getter.documentation) + '\n\n'; - } - }); - - return m; - } - - static generateMethods(_methods: ClassMethodData[]): string { - let m = ''; - - // filter private/protected properties - const methods = _methods.filter((n) => !n.name.startsWith('_')); - if (!methods || methods.length === 0) return m; - - let prevSection = ''; - - methods.forEach((method) => { - const { section, sectionDoc } = MarkdownGenerator.parseSectionAndDocs( - method.comments, - prevSection || 'Methods' - ); - - if (prevSection !== section) { - prevSection = section; - m += `## ${section}\n\n`; - - if (sectionDoc) { - m += sectionDoc + '\n\n'; - } - } - - if (!MarkdownGenerator.isPublic(method)) return; - m += `### ${method.name}()\n\n`; - m += MarkdownGenerator.createMethodCodeSnippet(method) + '\n\n'; - if (method.documentation) { - m += trim(method.documentation) + '\n\n'; - } - }); - - return m; - } - - static generateTypeDefinitions(interfaces?: InterfaceData[]): string { - let m = ''; - - if (!interfaces || interfaces.length === 0) return m; - - m += '## Internal type definitions\n\n'; - - interfaces.forEach((iface) => { - m += `### ${trim(iface.name)}\n\n`; - m += '```js\n'; - m += `${trim(iface.code)}\n`; - m += '```\n\n'; - }); - - return m; - } - - static isPublic(method: ClassMethodData | ClassPropertyData) { - if (method.flags) { - if (method.flags.private) return false; - if (method.flags.protected) return false; - } - return true; - } - - static createMethodCodeSnippet(method: ClassMethodData): string { - let m = ''; - m += '```js\n'; - - // method name - if (method.flags) { - if (method.flags.static) m += 'static '; - if (method.flags.private) m += 'private '; - if (method.flags.protected) m += 'protected '; - if (method.flags.readonly) m += 'readonly '; - } - m += `${method.name}${method.generics || ''}(`; - - // params - if (method.parameters && method.parameters.length > 0) { - m += '\n'; - method.parameters.forEach((param, i, a) => { - if (param.documentation) { - if (i > 0) m += '\n'; - m += ` // ${param.documentation.replace(/\n/g, '\n // ')}\n`; - } - m += ` ${param.name}: ${param.type.replace(/\n/g, '\n ')}`; - if (i < a.length - 1) m += ','; - m += '\n'; - }); - } - - // close - m += `):${prettifyReturnType(method.type)}\n`; - m += '```\n'; - - return m; - } - - static createPropertyCodeSnippet(property: ClassPropertyData): string { - let m = ''; - m += '```js\n'; - - // method name - if (property.flags) { - if (property.flags.static) m += 'static '; - if (property.flags.private) m += 'private '; - if (property.flags.protected) m += 'protected '; - if (property.flags.readonly) m += 'readonly '; - } - m += `${property.name}:${prettifyReturnType(property.type)};\n`; - m += '```\n'; - - return m; - } - - static parseSectionAndDocs(str: string = '', defaultSection: string = 'Methods') { - let section = ''; - let sectionDoc = ''; - - if (str) { - const re = /(-----[-]+\n([^\n]+)([\s\S]*)\n-----[-]+)((.|[\r\n])*)$/im; - const found = str.match(re); - if (found) { - section = found![2] || ''; - sectionDoc = found![3] || ''; - str = found![4] || ''; - } - } - - return { - section: trim(section) || defaultSection, - sectionDoc: trim(sectionDoc), - otherComments: trim(str), - }; - } -} diff --git a/gen-api/TSClassParser.ts b/gen-api/TSClassParser.ts deleted file mode 100644 index ba84bab1..00000000 --- a/gen-api/TSClassParser.ts +++ /dev/null @@ -1,383 +0,0 @@ -import ts from 'typescript'; -import { trim, fixJSDocCode, prettify } from './utils'; - -interface SymbolData { - name: string; - type: string; - typeChecker: string; - comments?: string; - documentation: string; -} - -interface CallData { - parameters?: SymbolData[]; - type: string; - documentation: string; -} - -interface ModifierFlags { - protected?: boolean; - private?: boolean; - readonly?: boolean; - static?: boolean; -} - -interface ClassConstructorData extends CallData {} - -export interface ClassMethodData extends SymbolData, CallData { - flags?: ModifierFlags; - generics?: string; -} - -export interface ClassPropertyData extends SymbolData { - flags?: ModifierFlags; -} - -export interface InterfaceData { - name: string; - code: string; -} - -export interface ClassData extends SymbolData { - constructors: ClassConstructorData[]; - methods: ClassMethodData[]; - getters: ClassPropertyData[]; - properties: ClassPropertyData[]; - staticMethods: ClassMethodData[]; - staticProperties: ClassPropertyData[]; -} - -export default class TSClassParser { - program: ts.Program; - checker: ts.TypeChecker; - printer: ts.Printer; - rootNames: string[]; - sourceFile: ts.SourceFile; - - static parseFile( - filePath: string - ): { - classData: ClassData; - interfaces: InterfaceData[]; - } { - const result = TSClassParser.createFromFiles(filePath).run(); - return { - classData: result.classes[0], - interfaces: result.interfaces, - }; - } - - static parseSource( - code: string - ): { - classData: ClassData; - interfaces: InterfaceData[]; - } { - const result = TSClassParser.createFromSource(code).run(); - return { - classData: result.classes[0], - interfaces: result.interfaces, - }; - } - - static createFromFiles(filePaths: ReadonlyArray | string): TSClassParser { - const rootNames = Array.isArray(filePaths) ? filePaths : [filePaths]; - const program = ts.createProgram(rootNames, {}); - - return new TSClassParser(program, rootNames); - } - - static createFromSource(code: string): TSClassParser { - const filename = 'source.file.ts'; - - const sourceFile = ts.createSourceFile(filename, code, ts.ScriptTarget.Latest); - - const defaultCompilerHost = ts.createCompilerHost({}); - - const customCompilerHost: ts.CompilerHost = { - getSourceFile: (name, languageVersion) => { - if (name === filename) { - return sourceFile; - } else { - return defaultCompilerHost.getSourceFile(name, languageVersion); - } - }, - writeFile: () => {}, - getDefaultLibFileName: () => 'lib.d.ts', - useCaseSensitiveFileNames: () => false, - getCanonicalFileName: (filename) => filename, - getCurrentDirectory: () => '', - getNewLine: () => '\n', - getDirectories: () => [], - fileExists: () => true, - readFile: () => '', - }; - - const rootNames = [filename]; - const program = ts.createProgram(rootNames, {}, customCompilerHost); - return new TSClassParser(program, rootNames); - } - - static getSyntaxKindName(node: ts.Node): string { - return ts.SyntaxKind[node.kind]; - } - - constructor(program: ts.Program, rootNames: string[]) { - this.program = program; - this.rootNames = rootNames; - this.checker = program.getTypeChecker(); - this.printer = ts.createPrinter({ - removeComments: true, - newLine: ts.NewLineKind.LineFeed, - }); - } - - run(): { classes: ClassData[]; interfaces: InterfaceData[] } { - const result = { - classes: [] as ClassData[], - interfaces: [] as InterfaceData[], - }; - const THIS = this; - - function visit(node: ts.Node) { - if (ts.isClassDeclaration(node)) { - const data = THIS.parseClassDeclaration(node); - if (data) result.classes.push(data); - } else if (ts.isInterfaceDeclaration(node) || ts.isTypeAliasDeclaration(node)) { - const data = THIS.parseInterfaceDeclaration(node); - if (data) result.interfaces.push(data); - } else if (ts.isModuleDeclaration(node)) { - ts.forEachChild(node, visit); - } - } - - for (const sourceFile of this.program.getSourceFiles()) { - if (this.rootNames.includes(sourceFile.fileName)) { - this.sourceFile = sourceFile; - // Walk the tree to search for classes - ts.forEachChild(sourceFile, visit); - } - } - - return result; - } - - /** Serialize a symbol into a json object */ - serializeSymbol(symbol: ts.Symbol): SymbolData { - if (!symbol || !symbol.getName) { - return { name: '', documentation: '', type: '', typeChecker: '' }; - } - - const type = - symbol.valueDeclaration && (symbol.valueDeclaration as any).type - ? this.printer.printNode( - ts.EmitHint.Unspecified, - (symbol.valueDeclaration as any).type, - this.sourceFile - ) - : ''; - - const typeChecker = this.checker.typeToString( - this.checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration), - undefined, - ts.TypeFormatFlags.NoTruncation - ); - - return { - name: symbol.getName(), - documentation: ts.displayPartsToString(symbol.getDocumentationComment(this.checker)), - type, - typeChecker, - }; - } - - /** Serialize a Node into a json object */ - serializeNode( - node: ts.MethodDeclaration | ts.PropertyDeclaration | ts.AccessorDeclaration - ): SymbolData { - let symbol: ts.Symbol = - ts.isPropertyDeclaration(node) || ts.isGetAccessorDeclaration(node) - ? (node as any).symbol - : this.nodeToSymbol(node); - - const type = (node.type && node.type.getText()) || ''; - const typeChecker = !symbol - ? type - : this.checker.typeToString( - this.checker.getTypeOfSymbolAtLocation(symbol, node), - undefined, - ts.TypeFormatFlags.NoTruncation - ); - - const name = node.name.getText(); - - // get simple comments before Node declaration - let comments; - const text = node.name.getFullText(); - const commentRanges = ts.getLeadingCommentRanges(text, 0); - if (commentRanges && commentRanges.length) { - comments = commentRanges - .map((r) => { - let t = text.slice(r.pos, r.end); - if (!t.startsWith('//')) return undefined; - return t.slice(3); - }) - .filter((s) => s !== undefined) - .join('\n'); - } - - let documentation = ''; - if (symbol) { - documentation = ts.displayPartsToString(symbol.getDocumentationComment(this.checker)); - symbol.getJsDocTags().forEach((docTag) => { - if (docTag.name === 'example' && docTag.text) { - if (documentation) documentation += `\n\n`; - documentation += '```js\n'; - try { - documentation += trim(prettify(fixJSDocCode(docTag.text))) + '\n'; - } catch (e) { - console.log( - `\n-----------------------------------------\n\nExample parse error in '${name}':\n`, - e.message, - '\n\n', - docTag.text, - '\n' - ); - documentation += trim(docTag.text) + '\n'; - } - documentation += '```\n'; - } else if (docTag.name === 'description' && docTag.text) { - if (documentation) documentation += `\n`; - documentation += docTag.text + '\n'; - } - }); - } - - return { - name, - comments, - documentation, - type: type || typeChecker, - typeChecker, - }; - } - - /** Serialize a signature (call or construct) */ - serializeSignature(signature: ts.Signature): CallData { - return { - parameters: signature.parameters.map((s) => this.serializeSymbol(s)), - type: this.checker.typeToString(signature.getReturnType()), - documentation: ts.displayPartsToString(signature.getDocumentationComment(this.checker)), - }; - } - - nodeToSymbol(node: ts.Node): ts.Symbol | void { - const type = this.checker.getTypeAtLocation(node); - return type.symbol; - } - - parseModifierFlags(node: ts.Declaration): ModifierFlags { - const flags = ts.getCombinedModifierFlags(node); - const res: ModifierFlags = {}; - - if (flags & ts.ModifierFlags.Protected) res.protected = true; - if (flags & ts.ModifierFlags.Private) res.private = true; - if (flags & ts.ModifierFlags.Readonly) res.readonly = true; - if (flags & ts.ModifierFlags.Static) res.static = true; - - return res; - } - - parseClassDeclaration(node: ts.ClassDeclaration): ClassData | void { - if (!node.name) return; - - const symbol = this.checker.getSymbolAtLocation(node.name); - if (!symbol) return; - - const data = this.serializeSymbol(symbol); - - const methods: ClassMethodData[] = []; - const properties: ClassPropertyData[] = []; - const getters: ClassPropertyData[] = []; - const staticMethods: ClassMethodData[] = []; - const staticProperties: ClassPropertyData[] = []; - - const constructorType = this.checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration); - const constructors: ClassConstructorData[] = constructorType - .getConstructSignatures() - .map((s) => { - return this.serializeSignature(s); - }); - - if (symbol.exports) { - symbol.exports.forEach((v) => { - const declarations = v.getDeclarations(); - if (!declarations) return; - - const n = declarations[0]; - if (ts.isMethodDeclaration(n)) { - staticMethods.push(this.parseMethodDeclaration(n)); - } else if (ts.isPropertyDeclaration(n)) { - staticProperties.push(this.parsePropertyDeclaration(n)); - } - }); - } - - if (symbol.members) { - symbol.members.forEach((v) => { - const declarations = v.getDeclarations(); - if (!declarations) return; - - const n = declarations[0]; - if (ts.isMethodDeclaration(n)) { - methods.push(this.parseMethodDeclaration(n)); - } else if (ts.isPropertyDeclaration(n)) { - properties.push(this.parsePropertyDeclaration(n)); - } else if (ts.isGetAccessorDeclaration(n)) { - getters.push(this.parsePropertyDeclaration(n)); - } - }); - } - - return { ...data, constructors, methods, properties, getters, staticMethods, staticProperties }; - } - - parseMethodDeclaration(node: ts.MethodDeclaration): ClassMethodData { - const data: ClassMethodData = this.serializeNode(node); - - const genericMatch = data.typeChecker.match(/^(<.*>)\(/i); - if (genericMatch) { - data.generics = genericMatch[1]; - } - - const signature = this.checker.getSignatureFromDeclaration(node); - if (signature) { - data.parameters = signature.parameters.map((s) => this.serializeSymbol(s)); - // data.type = this.checker.typeToString( - // signature.getReturnType(), - // undefined, - // ts.TypeFormatFlags.NoTruncation | ts.TypeFormatFlags.MultilineObjectLiterals - // ); - } - data.flags = this.parseModifierFlags(node); - return data; - } - - parsePropertyDeclaration( - node: ts.PropertyDeclaration | ts.AccessorDeclaration - ): ClassPropertyData { - const data: ClassPropertyData = this.serializeNode(node); - data.flags = this.parseModifierFlags(node); - return data; - } - - parseInterfaceDeclaration( - node: ts.InterfaceDeclaration | ts.TypeAliasDeclaration - ): InterfaceData { - const data = { - name: node.name.getFullText(), - code: node.getFullText(), - }; - return data; - } -} diff --git a/gen-api/__tests__/MarkdownGenerator-test.ts b/gen-api/__tests__/MarkdownGenerator-test.ts deleted file mode 100644 index 29e43aac..00000000 --- a/gen-api/__tests__/MarkdownGenerator-test.ts +++ /dev/null @@ -1,77 +0,0 @@ -import MarkdownGenerator from '../MarkdownGenerator'; - -describe('MarkdownGenerator', () => { - it('static createMethodCodeSnippet()', () => { - const method = { - documentation: 'Method description', - flags: { private: false, protected: true, readonly: false, static: true }, - name: 'prot', - parameters: [ - { documentation: '', name: 'b', type: 'string', typeChecker: 'string' }, - { - documentation: 'Some arg \ndescription', - name: 'c', - type: 'string', - typeChecker: 'string', - }, - ], - type: 'number', - typeChecker: 'number', - }; - - expect(MarkdownGenerator.createMethodCodeSnippet(method)).toMatchInlineSnapshot(` -"\`\`\`js -static protected prot( - b: string, - - // Some arg - // description - c: string -): number -\`\`\` -" -`); - }); - - it('static createPropertyCodeSnippet()', () => { - const property = { - documentation: '', - flags: { private: false, protected: true, readonly: false, static: true }, - name: 'prot', - type: 'Me', - typeChecker: 'Me', - }; - - expect(MarkdownGenerator.createPropertyCodeSnippet(property)).toMatchInlineSnapshot(` -"\`\`\`js -static protected prot: Me; -\`\`\` -" -`); - }); - - it('static obtainMethodSection()', () => { - const data = MarkdownGenerator.parseSectionAndDocs( - `----------------------------------------------- - Custom methods - -You may use custom methods -or write your own. ------------------------------------------------ - -Ok -Second line!!! - -`, - 'My methods' - ); - - expect(data.documentation).toEqual('Ok\nSecond line!!!'); - expect(data.section).toEqual('Custom methods'); - expect(data.sectionDoc).toEqual('You may use custom methods\nor write your own.'); - - const data2 = MarkdownGenerator.parseSectionAndDocs(' Some docs ', 'My methods'); - expect(data2.documentation).toEqual('Some docs'); - expect(data2.section).toEqual('My methods'); - }); -}); diff --git a/gen-api/__tests__/TSClassParser-test.ts b/gen-api/__tests__/TSClassParser-test.ts deleted file mode 100644 index 9e2e8d21..00000000 --- a/gen-api/__tests__/TSClassParser-test.ts +++ /dev/null @@ -1,269 +0,0 @@ -import TSClassParser from '../TSClassParser'; - -describe('TSClassParser', () => { - it('should parse static methods', () => { - const data = TSClassParser.parseSource(` - import { GraphQLFieldConfig } from 'graphql'; - - class Me { - static pub(a: Me): string; - /** - * Method description - * - * @example - * const a = Me.prot('a', {}); - * - * console.log(a); - * - * @description Desc1 - * New description Line - * - * @example - * const a = 1 + 1; - * const b = 2 + 2; - * - * @param c Some arg description - */ - protected static prot(b: string, c: GraphQLFieldConfig): number; - private static priv(): {}; - static gen(a: T): T; - } - `); - - expect(data.classData.name).toBe('Me'); - expect(data.classData.staticMethods).toEqual([ - { - documentation: '', - flags: { static: true }, - name: 'pub', - parameters: [{ documentation: '', name: 'a', type: 'Me', typeChecker: 'Me' }], - type: 'string', - typeChecker: '(a: Me) => string', - }, - { - documentation: - "Method description\n\n```js\nconst a = Me.prot('a', {});\n\nconsole.log(a);\n```\n\nDesc1\nNew description Line\n\n\n```js\nconst a = 1 + 1;\nconst b = 2 + 2;\n```\n", - flags: { protected: true, static: true }, - name: 'prot', - parameters: [ - { documentation: '', name: 'b', type: 'string', typeChecker: 'string' }, - { - documentation: 'Some arg description', - name: 'c', - type: 'GraphQLFieldConfig', - typeChecker: 'any', - }, - ], - type: 'number', - typeChecker: '(b: string, c: any) => number', - }, - { - documentation: '', - flags: { private: true, static: true }, - name: 'priv', - parameters: [], - type: '{}', - typeChecker: '() => {}', - }, - { - documentation: '', - flags: { static: true }, - generics: '', - name: 'gen', - parameters: [{ documentation: '', name: 'a', type: 'T', typeChecker: 'T' }], - type: 'T', - typeChecker: '(a: T) => T', - }, - ]); - }); - - it('should parse static properties', () => { - const data = TSClassParser.parseSource(` - class Me { - static pub: string; - protected static prot: Me; - private static priv: He; - } - `); - - expect(data.classData.name).toBe('Me'); - expect(data.classData.staticProperties).toEqual([ - { - documentation: '', - flags: { static: true }, - name: 'pub', - type: 'string', - typeChecker: 'string', - }, - { - documentation: '', - flags: { protected: true, static: true }, - name: 'prot', - type: 'Me', - typeChecker: 'Me', - }, - { - documentation: '', - flags: { private: true, static: true }, - name: 'priv', - type: 'He', - typeChecker: 'any', - }, - ]); - }); - - it('should parse instance methods', () => { - const data = TSClassParser.parseSource(` - class Me { - pub(a: Me): string; - /** - * Method description - * - * @param c Some arg description - */ - protected prot(b: string, c: string): number; - private priv(): {}; - } - `); - - expect(data.classData.name).toBe('Me'); - expect(data.classData.methods).toEqual([ - { - documentation: '', - flags: {}, - name: 'pub', - parameters: [{ documentation: '', name: 'a', type: 'Me', typeChecker: 'Me' }], - type: 'string', - typeChecker: '(a: Me) => string', - }, - { - documentation: 'Method description', - flags: { protected: true }, - name: 'prot', - parameters: [ - { documentation: '', name: 'b', type: 'string', typeChecker: 'string' }, - { - documentation: 'Some arg description', - name: 'c', - type: 'string', - typeChecker: 'string', - }, - ], - type: 'number', - typeChecker: '(b: string, c: string) => number', - }, - { - documentation: '', - flags: { private: true }, - name: 'priv', - parameters: [], - type: '{}', - typeChecker: '() => {}', - }, - ]); - }); - - it('should parse instance props', () => { - const data = TSClassParser.parseSource(` - class Me { - pub: string; - /** - * My number - */ - protected prot: number; - private priv: {}; - } - `); - - expect(data.classData.name).toBe('Me'); - expect(data.classData.properties).toEqual([ - { documentation: '', flags: {}, name: 'pub', type: 'string', typeChecker: 'string' }, - { - documentation: 'My number', - flags: { protected: true }, - name: 'prot', - type: 'number', - typeChecker: 'number', - }, - { documentation: '', flags: { private: true }, name: 'priv', type: '{}', typeChecker: '{}' }, - ]); - }); - - it('should parse constructors', () => { - const data = TSClassParser.parseSource(` - class Me { - /** - * Class constructor with debug - **/ - constructor(debug: boolean) - - /** - * Class constructor with options - **/ - constructor(opts: {}, debug: boolean) - } - `); - - expect(data.classData.name).toBe('Me'); - expect(data.classData.constructors).toEqual([ - { - documentation: 'Class constructor with debug', - parameters: [{ documentation: '', name: 'debug', type: 'boolean', typeChecker: 'boolean' }], - type: 'Me', - }, - { - documentation: 'Class constructor with options', - parameters: [ - { documentation: '', name: 'opts', type: '{}', typeChecker: '{}' }, - { documentation: '', name: 'debug', type: 'boolean', typeChecker: 'boolean' }, - ], - type: 'Me', - }, - ]); - }); - - it('should parse interfaces', () => { - const data = TSClassParser.parseSource(` - export interface ComposeEnumTypeConfig extends GraphQLEnumTypeConfig { - extensions?: Extensions; - }; - - export type EnumTypeComposeDefinition = TypeAsString | ComposeEnumTypeConfig | GraphQLEnumType; - - export type GraphQLEnumTypeExtended = GraphQLEnumType & { - _gqcExtensions?: Extensions; - }; - - class Me { - constructor(debug: boolean) - } - `); - - expect(data.classData.name).toBe('Me'); - expect(data.interfaces).toMatchInlineSnapshot(` -Array [ - Object { - "code": " - export interface ComposeEnumTypeConfig extends GraphQLEnumTypeConfig { - extensions?: Extensions; - }", - "name": " ComposeEnumTypeConfig", - }, - Object { - "code": " - - export type EnumTypeComposeDefinition = TypeAsString | ComposeEnumTypeConfig | GraphQLEnumType;", - "name": " EnumTypeComposeDefinition", - }, - Object { - "code": " - - export type GraphQLEnumTypeExtended = GraphQLEnumType & { - _gqcExtensions?: Extensions; - };", - "name": " GraphQLEnumTypeExtended", - }, -] -`); - }); -}); diff --git a/gen-api/__tests__/fixtures/EnumTypeComposer-test.ts b/gen-api/__tests__/fixtures/EnumTypeComposer-test.ts deleted file mode 100644 index 332fa199..00000000 --- a/gen-api/__tests__/fixtures/EnumTypeComposer-test.ts +++ /dev/null @@ -1,795 +0,0 @@ -import TSClassParser from '../../TSClassParser'; -import MarkdownGenerator from '../../MarkdownGenerator'; - -const file = 'gen-api/__tests__/fixtures/EnumTypeComposer.d.ts'; - -it('markdown TypeStorage.d.ts', () => { - const data = TSClassParser.parseFile(file); - expect(MarkdownGenerator.generate(data.classData, data.interfaces)).toMatchInlineSnapshot(` -"--- -id: EnumTypeComposer -title: EnumTypeComposer -custom_edit_url: https://github.com/graphql-compose/graphql-compose/blob/master/src/EnumTypeComposer.d.ts ---- - - - -## Static methods - -### static create() - -\`\`\`js -static create( - typeDef: EnumTypeComposeDefinition, - schemaComposer: SchemaComposer -): EnumTypeComposer -\`\`\` - -### static createTemp() - -\`\`\`js -static createTemp( - typeDef: EnumTypeComposeDefinition, - schemaComposer: SchemaComposer -): EnumTypeComposer -\`\`\` - -## Properties - -### schemaComposer - -\`\`\`js -schemaComposer: SchemaComposer; -\`\`\` - -## Methods - -### hasField() - -\`\`\`js -hasField( - name: string -): boolean -\`\`\` - -### getFields() - -\`\`\`js -getFields(): GraphQLEnumValueConfigMap -\`\`\` - -### getField() - -\`\`\`js -getField( - name: string -): GraphQLEnumValueConfig -\`\`\` - -### getFieldNames() - -\`\`\`js -getFieldNames(): string[] -\`\`\` - -### setFields() - -\`\`\`js -setFields( - values: GraphQLEnumValueConfigMap -): this -\`\`\` - -### setField() - -\`\`\`js -setField( - name: string, - valueConfig: GraphQLEnumValueConfig -): this -\`\`\` - -### addFields() - -\`\`\`js -addFields( - newValues: GraphQLEnumValueConfigMap -): this -\`\`\` - -### removeField() - -\`\`\`js -removeField( - nameOrArray: string | string[] -): this -\`\`\` - -### removeOtherFields() - -\`\`\`js -removeOtherFields( - fieldNameOrArray: string | string[] -): this -\`\`\` - -### reorderFields() - -\`\`\`js -reorderFields( - names: string[] -): this -\`\`\` - -### extendField() - -\`\`\`js -extendField( - name: string, - partialValueConfig: Partial -): this -\`\`\` - -### deprecateFields() - -\`\`\`js -deprecateFields( - fields: { - [fieldName: string]: string; - } | string[] | string -): this -\`\`\` - -### getExtensions() - -\`\`\`js -getExtensions(): Extensions -\`\`\` - -### setExtensions() - -\`\`\`js -setExtensions( - extensions: Extensions -): this -\`\`\` - -### extendExtensions() - -\`\`\`js -extendExtensions( - extensions: Extensions -): this -\`\`\` - -### clearExtensions() - -\`\`\`js -clearExtensions(): this -\`\`\` - -### getExtension() - -\`\`\`js -getExtension( - extensionName: string -): any -\`\`\` - -### hasExtension() - -\`\`\`js -hasExtension( - extensionName: string -): boolean -\`\`\` - -### setExtension() - -\`\`\`js -setExtension( - extensionName: string, - value: any -): this -\`\`\` - -### removeExtension() - -\`\`\`js -removeExtension( - extensionName: string -): this -\`\`\` - -### getType() - -\`\`\`js -getType(): GraphQLEnumType -\`\`\` - -### getTypePlural() - -\`\`\`js -getTypePlural(): GraphQLList -\`\`\` - -### getTypeNonNull() - -\`\`\`js -getTypeNonNull(): GraphQLNonNull -\`\`\` - -### getTypeName() - -\`\`\`js -getTypeName(): string -\`\`\` - -### setTypeName() - -\`\`\`js -setTypeName( - name: string -): this -\`\`\` - -### getDescription() - -\`\`\`js -getDescription(): string -\`\`\` - -### setDescription() - -\`\`\`js -setDescription( - description: string -): this -\`\`\` - -### clone() - -\`\`\`js -clone( - newTypeName: string -): EnumTypeComposer -\`\`\` - -## Internal type definitions - -### ComposeEnumTypeConfig - -\`\`\`js -export type ComposeEnumTypeConfig = GraphQLEnumTypeConfig & { - extensions?: Extensions; -}; -\`\`\` - -### EnumTypeComposeDefinition - -\`\`\`js -export type EnumTypeComposeDefinition = TypeAsString | ComposeEnumTypeConfig | GraphQLEnumType; -\`\`\` - -### GraphQLEnumTypeExtended - -\`\`\`js -export type GraphQLEnumTypeExtended = GraphQLEnumType & { - _gqcExtensions?: Extensions; -}; -\`\`\` -" -`); -}); - -it('parse EnumTypeComposer.d.ts', () => { - expect(TSClassParser.parseFile(file)).toMatchInlineSnapshot(` -Object { - "classData": Object { - "constructors": Array [ - Object { - "documentation": "", - "parameters": Array [ - Object { - "documentation": "", - "name": "gqType", - "type": "GraphQLEnumType", - "typeChecker": "any", - }, - Object { - "documentation": "", - "name": "schemaComposer", - "type": "SchemaComposer", - "typeChecker": "any", - }, - ], - "type": "EnumTypeComposer", - }, - ], - "documentation": "", - "methods": Array [ - Object { - "documentation": "", - "flags": Object {}, - "name": "hasField", - "parameters": Array [ - Object { - "documentation": "", - "name": "name", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "boolean", - "typeChecker": "(name: string) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFields", - "parameters": Array [], - "type": "GraphQLEnumValueConfigMap", - "typeChecker": "() => GraphQLEnumValueConfigMap", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getField", - "parameters": Array [ - Object { - "documentation": "", - "name": "name", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "GraphQLEnumValueConfig", - "typeChecker": "(name: string) => GraphQLEnumValueConfig", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldNames", - "parameters": Array [], - "type": "string[]", - "typeChecker": "() => string[]", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "values", - "type": "GraphQLEnumValueConfigMap", - "typeChecker": "GraphQLEnumValueConfigMap", - }, - ], - "type": "this", - "typeChecker": "(values: GraphQLEnumValueConfigMap) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setField", - "parameters": Array [ - Object { - "documentation": "", - "name": "name", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "valueConfig", - "type": "GraphQLEnumValueConfig", - "typeChecker": "GraphQLEnumValueConfig", - }, - ], - "type": "this", - "typeChecker": "(name: string, valueConfig: GraphQLEnumValueConfig) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "addFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "newValues", - "type": "GraphQLEnumValueConfigMap", - "typeChecker": "GraphQLEnumValueConfigMap", - }, - ], - "type": "this", - "typeChecker": "(newValues: GraphQLEnumValueConfigMap) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeField", - "parameters": Array [ - Object { - "documentation": "", - "name": "nameOrArray", - "type": "string | string[]", - "typeChecker": "string | string[]", - }, - ], - "type": "this", - "typeChecker": "(nameOrArray: string | string[]) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeOtherFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldNameOrArray", - "type": "string | string[]", - "typeChecker": "string | string[]", - }, - ], - "type": "this", - "typeChecker": "(fieldNameOrArray: string | string[]) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "reorderFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "names", - "type": "string[]", - "typeChecker": "string[]", - }, - ], - "type": "this", - "typeChecker": "(names: string[]) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "extendField", - "parameters": Array [ - Object { - "documentation": "", - "name": "name", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "partialValueConfig", - "type": "Partial", - "typeChecker": "Partial", - }, - ], - "type": "this", - "typeChecker": "(name: string, partialValueConfig: Partial) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "deprecateFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "fields", - "type": "{ - [fieldName: string]: string; -} | string[] | string", - "typeChecker": "string | string[] | { [fieldName: string]: string; }", - }, - ], - "type": "this", - "typeChecker": "(fields: string | string[] | { [fieldName: string]: string; }) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getExtensions", - "parameters": Array [], - "type": "Extensions", - "typeChecker": "() => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setExtensions", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensions", - "type": "Extensions", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(extensions: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "extendExtensions", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensions", - "type": "Extensions", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(extensions: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "clearExtensions", - "parameters": Array [], - "type": "this", - "typeChecker": "() => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "any", - "typeChecker": "(extensionName: string) => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "hasExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "boolean", - "typeChecker": "(extensionName: string) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "value", - "type": "any", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(extensionName: string, value: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "this", - "typeChecker": "(extensionName: string) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getType", - "parameters": Array [], - "type": "GraphQLEnumType", - "typeChecker": "() => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getTypePlural", - "parameters": Array [], - "type": "GraphQLList", - "typeChecker": "() => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getTypeNonNull", - "parameters": Array [], - "type": "GraphQLNonNull", - "typeChecker": "() => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getTypeName", - "parameters": Array [], - "type": "string", - "typeChecker": "() => string", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setTypeName", - "parameters": Array [ - Object { - "documentation": "", - "name": "name", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "this", - "typeChecker": "(name: string) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getDescription", - "parameters": Array [], - "type": "string", - "typeChecker": "() => string", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setDescription", - "parameters": Array [ - Object { - "documentation": "", - "name": "description", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "this", - "typeChecker": "(description: string) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "clone", - "parameters": Array [ - Object { - "documentation": "", - "name": "newTypeName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "EnumTypeComposer", - "typeChecker": "(newTypeName: string) => EnumTypeComposer", - }, - ], - "name": "EnumTypeComposer", - "properties": Array [ - Object { - "documentation": "", - "flags": Object {}, - "name": "schemaComposer", - "type": "SchemaComposer", - "typeChecker": "any", - }, - Object { - "documentation": "", - "flags": Object { - "protected": true, - }, - "name": "gqType", - "type": "GraphQLEnumTypeExtended", - "typeChecker": "any", - }, - ], - "staticMethods": Array [ - Object { - "documentation": "", - "flags": Object { - "static": true, - }, - "generics": "", - "name": "create", - "parameters": Array [ - Object { - "documentation": "", - "name": "typeDef", - "type": "EnumTypeComposeDefinition", - "typeChecker": "any", - }, - Object { - "documentation": "", - "name": "schemaComposer", - "type": "SchemaComposer", - "typeChecker": "any", - }, - ], - "type": "EnumTypeComposer", - "typeChecker": "(typeDef: any, schemaComposer: any) => EnumTypeComposer", - }, - Object { - "documentation": "", - "flags": Object { - "static": true, - }, - "generics": "", - "name": "createTemp", - "parameters": Array [ - Object { - "documentation": "", - "name": "typeDef", - "type": "EnumTypeComposeDefinition", - "typeChecker": "any", - }, - Object { - "documentation": "", - "name": "schemaComposer", - "type": "SchemaComposer", - "typeChecker": "any", - }, - ], - "type": "EnumTypeComposer", - "typeChecker": "(typeDef: any, schemaComposer?: any) => EnumTypeComposer", - }, - ], - "staticProperties": Array [], - "type": "", - "typeChecker": "typeof EnumTypeComposer", - }, - "interfaces": Array [ - Object { - "code": " - -export type ComposeEnumTypeConfig = GraphQLEnumTypeConfig & { - extensions?: Extensions; -};", - "name": " ComposeEnumTypeConfig", - }, - Object { - "code": " - -export type EnumTypeComposeDefinition = TypeAsString | ComposeEnumTypeConfig | GraphQLEnumType;", - "name": " EnumTypeComposeDefinition", - }, - Object { - "code": " - -export type GraphQLEnumTypeExtended = GraphQLEnumType & { - _gqcExtensions?: Extensions; -};", - "name": " GraphQLEnumTypeExtended", - }, - ], -} -`); -}); diff --git a/gen-api/__tests__/fixtures/EnumTypeComposer.d.ts b/gen-api/__tests__/fixtures/EnumTypeComposer.d.ts deleted file mode 100644 index 3a857a41..00000000 --- a/gen-api/__tests__/fixtures/EnumTypeComposer.d.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* @flow strict */ -/* eslint-disable no-use-before-define */ - -import { GraphQLEnumType, GraphQLList, GraphQLNonNull } from './graphql'; -import { GraphQLEnumValueConfig, GraphQLEnumTypeConfig, GraphQLEnumValueConfigMap } from 'graphql'; -import { TypeAsString } from './TypeMapper'; -import { SchemaComposer } from './SchemaComposer'; -import { Extensions } from './utils/definitions'; - -export type ComposeEnumTypeConfig = GraphQLEnumTypeConfig & { - extensions?: Extensions; -}; - -export type EnumTypeComposeDefinition = TypeAsString | ComposeEnumTypeConfig | GraphQLEnumType; - -export type GraphQLEnumTypeExtended = GraphQLEnumType & { - _gqcExtensions?: Extensions; -}; - -export class EnumTypeComposer { - public schemaComposer: SchemaComposer; - protected gqType: GraphQLEnumTypeExtended; - - public constructor(gqType: GraphQLEnumType, schemaComposer: SchemaComposer); - - public static create( - typeDef: EnumTypeComposeDefinition, - schemaComposer: SchemaComposer - ): EnumTypeComposer; - - public static createTemp( - typeDef: EnumTypeComposeDefinition, - schemaComposer?: SchemaComposer - ): EnumTypeComposer; - - // ----------------------------------------------- - // Value methods - // ----------------------------------------------- - - public hasField(name: string): boolean; - - public getFields(): GraphQLEnumValueConfigMap; - - public getField(name: string): GraphQLEnumValueConfig; - - public getFieldNames(): string[]; - - public setFields(values: GraphQLEnumValueConfigMap): this; - - public setField(name: string, valueConfig: GraphQLEnumValueConfig): this; - - public addFields(newValues: GraphQLEnumValueConfigMap): this; - - public removeField(nameOrArray: string | string[]): this; - - public removeOtherFields(fieldNameOrArray: string | string[]): this; - - public reorderFields(names: string[]): this; - - public extendField(name: string, partialValueConfig: Partial): this; - - public deprecateFields(fields: { [fieldName: string]: string } | string[] | string): this; - - // ----------------------------------------------- - // Extensions methods - // ----------------------------------------------- - - public getExtensions(): Extensions; - - public setExtensions(extensions: Extensions): this; - - public extendExtensions(extensions: Extensions): this; - - public clearExtensions(): this; - - public getExtension(extensionName: string): any; - - public hasExtension(extensionName: string): boolean; - - public setExtension(extensionName: string, value: any): this; - - public removeExtension(extensionName: string): this; - - // ----------------------------------------------- - // Type methods - // ----------------------------------------------- - - public getType(): GraphQLEnumType; - - public getTypePlural(): GraphQLList; - - public getTypeNonNull(): GraphQLNonNull; - - public getTypeName(): string; - - public setTypeName(name: string): this; - - public getDescription(): string; - - public setDescription(description: string): this; - - public clone(newTypeName: string): EnumTypeComposer; -} diff --git a/gen-api/__tests__/fixtures/ObjectTypeComposer-test.ts b/gen-api/__tests__/fixtures/ObjectTypeComposer-test.ts deleted file mode 100644 index 70a1022c..00000000 --- a/gen-api/__tests__/fixtures/ObjectTypeComposer-test.ts +++ /dev/null @@ -1,2417 +0,0 @@ -import TSClassParser from '../../TSClassParser'; -import MarkdownGenerator from '../../MarkdownGenerator'; - -const file = 'gen-api/__tests__/fixtures/ObjectTypeComposer.d.ts'; - -it('markdown ObjectTypeComposer.d.ts', () => { - const data = TSClassParser.parseFile(file); - expect(MarkdownGenerator.generate(data.classData, data.interfaces)).toMatchInlineSnapshot(` -"--- -id: ObjectTypeComposer -title: ObjectTypeComposer -custom_edit_url: https://github.com/graphql-compose/graphql-compose/blob/master/src/ObjectTypeComposer.d.ts ---- - - - -## Static methods - -### static create() - -\`\`\`js -static create( - typeDef: ObjectTypeComposeDefinition, - schemaComposer: SchemaComposer -): ObjectTypeComposer -\`\`\` - -### static createTemp() - -\`\`\`js -static createTemp( - typeDef: ObjectTypeComposeDefinition, - schemaComposer: SchemaComposer -): ObjectTypeComposer -\`\`\` - -## Properties - -### schemaComposer - -\`\`\`js -schemaComposer: SchemaComposer; -\`\`\` - -## Field methods - -### getFields() - -\`\`\`js -getFields(): ComposeFieldConfigMap -\`\`\` - -### getFieldNames() - -\`\`\`js -getFieldNames(): string[] -\`\`\` - -### setFields() - -\`\`\`js -setFields( - fields: ComposeFieldConfigMap -): this -\`\`\` - -### hasField() - -\`\`\`js -hasField( - fieldName: string -): boolean -\`\`\` - -### setField() - -\`\`\`js -setField( - fieldName: string, - fieldConfig: ComposeFieldConfig -): this -\`\`\` - -### addFields() - -\`\`\`js -addFields( - newFields: ComposeFieldConfigMap -): this -\`\`\` - -Add new fields or replace existed in a GraphQL type - -### addNestedFields() - -\`\`\`js -addNestedFields( - newFields: ComposeFieldConfigMap -): this -\`\`\` - -Add new fields or replace existed (where field name may have dots) - -### getField() - -\`\`\`js -getField( - fieldName: string -): ComposeFieldConfig -\`\`\` - -### removeField() - -\`\`\`js -removeField( - fieldNameOrArray: string | string[] -): this -\`\`\` - -### removeOtherFields() - -\`\`\`js -removeOtherFields( - fieldNameOrArray: string | string[] -): this -\`\`\` - -### extendField() - -\`\`\`js -extendField( - fieldName: string, - partialFieldConfig: Partial> -): this -\`\`\` - -### reorderFields() - -\`\`\`js -reorderFields( - names: string[] -): this -\`\`\` - -### isFieldNonNull() - -\`\`\`js -isFieldNonNull( - fieldName: string -): boolean -\`\`\` - -### getFieldConfig() - -\`\`\`js -getFieldConfig( - fieldName: string -): GraphQLFieldConfig -\`\`\` - -### getFieldType() - -\`\`\`js -getFieldType( - fieldName: string -): GraphQLOutputType -\`\`\` - -### getFieldTC() - -\`\`\`js -getFieldTC( - fieldName: string -): ObjectTypeComposer -\`\`\` - -### makeFieldNonNull() - -\`\`\`js -makeFieldNonNull( - fieldNameOrArray: string | string[] -): this -\`\`\` - -### makeFieldNullable() - -\`\`\`js -makeFieldNullable( - fieldNameOrArray: string | string[] -): this -\`\`\` - -### deprecateFields() - -\`\`\`js -deprecateFields( - fields: { - [fieldName: string]: string; - } | string[] | string -): this -\`\`\` - -### getFieldArgs() - -\`\`\`js -getFieldArgs( - fieldName: string -): GraphQLFieldConfigArgumentMap -\`\`\` - -### hasFieldArg() - -\`\`\`js -hasFieldArg( - fieldName: string, - argName: string -): boolean -\`\`\` - -### getFieldArg() - -\`\`\`js -getFieldArg( - fieldName: string, - argName: string -): GraphQLArgumentConfig -\`\`\` - -### getFieldArgType() - -\`\`\`js -getFieldArgType( - fieldName: string, - argName: string -): GraphQLInputType -\`\`\` - -## Type methods - -### getType() - -\`\`\`js -getType(): GraphQLObjectType -\`\`\` - -### getTypePlural() - -\`\`\`js -getTypePlural(): GraphQLList -\`\`\` - -### getTypeNonNull() - -\`\`\`js -getTypeNonNull(): GraphQLNonNull -\`\`\` - -### getTypeName() - -\`\`\`js -getTypeName(): string -\`\`\` - -### setTypeName() - -\`\`\`js -setTypeName( - name: string -): this -\`\`\` - -### getDescription() - -\`\`\`js -getDescription(): string -\`\`\` - -### setDescription() - -\`\`\`js -setDescription( - description: string -): this -\`\`\` - -### clone() - -\`\`\`js -clone( - newTypeName: string -): ObjectTypeComposer -\`\`\` - -### getIsTypeOf() - -\`\`\`js -getIsTypeOf(): GraphQLIsTypeOfFn | null | void -\`\`\` - -### setIsTypeOf() - -\`\`\`js -setIsTypeOf( - fn: GraphQLIsTypeOfFn | null | void -): this -\`\`\` - -## InputType methods - -### getInputType() - -\`\`\`js -getInputType(): GraphQLInputObjectType -\`\`\` - -### hasInputTypeComposer() - -\`\`\`js -hasInputTypeComposer(): boolean -\`\`\` - -### setInputTypeComposer() - -\`\`\`js -setInputTypeComposer( - itc: InputTypeComposer -): this -\`\`\` - -### getInputTypeComposer() - -\`\`\`js -getInputTypeComposer(): InputTypeComposer -\`\`\` - -### getITC() - -\`\`\`js -getITC(): InputTypeComposer -\`\`\` - -### removeInputTypeComposer() - -\`\`\`js -removeInputTypeComposer(): this -\`\`\` - -## Resolver methods - -### getResolvers() - -\`\`\`js -getResolvers(): Map> -\`\`\` - -### hasResolver() - -\`\`\`js -hasResolver( - name: string -): boolean -\`\`\` - -### getResolver() - -\`\`\`js -getResolver( - name: string, - middlewares: Array> -): Resolver -\`\`\` - -### setResolver() - -\`\`\`js -setResolver( - name: string, - resolver: Resolver -): this -\`\`\` - -### addResolver() - -\`\`\`js -addResolver( - resolver: Resolver | ResolverOpts -): this -\`\`\` - -### removeResolver() - -\`\`\`js -removeResolver( - resolverName: string -): this -\`\`\` - -### wrapResolver() - -\`\`\`js -wrapResolver( - resolverName: string, - cbResolver: ResolverWrapCb -): this -\`\`\` - -### wrapResolverAs() - -\`\`\`js -wrapResolverAs( - resolverName: string, - fromResolverName: string, - cbResolver: ResolverWrapCb -): this -\`\`\` - -### wrapResolverResolve() - -\`\`\`js -wrapResolverResolve( - resolverName: string, - cbNextRp: ResolverNextRpCb -): this -\`\`\` - -## Interface methods - -### getInterfaces() - -\`\`\`js -getInterfaces(): Array< - InterfaceTypeComposer | GraphQLInterfaceType -> -\`\`\` - -### setInterfaces() - -\`\`\`js -setInterfaces( - interfaces: Array | GraphQLInterfaceType> -): this -\`\`\` - -### hasInterface() - -\`\`\`js -hasInterface( - iface: string | InterfaceTypeComposer | GraphQLInterfaceType -): boolean -\`\`\` - -### addInterface() - -\`\`\`js -addInterface( - interfaceObj: InterfaceTypeComposer | GraphQLInterfaceType -): this -\`\`\` - -### removeInterface() - -\`\`\`js -removeInterface( - interfaceObj: InterfaceTypeComposer | GraphQLInterfaceType -): this -\`\`\` - -## Extensions methods - -### getExtensions() - -\`\`\`js -getExtensions(): Extensions -\`\`\` - -### setExtensions() - -\`\`\`js -setExtensions( - extensions: Extensions -): this -\`\`\` - -### extendExtensions() - -\`\`\`js -extendExtensions( - extensions: Extensions -): this -\`\`\` - -### clearExtensions() - -\`\`\`js -clearExtensions(): this -\`\`\` - -### getExtension() - -\`\`\`js -getExtension( - extensionName: string -): any -\`\`\` - -### hasExtension() - -\`\`\`js -hasExtension( - extensionName: string -): boolean -\`\`\` - -### setExtension() - -\`\`\`js -setExtension( - extensionName: string, - value: any -): this -\`\`\` - -### removeExtension() - -\`\`\`js -removeExtension( - extensionName: string -): this -\`\`\` - -### getFieldExtensions() - -\`\`\`js -getFieldExtensions( - fieldName: string -): Extensions -\`\`\` - -### setFieldExtensions() - -\`\`\`js -setFieldExtensions( - fieldName: string, - extensions: Extensions -): this -\`\`\` - -### extendFieldExtensions() - -\`\`\`js -extendFieldExtensions( - fieldName: string, - extensions: Extensions -): this -\`\`\` - -### clearFieldExtensions() - -\`\`\`js -clearFieldExtensions( - fieldName: string -): this -\`\`\` - -### getFieldExtension() - -\`\`\`js -getFieldExtension( - fieldName: string, - extensionName: string -): any -\`\`\` - -### hasFieldExtension() - -\`\`\`js -hasFieldExtension( - fieldName: string, - extensionName: string -): boolean -\`\`\` - -### setFieldExtension() - -\`\`\`js -setFieldExtension( - fieldName: string, - extensionName: string, - value: any -): this -\`\`\` - -### removeFieldExtension() - -\`\`\`js -removeFieldExtension( - fieldName: string, - extensionName: string -): this -\`\`\` - -## Misc methods - -### addRelation() - -\`\`\`js -addRelation( - fieldName: string, - relationOpts: RelationOpts -): this -\`\`\` - -### getRelations() - -\`\`\`js -getRelations(): RelationThunkMap -\`\`\` - -### setRecordIdFn() - -\`\`\`js -setRecordIdFn( - fn: GetRecordIdFn -): this -\`\`\` - -### hasRecordIdFn() - -\`\`\`js -hasRecordIdFn(): boolean -\`\`\` - -### getRecordIdFn() - -\`\`\`js -getRecordIdFn(): GetRecordIdFn -\`\`\` - -### getRecordId() - -\`\`\`js -getRecordId( - source: TSource, - args: ArgsMap, - context: TContext -): string | number -\`\`\` - -Get function that returns record id, from provided object. - -### get() - -\`\`\`js -get( - path: string | string[] -): any -\`\`\` - -## Internal type definitions - -### GetRecordIdFn - -\`\`\`js -export type GetRecordIdFn = ( - source: TSource, - args: any, - context: TContext -) => string; -\`\`\` - -### GraphQLObjectTypeExtended - -\`\`\`js -export type GraphQLObjectTypeExtended = GraphQLObjectType & { - _gqcInputTypeComposer?: InputTypeComposer; - _gqcResolvers?: Map>; - _gqcGetRecordIdFn?: GetRecordIdFn; - _gqcRelations?: RelationThunkMap; - _gqcFields?: ComposeFieldConfigMap; - _gqcInterfaces?: Array>; - _gqcExtensions?: Extensions; - description: string | null; -}; -\`\`\` - -### ComposeObjectTypeConfig - -\`\`\`js -export type ComposeObjectTypeConfig = { - name: string; - interfaces?: Thunk; - fields?: Thunk>; - isTypeOf?: GraphQLIsTypeOfFn | null; - description?: string | null; - isIntrospection?: boolean; - extensions?: Extensions; -}; -\`\`\` - -### ComposeFieldConfigMap - -\`\`\`js -// extended GraphQLFieldConfigMap -export type ComposeFieldConfigMap = ObjMap< - ComposeFieldConfig ->; -\`\`\` - -### ComposeFieldConfig - -\`\`\`js -export type ComposeFieldConfig = - | ComposeFieldConfigAsObject - | ComposeOutputType - | Thunk< - | ComposeFieldConfigAsObject - | ComposeOutputType - >; -\`\`\` - -### GraphqlFieldConfigExtended - -\`\`\`js -// extended GraphQLFieldConfig -export type GraphqlFieldConfigExtended = GraphQLFieldConfig< - TSource, - TContext -> & { projection?: any }; -\`\`\` - -### ComposeFieldConfigAsObject - -\`\`\`js -export type ComposeFieldConfigAsObject = { - type: Thunk> | GraphQLOutputType; - args?: ComposeFieldConfigArgumentMap; - resolve?: GraphQLFieldResolver; - subscribe?: GraphQLFieldResolver; - deprecationReason?: string | null; - description?: string | null; - astNode?: FieldDefinitionNode | null; - extensions?: Extensions; - [key: string]: any; -} & { $call?: void }; -\`\`\` - -### ComposeOutputType - -\`\`\`js -// Output type should not have \`TSource\`. It should not affect on main Type source! -// extended GraphQLOutputType -export type ComposeOutputType = - | GraphQLOutputType - | ObjectTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - | TypeAsString - | Resolver - | InterfaceTypeComposer - | UnionTypeComposer - | Array< - | GraphQLOutputType - | ObjectTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - | TypeAsString - | Resolver - | InterfaceTypeComposer - | UnionTypeComposer - >; -\`\`\` - -### ArgsMap - -\`\`\`js -// Compose Args ----------------------------- -export type ArgsMap = { [argName: string]: any }; -\`\`\` - -### ComposeArgumentType - -\`\`\`js -export type ComposeArgumentType = - | GraphQLInputType - | TypeAsString - | InputTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - | Array< - | GraphQLInputType - | TypeAsString - | InputTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - >; -\`\`\` - -### ComposeArgumentConfigAsObject - -\`\`\`js -export type ComposeArgumentConfigAsObject = { - type: Thunk | GraphQLInputType; - defaultValue?: any; - description?: string | null; - astNode?: InputValueDefinitionNode | null; -} & { $call?: void }; -\`\`\` - -### ComposeArgumentConfig - -\`\`\`js -export type ComposeArgumentConfig = - | ComposeArgumentConfigAsObject - | ComposeArgumentType - | (() => ComposeArgumentConfigAsObject | ComposeArgumentType); -\`\`\` - -### ComposeFieldConfigArgumentMap - -\`\`\`js -export type ComposeFieldConfigArgumentMap = { - [argName in keyof TArgs]: ComposeArgumentConfig -}; -\`\`\` - -### RelationThunkMap - -\`\`\`js -// RELATION ----------------------------- -export type RelationThunkMap = { - [fieldName: string]: Thunk>; -}; -\`\`\` - -### RelationOpts - -\`\`\`js -export type RelationOpts = - | RelationOptsWithResolver - | RelationOptsWithFieldConfig; -\`\`\` - -### RelationOptsWithResolver - -\`\`\`js -export type RelationOptsWithResolver = { - resolver: Thunk>; - prepareArgs?: RelationArgsMapper; - projection?: Partial; - description?: string | null; - deprecationReason?: string | null; - catchErrors?: boolean; -}; -\`\`\` - -### RelationOptsWithFieldConfig - -\`\`\`js -export type RelationOptsWithFieldConfig< - TSource, - TContext, - TArgs = ArgsMap -> = ComposeFieldConfigAsObject & { - resolve: GraphQLFieldResolver; -}; -\`\`\` - -### RelationArgsMapperFn - -\`\`\`js -export type RelationArgsMapperFn = ( - source: TSource, - args: TArgs, - context: TContext, - info: GraphQLResolveInfo -) => any; -\`\`\` - -### RelationArgsMapper - -\`\`\`js -export type RelationArgsMapper = { - [argName: string]: - | { [key: string]: any } - | RelationArgsMapperFn - | null - | void - | string - | number - | any[]; -}; -\`\`\` - -### ObjectTypeComposeDefinition - -\`\`\`js -export type ObjectTypeComposeDefinition = - | TypeAsString - | ComposeObjectTypeConfig - | GraphQLObjectType; -\`\`\` -" -`); -}); - -it('parse ObjectTypeComposer.d.ts', () => { - expect(TSClassParser.parseFile(file)).toMatchInlineSnapshot(` -Object { - "classData": Object { - "constructors": Array [ - Object { - "documentation": "", - "parameters": Array [ - Object { - "documentation": "", - "name": "gqType", - "type": "GraphQLObjectType", - "typeChecker": "GraphQLObjectType", - }, - Object { - "documentation": "", - "name": "schemaComposer", - "type": "SchemaComposer", - "typeChecker": "any", - }, - ], - "type": "ObjectTypeComposer", - }, - ], - "documentation": "", - "methods": Array [ - Object { - "documentation": "----------------------------------------------- -Field methods ------------------------------------------------", - "flags": Object {}, - "name": "getFields", - "parameters": Array [], - "type": "ComposeFieldConfigMap", - "typeChecker": "() => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldNames", - "parameters": Array [], - "type": "string[]", - "typeChecker": "() => string[]", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "fields", - "type": "ComposeFieldConfigMap", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(fields: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "hasField", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "boolean", - "typeChecker": "(fieldName: string) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "setField", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "fieldConfig", - "type": "ComposeFieldConfig", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(fieldName: string, fieldConfig: any) => this", - }, - Object { - "documentation": "Add new fields or replace existed in a GraphQL type", - "flags": Object {}, - "name": "addFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "newFields", - "type": "ComposeFieldConfigMap", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(newFields: any) => this", - }, - Object { - "documentation": "Add new fields or replace existed (where field name may have dots)", - "flags": Object {}, - "name": "addNestedFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "newFields", - "type": "ComposeFieldConfigMap", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(newFields: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "getField", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "ComposeFieldConfig", - "typeChecker": "(fieldName: string) => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeField", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldNameOrArray", - "type": "string | string[]", - "typeChecker": "string | string[]", - }, - ], - "type": "this", - "typeChecker": "(fieldNameOrArray: string | string[]) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeOtherFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldNameOrArray", - "type": "string | string[]", - "typeChecker": "string | string[]", - }, - ], - "type": "this", - "typeChecker": "(fieldNameOrArray: string | string[]) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "extendField", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "partialFieldConfig", - "type": "Partial>", - "typeChecker": "Partial", - }, - ], - "type": "this", - "typeChecker": "(fieldName: string, partialFieldConfig: Partial) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "reorderFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "names", - "type": "string[]", - "typeChecker": "string[]", - }, - ], - "type": "this", - "typeChecker": "(names: string[]) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "isFieldNonNull", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "boolean", - "typeChecker": "(fieldName: string) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldConfig", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "GraphQLFieldConfig", - "typeChecker": "(fieldName: string) => GraphQLFieldConfig", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldType", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "GraphQLOutputType", - "typeChecker": "(fieldName: string) => GraphQLOutputType", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldTC", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "ObjectTypeComposer", - "typeChecker": "(fieldName: string) => ObjectTypeComposer", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "makeFieldNonNull", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldNameOrArray", - "type": "string | string[]", - "typeChecker": "string | string[]", - }, - ], - "type": "this", - "typeChecker": "(fieldNameOrArray: string | string[]) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "makeFieldNullable", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldNameOrArray", - "type": "string | string[]", - "typeChecker": "string | string[]", - }, - ], - "type": "this", - "typeChecker": "(fieldNameOrArray: string | string[]) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "deprecateFields", - "parameters": Array [ - Object { - "documentation": "", - "name": "fields", - "type": "{ - [fieldName: string]: string; -} | string[] | string", - "typeChecker": "string | string[] | { [fieldName: string]: string; }", - }, - ], - "type": "this", - "typeChecker": "(fields: string | string[] | { [fieldName: string]: string; }) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldArgs", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "GraphQLFieldConfigArgumentMap", - "typeChecker": "(fieldName: string) => GraphQLFieldConfigArgumentMap", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "hasFieldArg", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "argName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "boolean", - "typeChecker": "(fieldName: string, argName: string) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldArg", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "argName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "GraphQLArgumentConfig", - "typeChecker": "(fieldName: string, argName: string) => GraphQLArgumentConfig", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldArgType", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "argName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "GraphQLInputType", - "typeChecker": "(fieldName: string, argName: string) => GraphQLInputType", - }, - Object { - "documentation": "----------------------------------------------- -Type methods ------------------------------------------------", - "flags": Object {}, - "name": "getType", - "parameters": Array [], - "type": "GraphQLObjectType", - "typeChecker": "() => GraphQLObjectType", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getTypePlural", - "parameters": Array [], - "type": "GraphQLList", - "typeChecker": "() => GraphQLList>", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getTypeNonNull", - "parameters": Array [], - "type": "GraphQLNonNull", - "typeChecker": "() => GraphQLNonNull>", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getTypeName", - "parameters": Array [], - "type": "string", - "typeChecker": "() => string", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setTypeName", - "parameters": Array [ - Object { - "documentation": "", - "name": "name", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "this", - "typeChecker": "(name: string) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getDescription", - "parameters": Array [], - "type": "string", - "typeChecker": "() => string", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setDescription", - "parameters": Array [ - Object { - "documentation": "", - "name": "description", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "this", - "typeChecker": "(description: string) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "clone", - "parameters": Array [ - Object { - "documentation": "", - "name": "newTypeName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "ObjectTypeComposer", - "typeChecker": "(newTypeName: string) => ObjectTypeComposer", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getIsTypeOf", - "parameters": Array [], - "type": "GraphQLIsTypeOfFn | null | void", - "typeChecker": "() => void | GraphQLIsTypeOfFn", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setIsTypeOf", - "parameters": Array [ - Object { - "documentation": "", - "name": "fn", - "type": "GraphQLIsTypeOfFn | null | void", - "typeChecker": "void | GraphQLIsTypeOfFn", - }, - ], - "type": "this", - "typeChecker": "(fn: void | GraphQLIsTypeOfFn) => this", - }, - Object { - "documentation": "----------------------------------------------- -InputType methods ------------------------------------------------", - "flags": Object {}, - "name": "getInputType", - "parameters": Array [], - "type": "GraphQLInputObjectType", - "typeChecker": "() => GraphQLInputObjectType", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "hasInputTypeComposer", - "parameters": Array [], - "type": "boolean", - "typeChecker": "() => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setInputTypeComposer", - "parameters": Array [ - Object { - "documentation": "", - "name": "itc", - "type": "InputTypeComposer", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(itc: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getInputTypeComposer", - "parameters": Array [], - "type": "InputTypeComposer", - "typeChecker": "() => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getITC", - "parameters": Array [], - "type": "InputTypeComposer", - "typeChecker": "() => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeInputTypeComposer", - "parameters": Array [], - "type": "this", - "typeChecker": "() => this", - }, - Object { - "documentation": "----------------------------------------------- -Resolver methods ------------------------------------------------", - "flags": Object {}, - "name": "getResolvers", - "parameters": Array [], - "type": "Map>", - "typeChecker": "() => Map", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "hasResolver", - "parameters": Array [ - Object { - "documentation": "", - "name": "name", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "boolean", - "typeChecker": "(name: string) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "getResolver", - "parameters": Array [ - Object { - "documentation": "", - "name": "name", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "middlewares", - "type": "Array>", - "typeChecker": "any[]", - }, - ], - "type": "Resolver", - "typeChecker": "(name: string, middlewares?: any[]) => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "setResolver", - "parameters": Array [ - Object { - "documentation": "", - "name": "name", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "resolver", - "type": "Resolver", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(name: string, resolver: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "addResolver", - "parameters": Array [ - Object { - "documentation": "", - "name": "resolver", - "type": "Resolver | ResolverOpts", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(resolver: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeResolver", - "parameters": Array [ - Object { - "documentation": "", - "name": "resolverName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "this", - "typeChecker": "(resolverName: string) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "wrapResolver", - "parameters": Array [ - Object { - "documentation": "", - "name": "resolverName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "cbResolver", - "type": "ResolverWrapCb", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(resolverName: string, cbResolver: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "wrapResolverAs", - "parameters": Array [ - Object { - "documentation": "", - "name": "resolverName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "fromResolverName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "cbResolver", - "type": "ResolverWrapCb", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(resolverName: string, fromResolverName: string, cbResolver: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "generics": "", - "name": "wrapResolverResolve", - "parameters": Array [ - Object { - "documentation": "", - "name": "resolverName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "cbNextRp", - "type": "ResolverNextRpCb", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(resolverName: string, cbNextRp: any) => this", - }, - Object { - "documentation": "----------------------------------------------- -Interface methods ------------------------------------------------", - "flags": Object {}, - "name": "getInterfaces", - "parameters": Array [], - "type": "Array | GraphQLInterfaceType>", - "typeChecker": "() => any[]", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setInterfaces", - "parameters": Array [ - Object { - "documentation": "", - "name": "interfaces", - "type": "Array | GraphQLInterfaceType>", - "typeChecker": "any[]", - }, - ], - "type": "this", - "typeChecker": "(interfaces: any[]) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "hasInterface", - "parameters": Array [ - Object { - "documentation": "", - "name": "iface", - "type": "string | InterfaceTypeComposer | GraphQLInterfaceType", - "typeChecker": "any", - }, - ], - "type": "boolean", - "typeChecker": "(iface: any) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "addInterface", - "parameters": Array [ - Object { - "documentation": "", - "name": "interfaceObj", - "type": "InterfaceTypeComposer | GraphQLInterfaceType", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(interfaceObj: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeInterface", - "parameters": Array [ - Object { - "documentation": "", - "name": "interfaceObj", - "type": "InterfaceTypeComposer | GraphQLInterfaceType", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(interfaceObj: any) => this", - }, - Object { - "documentation": "----------------------------------------------- -Extensions methods ------------------------------------------------", - "flags": Object {}, - "name": "getExtensions", - "parameters": Array [], - "type": "Extensions", - "typeChecker": "() => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setExtensions", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensions", - "type": "Extensions", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(extensions: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "extendExtensions", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensions", - "type": "Extensions", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(extensions: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "clearExtensions", - "parameters": Array [], - "type": "this", - "typeChecker": "() => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "any", - "typeChecker": "(extensionName: string) => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "hasExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "boolean", - "typeChecker": "(extensionName: string) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "value", - "type": "any", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(extensionName: string, value: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "this", - "typeChecker": "(extensionName: string) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldExtensions", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "Extensions", - "typeChecker": "(fieldName: string) => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setFieldExtensions", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "extensions", - "type": "Extensions", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(fieldName: string, extensions: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "extendFieldExtensions", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "extensions", - "type": "Extensions", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(fieldName: string, extensions: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "clearFieldExtensions", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "this", - "typeChecker": "(fieldName: string) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getFieldExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "any", - "typeChecker": "(fieldName: string, extensionName: string) => any", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "hasFieldExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "boolean", - "typeChecker": "(fieldName: string, extensionName: string) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setFieldExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "value", - "type": "any", - "typeChecker": "any", - }, - ], - "type": "this", - "typeChecker": "(fieldName: string, extensionName: string, value: any) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "removeFieldExtension", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "extensionName", - "type": "string", - "typeChecker": "string", - }, - ], - "type": "this", - "typeChecker": "(fieldName: string, extensionName: string) => this", - }, - Object { - "documentation": "----------------------------------------------- -Misc methods ------------------------------------------------", - "flags": Object {}, - "generics": "", - "name": "addRelation", - "parameters": Array [ - Object { - "documentation": "", - "name": "fieldName", - "type": "string", - "typeChecker": "string", - }, - Object { - "documentation": "", - "name": "relationOpts", - "type": "RelationOpts", - "typeChecker": "RelationOpts", - }, - ], - "type": "this", - "typeChecker": "(fieldName: string, relationOpts: RelationOpts) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getRelations", - "parameters": Array [], - "type": "RelationThunkMap", - "typeChecker": "() => RelationThunkMap", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "setRecordIdFn", - "parameters": Array [ - Object { - "documentation": "", - "name": "fn", - "type": "GetRecordIdFn", - "typeChecker": "GetRecordIdFn", - }, - ], - "type": "this", - "typeChecker": "(fn: GetRecordIdFn) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "hasRecordIdFn", - "parameters": Array [], - "type": "boolean", - "typeChecker": "() => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getRecordIdFn", - "parameters": Array [], - "type": "GetRecordIdFn", - "typeChecker": "() => GetRecordIdFn", - }, - Object { - "documentation": "Get function that returns record id, from provided object.", - "flags": Object {}, - "name": "getRecordId", - "parameters": Array [ - Object { - "documentation": "", - "name": "source", - "type": "TSource", - "typeChecker": "TSource", - }, - Object { - "documentation": "", - "name": "args", - "type": "ArgsMap", - "typeChecker": "ArgsMap", - }, - Object { - "documentation": "", - "name": "context", - "type": "TContext", - "typeChecker": "TContext", - }, - ], - "type": "string | number", - "typeChecker": "(source: TSource, args?: ArgsMap, context?: TContext) => string | number", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "get", - "parameters": Array [ - Object { - "documentation": "", - "name": "path", - "type": "string | string[]", - "typeChecker": "string | string[]", - }, - ], - "type": "any", - "typeChecker": "(path: string | string[]) => any", - }, - ], - "name": "ObjectTypeComposer", - "properties": Array [ - Object { - "documentation": "", - "flags": Object {}, - "name": "schemaComposer", - "type": "SchemaComposer", - "typeChecker": "any", - }, - Object { - "documentation": "", - "flags": Object { - "protected": true, - }, - "name": "gqType", - "type": "GraphQLObjectTypeExtended", - "typeChecker": "GraphQLObjectTypeExtended", - }, - ], - "staticMethods": Array [ - Object { - "documentation": "", - "flags": Object { - "static": true, - }, - "generics": "", - "name": "create", - "parameters": Array [ - Object { - "documentation": "", - "name": "typeDef", - "type": "ObjectTypeComposeDefinition", - "typeChecker": "any", - }, - Object { - "documentation": "", - "name": "schemaComposer", - "type": "SchemaComposer", - "typeChecker": "any", - }, - ], - "type": "ObjectTypeComposer", - "typeChecker": "(typeDef: any, schemaComposer: any) => ObjectTypeComposer", - }, - Object { - "documentation": "", - "flags": Object { - "static": true, - }, - "generics": "", - "name": "createTemp", - "parameters": Array [ - Object { - "documentation": "", - "name": "typeDef", - "type": "ObjectTypeComposeDefinition", - "typeChecker": "any", - }, - Object { - "documentation": "", - "name": "schemaComposer", - "type": "SchemaComposer", - "typeChecker": "any", - }, - ], - "type": "ObjectTypeComposer", - "typeChecker": "(typeDef: any, schemaComposer?: any) => ObjectTypeComposer", - }, - ], - "staticProperties": Array [], - "type": "", - "typeChecker": "typeof ObjectTypeComposer", - }, - "interfaces": Array [ - Object { - "code": " - -export type GetRecordIdFn = ( - source: TSource, - args: any, - context: TContext -) => string;", - "name": " GetRecordIdFn", - }, - Object { - "code": " - -export type GraphQLObjectTypeExtended = GraphQLObjectType & { - _gqcInputTypeComposer?: InputTypeComposer; - _gqcResolvers?: Map>; - _gqcGetRecordIdFn?: GetRecordIdFn; - _gqcRelations?: RelationThunkMap; - _gqcFields?: ComposeFieldConfigMap; - _gqcInterfaces?: Array>; - _gqcExtensions?: Extensions; - description: string | null; -};", - "name": " GraphQLObjectTypeExtended", - }, - Object { - "code": " - -export type ComposeObjectTypeConfig = { - name: string; - interfaces?: Thunk; - fields?: Thunk>; - isTypeOf?: GraphQLIsTypeOfFn | null; - description?: string | null; - isIntrospection?: boolean; - extensions?: Extensions; -};", - "name": " ComposeObjectTypeConfig", - }, - Object { - "code": " - -// extended GraphQLFieldConfigMap -export type ComposeFieldConfigMap = ObjMap< - ComposeFieldConfig ->;", - "name": " ComposeFieldConfigMap", - }, - Object { - "code": " - -export type ComposeFieldConfig = - | ComposeFieldConfigAsObject - | ComposeOutputType - | Thunk< - | ComposeFieldConfigAsObject - | ComposeOutputType - >;", - "name": " ComposeFieldConfig", - }, - Object { - "code": " - -// extended GraphQLFieldConfig -export type GraphqlFieldConfigExtended = GraphQLFieldConfig< - TSource, - TContext -> & { projection?: any };", - "name": " GraphqlFieldConfigExtended", - }, - Object { - "code": " - -export type ComposeFieldConfigAsObject = { - type: Thunk> | GraphQLOutputType; - args?: ComposeFieldConfigArgumentMap; - resolve?: GraphQLFieldResolver; - subscribe?: GraphQLFieldResolver; - deprecationReason?: string | null; - description?: string | null; - astNode?: FieldDefinitionNode | null; - extensions?: Extensions; - [key: string]: any; -} & { $call?: void };", - "name": " ComposeFieldConfigAsObject", - }, - Object { - "code": " - -// Output type should not have \`TSource\`. It should not affect on main Type source! -// extended GraphQLOutputType -export type ComposeOutputType = - | GraphQLOutputType - | ObjectTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - | TypeAsString - | Resolver - | InterfaceTypeComposer - | UnionTypeComposer - | Array< - | GraphQLOutputType - | ObjectTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - | TypeAsString - | Resolver - | InterfaceTypeComposer - | UnionTypeComposer - >;", - "name": " ComposeOutputType", - }, - Object { - "code": " - -// Compose Args ----------------------------- -export type ArgsMap = { [argName: string]: any };", - "name": " ArgsMap", - }, - Object { - "code": " -export type ComposeArgumentType = - | GraphQLInputType - | TypeAsString - | InputTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - | Array< - | GraphQLInputType - | TypeAsString - | InputTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - >;", - "name": " ComposeArgumentType", - }, - Object { - "code": " - -export type ComposeArgumentConfigAsObject = { - type: Thunk | GraphQLInputType; - defaultValue?: any; - description?: string | null; - astNode?: InputValueDefinitionNode | null; -} & { $call?: void };", - "name": " ComposeArgumentConfigAsObject", - }, - Object { - "code": " - -export type ComposeArgumentConfig = - | ComposeArgumentConfigAsObject - | ComposeArgumentType - | (() => ComposeArgumentConfigAsObject | ComposeArgumentType);", - "name": " ComposeArgumentConfig", - }, - Object { - "code": " - -export type ComposeFieldConfigArgumentMap = { - [argName in keyof TArgs]: ComposeArgumentConfig -};", - "name": " ComposeFieldConfigArgumentMap", - }, - Object { - "code": " - -// RELATION ----------------------------- -export type RelationThunkMap = { - [fieldName: string]: Thunk>; -};", - "name": " RelationThunkMap", - }, - Object { - "code": " - -export type RelationOpts = - | RelationOptsWithResolver - | RelationOptsWithFieldConfig;", - "name": " RelationOpts", - }, - Object { - "code": " - -export type RelationOptsWithResolver = { - resolver: Thunk>; - prepareArgs?: RelationArgsMapper; - projection?: Partial; - description?: string | null; - deprecationReason?: string | null; - catchErrors?: boolean; -};", - "name": " RelationOptsWithResolver", - }, - Object { - "code": " - -export type RelationOptsWithFieldConfig< - TSource, - TContext, - TArgs = ArgsMap -> = ComposeFieldConfigAsObject & { - resolve: GraphQLFieldResolver; -};", - "name": " RelationOptsWithFieldConfig", - }, - Object { - "code": " - -export type RelationArgsMapperFn = ( - source: TSource, - args: TArgs, - context: TContext, - info: GraphQLResolveInfo -) => any;", - "name": " RelationArgsMapperFn", - }, - Object { - "code": " - -export type RelationArgsMapper = { - [argName: string]: - | { [key: string]: any } - | RelationArgsMapperFn - | null - | void - | string - | number - | any[]; -};", - "name": " RelationArgsMapper", - }, - Object { - "code": " - -export type ObjectTypeComposeDefinition = - | TypeAsString - | ComposeObjectTypeConfig - | GraphQLObjectType;", - "name": " ObjectTypeComposeDefinition", - }, - ], -} -`); -}); diff --git a/gen-api/__tests__/fixtures/ObjectTypeComposer.d.ts b/gen-api/__tests__/fixtures/ObjectTypeComposer.d.ts deleted file mode 100644 index d7a553bf..00000000 --- a/gen-api/__tests__/fixtures/ObjectTypeComposer.d.ts +++ /dev/null @@ -1,457 +0,0 @@ -import { - FieldDefinitionNode, - GraphQLArgumentConfig, - GraphQLFieldConfig, - GraphQLFieldConfigArgumentMap, - GraphQLFieldConfigMap, - GraphQLFieldResolver, - GraphQLInputObjectType, - GraphQLInputType, - GraphQLInterfaceType, - GraphQLIsTypeOfFn, - GraphQLList, - GraphQLNonNull, - GraphQLObjectType, - GraphQLOutputType, - GraphQLResolveInfo, - InputValueDefinitionNode, -} from 'graphql'; -import { ScalarTypeComposer } from './ScalarTypeComposer'; -import { EnumTypeComposer } from './EnumTypeComposer'; -import { InputTypeComposer } from './InputTypeComposer'; -import { InterfaceTypeComposer } from './InterfaceTypeComposer'; -import { UnionTypeComposer } from './UnionTypeComposer'; -import { - Resolver, - ResolverNextRpCb, - ResolverOpts, - ResolverWrapCb, - ResolverMiddleware, -} from './Resolver'; -import { SchemaComposer } from './SchemaComposer'; -import { TypeAsString } from './TypeMapper'; -import { ObjMap, Thunk, Extensions } from './utils/definitions'; -import { ProjectionType } from './utils/projection'; - -export type GetRecordIdFn = ( - source: TSource, - args: any, - context: TContext -) => string; - -export type GraphQLObjectTypeExtended = GraphQLObjectType & { - _gqcInputTypeComposer?: InputTypeComposer; - _gqcResolvers?: Map>; - _gqcGetRecordIdFn?: GetRecordIdFn; - _gqcRelations?: RelationThunkMap; - _gqcFields?: ComposeFieldConfigMap; - _gqcInterfaces?: Array>; - _gqcExtensions?: Extensions; - description: string | null; -}; - -export type ComposeObjectTypeConfig = { - name: string; - interfaces?: Thunk; - fields?: Thunk>; - isTypeOf?: GraphQLIsTypeOfFn | null; - description?: string | null; - isIntrospection?: boolean; - extensions?: Extensions; -}; - -// extended GraphQLFieldConfigMap -export type ComposeFieldConfigMap = ObjMap< - ComposeFieldConfig ->; - -export type ComposeFieldConfig = - | ComposeFieldConfigAsObject - | ComposeOutputType - | Thunk< - | ComposeFieldConfigAsObject - | ComposeOutputType - >; - -// extended GraphQLFieldConfig -export type GraphqlFieldConfigExtended = GraphQLFieldConfig< - TSource, - TContext -> & { projection?: any }; - -export type ComposeFieldConfigAsObject = { - type: Thunk> | GraphQLOutputType; - args?: ComposeFieldConfigArgumentMap; - resolve?: GraphQLFieldResolver; - subscribe?: GraphQLFieldResolver; - deprecationReason?: string | null; - description?: string | null; - astNode?: FieldDefinitionNode | null; - extensions?: Extensions; - [key: string]: any; -} & { $call?: void }; - -// Output type should not have `TSource`. It should not affect on main Type source! -// extended GraphQLOutputType -export type ComposeOutputType = - | GraphQLOutputType - | ObjectTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - | TypeAsString - | Resolver - | InterfaceTypeComposer - | UnionTypeComposer - | Array< - | GraphQLOutputType - | ObjectTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - | TypeAsString - | Resolver - | InterfaceTypeComposer - | UnionTypeComposer - >; - -export function isComposeOutputType(type: any): boolean; - -// Compose Args ----------------------------- -export type ArgsMap = { [argName: string]: any }; -export type ComposeArgumentType = - | GraphQLInputType - | TypeAsString - | InputTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - | Array< - | GraphQLInputType - | TypeAsString - | InputTypeComposer - | EnumTypeComposer - | ScalarTypeComposer - >; - -export type ComposeArgumentConfigAsObject = { - type: Thunk | GraphQLInputType; - defaultValue?: any; - description?: string | null; - astNode?: InputValueDefinitionNode | null; -} & { $call?: void }; - -export type ComposeArgumentConfig = - | ComposeArgumentConfigAsObject - | ComposeArgumentType - | (() => ComposeArgumentConfigAsObject | ComposeArgumentType); - -export type ComposeFieldConfigArgumentMap = { - [argName in keyof TArgs]: ComposeArgumentConfig -}; - -// RELATION ----------------------------- -export type RelationThunkMap = { - [fieldName: string]: Thunk>; -}; - -export type RelationOpts = - | RelationOptsWithResolver - | RelationOptsWithFieldConfig; - -export type RelationOptsWithResolver = { - resolver: Thunk>; - prepareArgs?: RelationArgsMapper; - projection?: Partial; - description?: string | null; - deprecationReason?: string | null; - catchErrors?: boolean; -}; - -export type RelationOptsWithFieldConfig< - TSource, - TContext, - TArgs = ArgsMap -> = ComposeFieldConfigAsObject & { - resolve: GraphQLFieldResolver; -}; - -export type RelationArgsMapperFn = ( - source: TSource, - args: TArgs, - context: TContext, - info: GraphQLResolveInfo -) => any; - -export type RelationArgsMapper = { - [argName: string]: - | { [key: string]: any } - | RelationArgsMapperFn - | null - | void - | string - | number - | any[]; -}; - -export type ObjectTypeComposeDefinition = - | TypeAsString - | ComposeObjectTypeConfig - | GraphQLObjectType; - -export class ObjectTypeComposer { - public schemaComposer: SchemaComposer; - - protected gqType: GraphQLObjectTypeExtended; - - public constructor(gqType: GraphQLObjectType, schemaComposer: SchemaComposer); - - public static create( - typeDef: ObjectTypeComposeDefinition, - schemaComposer: SchemaComposer - ): ObjectTypeComposer; - - public static createTemp( - typeDef: ObjectTypeComposeDefinition, - schemaComposer?: SchemaComposer - ): ObjectTypeComposer; - - /** - * ----------------------------------------------- - * Field methods - * ----------------------------------------------- - **/ - - public getFields(): ComposeFieldConfigMap; - - public getFieldNames(): string[]; - - public setFields(fields: ComposeFieldConfigMap): this; - - public hasField(fieldName: string): boolean; - - public setField( - fieldName: string, - fieldConfig: ComposeFieldConfig - ): this; - - /** - * Add new fields or replace existed in a GraphQL type - */ - public addFields(newFields: ComposeFieldConfigMap): this; - - /** - * Add new fields or replace existed (where field name may have dots) - */ - public addNestedFields(newFields: ComposeFieldConfigMap): this; - - public getField(fieldName: string): ComposeFieldConfig; - - public removeField(fieldNameOrArray: string | string[]): this; - - public removeOtherFields(fieldNameOrArray: string | string[]): this; - - public extendField( - fieldName: string, - partialFieldConfig: Partial> - ): this; - - public reorderFields(names: string[]): this; - - public isFieldNonNull(fieldName: string): boolean; - - public getFieldConfig(fieldName: string): GraphQLFieldConfig; - - public getFieldType(fieldName: string): GraphQLOutputType; - - public getFieldTC(fieldName: string): ObjectTypeComposer; - - public makeFieldNonNull(fieldNameOrArray: string | string[]): this; - - public makeFieldNullable(fieldNameOrArray: string | string[]): this; - - public deprecateFields(fields: { [fieldName: string]: string } | string[] | string): this; - - public getFieldArgs(fieldName: string): GraphQLFieldConfigArgumentMap; - - public hasFieldArg(fieldName: string, argName: string): boolean; - - public getFieldArg(fieldName: string, argName: string): GraphQLArgumentConfig; - - public getFieldArgType(fieldName: string, argName: string): GraphQLInputType; - - /** - * ----------------------------------------------- - * Type methods - * ----------------------------------------------- - **/ - - public getType(): GraphQLObjectType; - - public getTypePlural(): GraphQLList; - - public getTypeNonNull(): GraphQLNonNull; - - public getTypeName(): string; - - public setTypeName(name: string): this; - - public getDescription(): string; - - public setDescription(description: string): this; - - public clone( - newTypeName: string - ): ObjectTypeComposer; - - public getIsTypeOf(): GraphQLIsTypeOfFn | null | void; - - public setIsTypeOf(fn: GraphQLIsTypeOfFn | null | void): this; - - /** - * ----------------------------------------------- - * InputType methods - * ----------------------------------------------- - **/ - - public getInputType(): GraphQLInputObjectType; - - public hasInputTypeComposer(): boolean; - - public setInputTypeComposer(itc: InputTypeComposer): this; - - public getInputTypeComposer(): InputTypeComposer; - - public getITC(): InputTypeComposer; - - public removeInputTypeComposer(): this; - - /** - * ----------------------------------------------- - * Resolver methods - * ----------------------------------------------- - **/ - - public getResolvers(): Map>; - - public hasResolver(name: string): boolean; - - public getResolver( - name: string, - middlewares?: Array> - ): Resolver; - - public setResolver( - name: string, - resolver: Resolver - ): this; - - public addResolver( - resolver: - | Resolver - | ResolverOpts - ): this; - - public removeResolver(resolverName: string): this; - - public wrapResolver( - resolverName: string, - cbResolver: ResolverWrapCb - ): this; - - public wrapResolverAs( - resolverName: string, - fromResolverName: string, - cbResolver: ResolverWrapCb - ): this; - - public wrapResolverResolve( - resolverName: string, - cbNextRp: ResolverNextRpCb - ): this; - - /** - * ----------------------------------------------- - * Interface methods - * ----------------------------------------------- - **/ - - public getInterfaces(): Array | GraphQLInterfaceType>; - - public setInterfaces( - interfaces: Array | GraphQLInterfaceType> - ): this; - - public hasInterface( - iface: string | InterfaceTypeComposer | GraphQLInterfaceType - ): boolean; - - public addInterface( - interfaceObj: InterfaceTypeComposer | GraphQLInterfaceType - ): this; - - public removeInterface( - interfaceObj: InterfaceTypeComposer | GraphQLInterfaceType - ): this; - - /** - * ----------------------------------------------- - * Extensions methods - * ----------------------------------------------- - **/ - - public getExtensions(): Extensions; - - public setExtensions(extensions: Extensions): this; - - public extendExtensions(extensions: Extensions): this; - - public clearExtensions(): this; - - public getExtension(extensionName: string): any; - - public hasExtension(extensionName: string): boolean; - - public setExtension(extensionName: string, value: any): this; - - public removeExtension(extensionName: string): this; - - public getFieldExtensions(fieldName: string): Extensions; - - public setFieldExtensions(fieldName: string, extensions: Extensions): this; - - public extendFieldExtensions(fieldName: string, extensions: Extensions): this; - - public clearFieldExtensions(fieldName: string): this; - - public getFieldExtension(fieldName: string, extensionName: string): any; - - public hasFieldExtension(fieldName: string, extensionName: string): boolean; - - public setFieldExtension(fieldName: string, extensionName: string, value: any): this; - - public removeFieldExtension(fieldName: string, extensionName: string): this; - - /** - * ----------------------------------------------- - * Misc methods - * ----------------------------------------------- - **/ - - public addRelation( - fieldName: string, - relationOpts: RelationOpts - ): this; - - public getRelations(): RelationThunkMap; - - public setRecordIdFn(fn: GetRecordIdFn): this; - - public hasRecordIdFn(): boolean; - - public getRecordIdFn(): GetRecordIdFn; - - /** - * Get function that returns record id, from provided object. - */ - public getRecordId(source: TSource, args?: ArgsMap, context?: TContext): string | number; - - public get(path: string | string[]): any; -} diff --git a/gen-api/__tests__/fixtures/TypeStorage-test.ts b/gen-api/__tests__/fixtures/TypeStorage-test.ts deleted file mode 100644 index a8ff5035..00000000 --- a/gen-api/__tests__/fixtures/TypeStorage-test.ts +++ /dev/null @@ -1,444 +0,0 @@ -import TSClassParser from '../../TSClassParser'; -import MarkdownGenerator from '../../MarkdownGenerator'; - -const file = 'gen-api/__tests__/fixtures/TypeStorage.d.ts'; - -it('markdown TypeStorage.d.ts', () => { - const data = TSClassParser.parseFile(file); - expect(MarkdownGenerator.generate(data.classData, data.interfaces)).toMatchInlineSnapshot(` -"--- -id: TypeStorage -title: TypeStorage -custom_edit_url: https://github.com/graphql-compose/graphql-compose/blob/master/src/TypeStorage.d.ts ---- - - - -This is TypeStorage class -Helps to create any type -[Go TO](http://graphql.org) - -## Static properties - -### static statProperty - -\`\`\`js -static statProperty: boolean; -\`\`\` - -## Static methods - -### static findMany() - -\`\`\`js -static findMany( - q: any -): string[] -\`\`\` - -## Properties - -### types - -\`\`\`js -types: Map; -\`\`\` - -### size - -\`\`\`js -readonly size: number; -\`\`\` - -## Methods - -### clear() - -\`\`\`js -clear(): void -\`\`\` - -### delete() - -\`\`\`js -delete( - key: K -): boolean -\`\`\` - -### entries() - -\`\`\`js -entries(): Iterator<[K, V]> -\`\`\` - -### forEach() - -\`\`\`js -forEach( - callbackfn: (value: V, index: K, map: Map) => any, - thisArg: any -): void -\`\`\` - -### get() - -\`\`\`js -get( - key: K -): V -\`\`\` - -### has() - -\`\`\`js -has( - key: K -): boolean -\`\`\` - -### keys() - -\`\`\`js -keys(): Iterator -\`\`\` - -### set() - -\`\`\`js -set( - key: K, - value: V -): this -\`\`\` - -Set value to storage - -### values() - -\`\`\`js -values(): Iterator -\`\`\` - -### add() - -\`\`\`js -add( - value: V -): string | null -\`\`\` - -## Custom methods - -You may use custom methods -or write your own - -### hasInstance() - -\`\`\`js -hasInstance( - key: K, - ClassObj: any -): boolean -\`\`\` - -Ok - -### getOrSet() - -\`\`\`js -getOrSet( - key: K, - typeOrThunk: V | (() => V) -): V -\`\`\` -" -`); -}); - -it('parse TypeStorage.d.ts', () => { - expect(TSClassParser.parseFile(file)).toMatchInlineSnapshot(` -Object { - "classData": Object { - "constructors": Array [ - Object { - "documentation": "", - "parameters": Array [ - Object { - "documentation": "", - "name": "test", - "type": "boolean", - "typeChecker": "boolean", - }, - ], - "type": "TypeStorage", - }, - ], - "documentation": "This is TypeStorage class -Helps to create any type -[Go TO](http://graphql.org)", - "methods": Array [ - Object { - "documentation": "", - "flags": Object {}, - "name": "clear", - "parameters": Array [], - "type": "void", - "typeChecker": "() => void", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "delete", - "parameters": Array [ - Object { - "documentation": "", - "name": "key", - "type": "K", - "typeChecker": "K", - }, - ], - "type": "boolean", - "typeChecker": "(key: K) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "entries", - "parameters": Array [], - "type": "Iterator<[K, V]>", - "typeChecker": "() => Iterator<[K, V]>", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "forEach", - "parameters": Array [ - Object { - "documentation": "", - "name": "callbackfn", - "type": "(value: V, index: K, map: Map) => any", - "typeChecker": "(value: V, index: K, map: Map) => any", - }, - Object { - "documentation": "", - "name": "thisArg", - "type": "any", - "typeChecker": "any", - }, - ], - "type": "void", - "typeChecker": "(callbackfn: (value: V, index: K, map: Map) => any, thisArg?: any) => void", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "get", - "parameters": Array [ - Object { - "documentation": "", - "name": "key", - "type": "K", - "typeChecker": "K", - }, - ], - "type": "V", - "typeChecker": "(key: K) => V", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "has", - "parameters": Array [ - Object { - "documentation": "", - "name": "key", - "type": "K", - "typeChecker": "K", - }, - ], - "type": "boolean", - "typeChecker": "(key: K) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "keys", - "parameters": Array [], - "type": "Iterator", - "typeChecker": "() => Iterator", - }, - Object { - "documentation": "Set value to storage", - "flags": Object {}, - "name": "set", - "parameters": Array [ - Object { - "documentation": "", - "name": "key", - "type": "K", - "typeChecker": "K", - }, - Object { - "documentation": "", - "name": "value", - "type": "V", - "typeChecker": "V", - }, - ], - "type": "this", - "typeChecker": "(key: K, value: V) => this", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "values", - "parameters": Array [], - "type": "Iterator", - "typeChecker": "() => Iterator", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "add", - "parameters": Array [ - Object { - "documentation": "", - "name": "value", - "type": "V", - "typeChecker": "V", - }, - ], - "type": "string | null", - "typeChecker": "(value: V) => string", - }, - Object { - "documentation": "----------------------------------------------- -Custom methods - -You may use custom methods -or write your own ------------------------------------------------ -Ok", - "flags": Object {}, - "name": "hasInstance", - "parameters": Array [ - Object { - "documentation": "", - "name": "key", - "type": "K", - "typeChecker": "K", - }, - Object { - "documentation": "", - "name": "ClassObj", - "type": "any", - "typeChecker": "any", - }, - ], - "type": "boolean", - "typeChecker": "(key: K, ClassObj: any) => boolean", - }, - Object { - "documentation": "", - "flags": Object {}, - "name": "getOrSet", - "parameters": Array [ - Object { - "documentation": "", - "name": "key", - "type": "K", - "typeChecker": "K", - }, - Object { - "documentation": "", - "name": "typeOrThunk", - "type": "V | (() => V)", - "typeChecker": "V | (() => V)", - }, - ], - "type": "V", - "typeChecker": "(key: K, typeOrThunk: V | (() => V)) => V", - }, - ], - "name": "TypeStorage", - "properties": Array [ - Object { - "documentation": "", - "flags": Object {}, - "name": "types", - "type": "Map", - "typeChecker": "Map", - }, - Object { - "documentation": "", - "flags": Object { - "readonly": true, - }, - "name": "size", - "type": "number", - "typeChecker": "number", - }, - Object { - "documentation": "", - "flags": Object { - "protected": true, - }, - "name": "prot", - "type": "number", - "typeChecker": "number", - }, - Object { - "documentation": "", - "flags": Object { - "private": true, - }, - "name": "priv", - "type": "number", - "typeChecker": "number", - }, - ], - "staticMethods": Array [ - Object { - "documentation": "", - "flags": Object { - "static": true, - }, - "name": "findMany", - "parameters": Array [ - Object { - "documentation": "", - "name": "q", - "type": "any", - "typeChecker": "any", - }, - ], - "type": "string[]", - "typeChecker": "(q: any) => string[]", - }, - ], - "staticProperties": Array [ - Object { - "documentation": "", - "flags": Object { - "static": true, - }, - "name": "statProperty", - "type": "boolean", - "typeChecker": "boolean", - }, - ], - "type": "", - "typeChecker": "typeof TypeStorage", - }, - "interfaces": Array [], -} -`); -}); diff --git a/gen-api/__tests__/fixtures/TypeStorage.d.ts b/gen-api/__tests__/fixtures/TypeStorage.d.ts deleted file mode 100644 index daf14ec4..00000000 --- a/gen-api/__tests__/fixtures/TypeStorage.d.ts +++ /dev/null @@ -1,57 +0,0 @@ -/** - * This is TypeStorage class - * Helps to create any type - * [Go TO](http://graphql.org) - */ -export class TypeStorage { - public types: Map; - public readonly size: number; - protected prot: number; - private priv: number; - - public static findMany(q: any): string[]; - public static statProperty: boolean; - - public constructor(test: boolean); - - public clear(): void; - - public delete(key: K): boolean; - - public entries(): Iterator<[K, V]>; - - public forEach(callbackfn: (value: V, index: K, map: Map) => any, thisArg?: any): void; - - public get(key: K): V; - - public has(key: K): boolean; - - public keys(): Iterator; - - /** - * Set value to storage - */ - public set(key: K, value: V): this; - - public values(): Iterator; - - public add(value: V): string | null; - - /** - * ----------------------------------------------- - * Custom methods - * - * You may use custom methods - * or write your own - * ----------------------------------------------- - **/ - - /** - * Ok - * @param key - * @param ClassObj - */ - public hasInstance(key: K, ClassObj: any): boolean; - - public getOrSet(key: K, typeOrThunk: V | (() => V)): V; -} diff --git a/gen-api/__tests__/ts-helper-test.ts b/gen-api/__tests__/ts-helper-test.ts deleted file mode 100644 index 09d6db29..00000000 --- a/gen-api/__tests__/ts-helper-test.ts +++ /dev/null @@ -1,211 +0,0 @@ -import ts from 'typescript'; - -describe('some checks', () => { - it('t', () => { - expect(ts).toBeDefined(); - }); - - // it('ttt', () => { - // // hardcode our input file - // const filePath = 'src/__fixtures__/TypeStorage.d.ts'; - - // // create a program instance, which is a collection of source files - // // in this case we only have one source file - // const program = ts.createProgram([filePath], {}); - - // // pull off the typechecker instance from our program - // const checker = program.getTypeChecker(); - - // // get our models.ts source file AST - // const source = program.getSourceFile(filePath); - // // console.log(source); - - // // create TS printer instance which gives us utilities to pretty print our final AST - // const printer = ts.createPrinter(); - - // // helper to give us Node string type given kind - // const syntaxToKind = (kind: ts.Node['kind']) => { - // return ts.SyntaxKind[kind]; - // }; - // // debugger; - // // visit each node in the root AST and log its kind - // ts.forEachChild(source, (node) => { - // console.log(syntaxToKind(node.kind)); - - // if (ts.isClassDeclaration(node) && node.name) { - // ts.forEachChild(node, (n) => { - // console.log('--', syntaxToKind(n.kind)); - // if (ts.isMethodDeclaration(n)) { - // console.log(n.name.getText()); - // if (n.parameters.length > 0) { - // n.parameters.forEach((nn) => { - // console.log('----', nn.name.getText()); - // if (nn.type) { - // console.log('----', nn.type.getText()); - // } - // }); - // } - // // console.log(n); - // // console.log(printer.printNode(ts.EmitHint.Unspecified, n)); - // } - // }); - - // // console.log('111', printer.printNode(4, node)); - // // console.log(node.kind); - // const symbol = checker.getSymbolAtLocation(node.name); - // const type = checker.getDeclaredTypeOfSymbol(symbol); - // const properties = checker.getPropertiesOfType(type); - // node.forEachChild((c) => { - // // console.log('111', printer.printNode(4, c, source)); - // }); - // properties.forEach((declaration) => { - // // console.log(declaration.name); - // // prints username, info - // }); - // } - // }); - // }); - - // it('doc', () => { - // interface DocEntry { - // name?: string; - // fileName?: string; - // documentation?: string; - // type?: string; - // constructors?: DocEntry[]; - // parameters?: DocEntry[]; - // returnType?: string; - // methods?: DocEntry[]; - // properties?: DocEntry[]; - // others?: DocEntry[]; - // statics?: DocEntry[]; - // staticsProps?: DocEntry[]; - // } - - // const fileNames = ['src/__fixtures__/TypeStorage.d.ts']; - - // // Build a program using the set of root file names in fileNames - // let program = ts.createProgram(fileNames, {}); - - // // Get the checker, we will use it to find more about classes - // let checker = program.getTypeChecker(); - - // let output: DocEntry[] = []; - - // // Visit every sourceFile in the program - // for (const sourceFile of program.getSourceFiles()) { - // // if (!sourceFile.isDeclarationFile) { - // if (fileNames.includes(sourceFile.fileName)) { - // // Walk the tree to search for classes - // ts.forEachChild(sourceFile, visit); - // } - // } - - // console.log(output[0]); - // debugger; - - // function visit(node: ts.Node) { - // // Only consider exported nodes - // if (!isNodeExported(node)) { - // return; - // } - - // if (ts.isClassDeclaration(node) && node.name) { - // // This is a top level class, get its symbol - // let symbol = checker.getSymbolAtLocation(node.name); - // if (symbol) { - // output.push(serializeClass(symbol)); - // } - // // No need to walk any further, class expressions/inner declarations - // // cannot be exported - // } else if (ts.isModuleDeclaration(node)) { - // // This is a namespace, visit its children - // ts.forEachChild(node, visit); - // } - // } - - // /** True if this is visible outside this file, false otherwise */ - // function isNodeExported(node: ts.Node): boolean { - // return ( - // (ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Export) !== 0 || - // (!!node.parent && node.parent.kind === ts.SyntaxKind.SourceFile) - // ); - // } - - // /** Serialize a symbol into a json object */ - // function serializeSymbol(symbol: ts.Symbol): DocEntry { - // return { - // name: symbol.getName(), - // documentation: ts.displayPartsToString(symbol.getDocumentationComment()), - // type: checker.typeToString( - // checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration!) - // ), - // }; - // } - - // /** Serialize a class symbol information */ - // function serializeClass(symbol: ts.Symbol) { - // let details = serializeSymbol(symbol); - - // // Get the construct signatures - // let constructorType = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration!); - // details.constructors = constructorType.getConstructSignatures().map(serializeSignature); - - // details.methods = []; - // details.statics = []; - // details.staticsProps = []; - // details.others = []; - // details.properties = []; - // debugger; - // symbol.exports.forEach((v) => { - // if (!v.getDeclarations()) return; - // debugger; - // const node = v.getDeclarations()[0]; - // if (ts.isMethodDeclaration(node)) { - // details.statics.push(serializeSymbol(v)); - // } else if (ts.isPropertyDeclaration(node)) { - // const mFlags = ts.getCombinedModifierFlags(node); - // if (!(mFlags & ts.ModifierFlags.Private) && !(mFlags & ts.ModifierFlags.Protected)) { - // details.staticsProps.push(serializeSymbol(v)); - // } else { - // details.others.push(serializeSymbol(v)); - // } - // } - // console.log(ts.SyntaxKind[node.kind]); - // }); - - // symbol.members.forEach((v) => { - // const node = v.getDeclarations()[0]; - // if (ts.isMethodDeclaration(node)) { - // const t = serializeSymbol(v); - // const sign = checker.getSignatureFromDeclaration(node); - // t.parameters = sign.parameters.map(serializeSymbol); - // t.returnType = checker.typeToString(sign.getReturnType()); - // details.methods.push(t); - // } else if (ts.isPropertyDeclaration(node)) { - // const mFlags = ts.getCombinedModifierFlags(node); - // if (!(mFlags & ts.ModifierFlags.Private) && !(mFlags & ts.ModifierFlags.Protected)) { - // details.properties.push(serializeSymbol(v)); - // } else { - // details.others.push(serializeSymbol(v)); - // } - // } else { - // details.others.push(serializeSymbol(v)); - // } - // // const d = serializeSignature(checker.getSignatureFromDeclaration(v.getDeclarations()[0])); - // // } - // }); - - // return details; - // } - - // /** Serialize a signature (call or construct) */ - // function serializeSignature(signature: ts.Signature) { - // return { - // parameters: signature.parameters.map(serializeSymbol), - // returnType: checker.typeToString(signature.getReturnType()), - // documentation: ts.displayPartsToString(signature.getDocumentationComment()), - // }; - // } - // }); -}); diff --git a/gen-api/__tests__/utils-test.ts b/gen-api/__tests__/utils-test.ts deleted file mode 100644 index 501d8e19..00000000 --- a/gen-api/__tests__/utils-test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { trim, fixJSDocCode } from '../utils'; - -describe('utils', () => { - describe('trim()', () => { - it('should trim spaces', () => { - expect( - trim(` - - ok1 - ok2 - - `) - ).toBe('ok1\n ok2'); - }); - - it('should replace tripple newlines', () => { - expect( - trim(` - ok1 - - - - ok2 - `) - ).toBe('ok1\n\n ok2'); - }); - }); - - describe('fixJSDocCode()', () => { - it('should remove * from beginning of strings', () => { - expect( - fixJSDocCode(`schemaComposer.addTypeDefs(\` - * type Post {} - * \`); - `) - ).toBe('schemaComposer.addTypeDefs(`\n type Post {}\n`);\n '); - }); - }); -}); diff --git a/gen-api/update-version-files.ts b/gen-api/update-version-files.ts deleted file mode 100644 index dd25e85e..00000000 --- a/gen-api/update-version-files.ts +++ /dev/null @@ -1,22 +0,0 @@ -import path from 'path'; -import fs from 'fs'; -import { execSync } from 'child_process'; - -const versionsFile = path.resolve(process.cwd(), './website/versions.json'); -const versions: string[] = require(versionsFile); -const versionsBackup = [...versions]; -const lastVersion = versions.shift(); -try { - if (lastVersion) { - fs.writeFileSync(versionsFile, JSON.stringify(versions, null, 2) + '\n'); - execSync(`yarn run version ${lastVersion}`, { - cwd: path.resolve(__dirname, '../'), - stdio: [0, 1, 2], - }); - } else { - throw new Error(` Cannot regenerate version files.`); - } -} catch (e) { - fs.writeFileSync(versionsFile, JSON.stringify(versionsBackup, null, 2) + '\n'); - console.log(e.message); -} diff --git a/gen-api/utils.ts b/gen-api/utils.ts deleted file mode 100644 index f438b53b..00000000 --- a/gen-api/utils.ts +++ /dev/null @@ -1,36 +0,0 @@ -import prettier from 'prettier'; - -export function trim(s: string): string { - // trim spaces in front and back - s = s.replace(/^\s+|\s+$/g, ''); - - // trim triple new lines - s = s.replace(/(\s*\n){3,}/g, '\n\n'); - - return s; -} - -export function fixJSDocCode(s: string): string { - s = s.replace(/\n\s*\*\s/g, '\n'); - - return s; -} - -export function prettify(code: string): string { - try { - return prettier.format(code, { - parser: 'typescript', - semi: true, - singleQuote: true, - arrowParens: 'always', - }); - } catch (e) { - console.log(e.message); - return code; - } -} - -export function prettifyReturnType(code: string): string { - const pretty = prettify(`type __STUB__ = ${code}`); - return pretty.replace(/type __STUB__ =/, '').replace(/;\n$/, ''); -} diff --git a/gen-api/write-docs-api-files.ts b/gen-api/write-docs-api-files.ts deleted file mode 100644 index 183353f8..00000000 --- a/gen-api/write-docs-api-files.ts +++ /dev/null @@ -1,42 +0,0 @@ -import path from 'path'; -import fs from 'fs'; -import mkdirp from 'mkdirp'; -import TSClassParser from './TSClassParser'; -import MarkdownGenerator from './MarkdownGenerator'; - -const classes: string[] = [ - 'EnumTypeComposer', - 'InputTypeComposer', - 'InterfaceTypeComposer', - 'ObjectTypeComposer', - 'Resolver', - 'ScalarTypeComposer', - 'SchemaComposer', - 'TypeMapper', - 'UnionTypeComposer', - 'ListComposer', - 'NonNullComposer', - 'ThunkComposer', -]; - -const srcPath = './tmp/graphql-compose/src/'; -const outDir = './docs/api/'; - -classes.forEach((name) => { - console.log(`Working on ${name}...`); - const srcFile = path.resolve(process.cwd(), srcPath, `${name}.ts`); - const outputFile = path.resolve(process.cwd(), outDir, `${name}.md`); - - if (!fs.existsSync(srcFile)) { - throw new Error(` ERROR: file not found: ${srcFile}`); - } - - console.log(` Read from ${srcFile}`); - - const { classData, interfaces } = TSClassParser.parseFile(srcFile); - const md = MarkdownGenerator.generate(classData, interfaces); - - console.log(` Write to ${outputFile}`); - mkdirp.sync(path.resolve(process.cwd(), outDir)); - fs.writeFileSync(outputFile, md); -}); diff --git a/graphql-compose-logo.svg b/graphql-compose-logo.svg new file mode 100644 index 00000000..f6ebdaf1 --- /dev/null +++ b/graphql-compose-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/help-with-translations.html b/help-with-translations.html new file mode 100644 index 00000000..14e3da86 --- /dev/null +++ b/help-with-translations.html @@ -0,0 +1,62 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js \ No newline at end of file diff --git a/help.html b/help.html new file mode 100644 index 00000000..05cfb930 --- /dev/null +++ b/help.html @@ -0,0 +1,62 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js \ No newline at end of file diff --git a/img/docusaurus.svg b/img/docusaurus.svg new file mode 100644 index 00000000..1d8b516a --- /dev/null +++ b/img/docusaurus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/favicon.png b/img/favicon.png new file mode 100644 index 00000000..a3f82260 Binary files /dev/null and b/img/favicon.png differ diff --git a/website/static/img/favicon/favicon.ico b/img/favicon/favicon.ico similarity index 100% rename from website/static/img/favicon/favicon.ico rename to img/favicon/favicon.ico diff --git a/img/language.svg b/img/language.svg new file mode 100644 index 00000000..66195932 --- /dev/null +++ b/img/language.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 00000000..a134bafa Binary files /dev/null and b/img/logo.png differ diff --git a/img/logos/aws.png b/img/logos/aws.png new file mode 100644 index 00000000..f90238d5 Binary files /dev/null and b/img/logos/aws.png differ diff --git a/img/logos/elasticsearch.png b/img/logos/elasticsearch.png new file mode 100644 index 00000000..56336391 Binary files /dev/null and b/img/logos/elasticsearch.png differ diff --git a/img/logos/gatsby.svg b/img/logos/gatsby.svg new file mode 100644 index 00000000..2dafecca --- /dev/null +++ b/img/logos/gatsby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/logos/mongoDB.png b/img/logos/mongoDB.png new file mode 100644 index 00000000..775cca17 Binary files /dev/null and b/img/logos/mongoDB.png differ diff --git a/website/static/img/oss_logo.png b/img/oss_logo.png similarity index 100% rename from website/static/img/oss_logo.png rename to img/oss_logo.png diff --git a/index.html b/index.html new file mode 100644 index 00000000..1b456279 --- /dev/null +++ b/index.html @@ -0,0 +1,135 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js \ No newline at end of file diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index b2b2536e..00000000 --- a/jest.config.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - testEnvironment: 'node', - preset: 'ts-jest', - globals: { - 'ts-jest': { - tsConfig: '/tsconfig.json', - isolatedModules: true, - diagnostics: false, - }, - }, - moduleNameMapper: { - '^app(.*)$': '/gen-api$1', - }, - moduleFileExtensions: ['js', 'ts', 'tsx', 'd.ts'], - transform: { - '^.+\\.(ts|tsx)$': 'ts-jest', - }, - testPathIgnorePatterns: ['/node_modules/', '/dist/', '/tmp/'], - testMatch: ['**/__tests__/**/*-test.(ts|js)'], -}; diff --git a/js/codetabs.js b/js/codetabs.js new file mode 100644 index 00000000..dd01ebf2 --- /dev/null +++ b/js/codetabs.js @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +// Turn off ESLint for this file because it's sent down to users as-is. +/* eslint-disable */ +window.addEventListener('load', function() { + // add event listener for all tab + document.querySelectorAll('.nav-link').forEach(function(el) { + el.addEventListener('click', function(e) { + const groupId = e.target.getAttribute('data-group'); + document + .querySelectorAll(`.nav-link[data-group=${groupId}]`) + .forEach(function(el) { + el.classList.remove('active'); + }); + document + .querySelectorAll(`.tab-pane[data-group=${groupId}]`) + .forEach(function(el) { + el.classList.remove('active'); + }); + e.target.classList.add('active'); + document + .querySelector(`#${e.target.getAttribute('data-tab')}`) + .classList.add('active'); + }); + }); +}); diff --git a/website/static/js/pjax-api.js b/js/pjax-api.js similarity index 100% rename from website/static/js/pjax-api.js rename to js/pjax-api.js diff --git a/modification.svg b/modification.svg new file mode 100644 index 00000000..1811c898 --- /dev/null +++ b/modification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/package.json b/package.json deleted file mode 100644 index b427afda..00000000 --- a/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "graphql-compose.github.io", - "version": "1.0.0", - "private": true, - "description": "", - "main": "index.js", - "scripts": { - "test": "jest", - "ts-node": "ts-node", - "start": "yarn fetch-docs && cd website && yarn fetch-contributors && yarn start", - "build": "yarn fetch-docs && cd website && yarn fetch-contributors && yarn build", - "version": "cd website && yarn docusaurus-version", - "docusaurus-publish": "yarn fetch-docs && cd website && yarn fetch-contributors && yarn docusaurus-publish", - "fetch-docs": "yarn fetch-graphql-compose && mkdirp ./docs && cp -Rv ./tmp/graphql-compose/docs/* ./docs/ && yarn gen-api", - "fetch-graphql-compose": "(git clone https://github.com/graphql-compose/graphql-compose.git ./tmp/graphql-compose) || (cd ./tmp/graphql-compose && git fetch origin master && git reset --hard origin/master && cd ../../)", - "gen-api": "ts-node ./gen-api/write-docs-api-files.ts && ts-node ./gen-api/update-version-files.ts" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/graphql-compose/graphql-compose.github.io.git" - }, - "author": "", - "license": "MIT", - "bugs": { - "url": "https://github.com/graphql-compose/graphql-compose.github.io/issues" - }, - "homepage": "https://github.com/graphql-compose/graphql-compose.github.io#readme", - "devDependencies": { - "@types/graphql": "^14.0.7", - "@types/jest": "^24.0.11", - "@types/mkdirp": "^0.5.2", - "@types/node": "^11.12.0", - "@types/prettier": "^1.16.1", - "@typescript-eslint/eslint-plugin": "^1.5.0", - "eslint": "^5.15.3", - "eslint-config-prettier": "^4.1.0", - "eslint-plugin-prettier": "^3.0.1", - "jest": "^24.5.0", - "mkdirp": "^0.5.1", - "prettier": "^1.16.4", - "rimraf": "^2.6.3", - "ts-jest": "^24.0.0", - "ts-node": "^8.0.3", - "typescript": "^3.3.4000" - } -} diff --git a/plugins.svg b/plugins.svg new file mode 100644 index 00000000..0962d79d --- /dev/null +++ b/plugins.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sdl.svg b/sdl.svg new file mode 100644 index 00000000..552bbc30 --- /dev/null +++ b/sdl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..4a57134c --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,202 @@ + + + https://graphql-compose.github.io/help-with-translations.html weekly 0.5 + https://graphql-compose.github.io/help.html weekly 0.5 + https://graphql-compose.github.io/index.html weekly 0.5 + https://graphql-compose.github.io/users.html weekly 0.5 + https://graphql-compose.github.io/versions.html weekly 0.5 + https://graphql-compose.github.io/blog/2017/10/24/new-version-1.0.0.html weekly 0.3 + https://graphql-compose.github.io/blog/2017/09/26/adding-rss.html weekly 0.3 + https://graphql-compose.github.io/blog/2017/09/25/testing-rss.html weekly 0.3 + https://graphql-compose.github.io/blog/2017/04/10/blog-post-two.html weekly 0.3 + https://graphql-compose.github.io/blog/2016/03/11/blog-post.html weekly 0.3 + https://graphql-compose.github.io/docs/next/api/EnumTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/InputTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/InterfaceTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/ListComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/misc-api-methods.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/NonNullComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/ObjectTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/Resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/ScalarTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/SchemaComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/ThunkComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/TypeMapper.html hourly 1.0 + https://graphql-compose.github.io/docs/next/api/UnionTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/next/basics/generating-schema.html hourly 1.0 + https://graphql-compose.github.io/docs/next/basics/type-modification.html hourly 1.0 + https://graphql-compose.github.io/docs/next/basics/understanding-relations.html hourly 1.0 + https://graphql-compose.github.io/docs/next/basics/understanding-types.html hourly 1.0 + https://graphql-compose.github.io/docs/next/basics/what-is-resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/next/guide/elasticsearch-with-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/next/guide/file-uploads.html hourly 1.0 + https://graphql-compose.github.io/docs/next/guide/mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/next/guide/relay.html hourly 1.0 + https://graphql-compose.github.io/docs/next/guide/wrapping-rest-api.html hourly 1.0 + https://graphql-compose.github.io/docs/next/intro/installation.html hourly 1.0 + https://graphql-compose.github.io/docs/next/intro/live-demos.html hourly 1.0 + https://graphql-compose.github.io/docs/next/intro/prerequisites.html hourly 1.0 + https://graphql-compose.github.io/docs/next/intro/quick-start.html hourly 1.0 + https://graphql-compose.github.io/docs/next/plugins/list-of-plugins.html hourly 1.0 + https://graphql-compose.github.io/docs/next/plugins/plugin-aws.html hourly 1.0 + https://graphql-compose.github.io/docs/next/plugins/plugin-connection.html hourly 1.0 + https://graphql-compose.github.io/docs/next/plugins/plugin-elasticsearch.html hourly 1.0 + https://graphql-compose.github.io/docs/next/plugins/plugin-json.html hourly 1.0 + https://graphql-compose.github.io/docs/next/plugins/plugin-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/next/plugins/plugin-pagination.html hourly 1.0 + https://graphql-compose.github.io/docs/next/plugins/plugin-relay.html hourly 1.0 + https://graphql-compose.github.io/docs/next/plugins/plugin-writing-custom-plugin.html hourly 1.0 + https://graphql-compose.github.io/docs/next/README.html hourly 1.0 + https://graphql-compose.github.io/docs/next/recipes/authorization.html hourly 1.0 + https://graphql-compose.github.io/docs/next/recipes/writing-tests.html hourly 1.0 + https://graphql-compose.github.io/docs/api/EnumTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/api/InputTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/api/InterfaceTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/api/misc-api-methods.html hourly 1.0 + https://graphql-compose.github.io/docs/api/ObjectTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/api/Resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/api/ScalarTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/api/SchemaComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/api/TypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/api/TypeMapper.html hourly 1.0 + https://graphql-compose.github.io/docs/api/UnionTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/basics/generating-schema.html hourly 1.0 + https://graphql-compose.github.io/docs/basics/type-modification.html hourly 1.0 + https://graphql-compose.github.io/docs/basics/understanding-relations.html hourly 1.0 + https://graphql-compose.github.io/docs/basics/understanding-types.html hourly 1.0 + https://graphql-compose.github.io/docs/basics/what-is-resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/guide/elasticsearch-with-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/guide/file-uploads.html hourly 1.0 + https://graphql-compose.github.io/docs/guide/mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/guide/relay.html hourly 1.0 + https://graphql-compose.github.io/docs/guide/wrapping-rest-api.html hourly 1.0 + https://graphql-compose.github.io/docs/intro/installation.html hourly 1.0 + https://graphql-compose.github.io/docs/intro/live-demos.html hourly 1.0 + https://graphql-compose.github.io/docs/intro/prerequisites.html hourly 1.0 + https://graphql-compose.github.io/docs/intro/quick-start.html hourly 1.0 + https://graphql-compose.github.io/docs/plugins/list-of-plugins.html hourly 1.0 + https://graphql-compose.github.io/docs/plugins/plugin-aws.html hourly 1.0 + https://graphql-compose.github.io/docs/plugins/plugin-connection.html hourly 1.0 + https://graphql-compose.github.io/docs/plugins/plugin-elasticsearch.html hourly 1.0 + https://graphql-compose.github.io/docs/plugins/plugin-json.html hourly 1.0 + https://graphql-compose.github.io/docs/plugins/plugin-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/plugins/plugin-pagination.html hourly 1.0 + https://graphql-compose.github.io/docs/plugins/plugin-relay.html hourly 1.0 + https://graphql-compose.github.io/docs/plugins/plugin-writing-custom-plugin.html hourly 1.0 + https://graphql-compose.github.io/docs/recipes/authorization.html hourly 1.0 + https://graphql-compose.github.io/docs/recipes/writing-tests.html hourly 1.0 + https://graphql-compose.github.io/docs/api/ListComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/api/NonNullComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/api/ThunkComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/EnumTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/InputTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/InterfaceTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/misc-api-methods.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/ObjectTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/Resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/ScalarTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/SchemaComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/TypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/TypeMapper.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/UnionTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/basics/generating-schema.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/basics/type-modification.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/basics/understanding-relations.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/basics/understanding-types.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/basics/what-is-resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/guide/elasticsearch-with-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/guide/file-uploads.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/guide/mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/guide/relay.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/guide/wrapping-rest-api.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/intro/installation.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/intro/live-demos.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/intro/prerequisites.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/intro/quick-start.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/plugins/list-of-plugins.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/plugins/plugin-aws.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/plugins/plugin-connection.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/plugins/plugin-elasticsearch.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/plugins/plugin-json.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/plugins/plugin-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/plugins/plugin-pagination.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/plugins/plugin-relay.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/plugins/plugin-writing-custom-plugin.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/recipes/authorization.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/recipes/writing-tests.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/ListComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/NonNullComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/7.x.x/api/ThunkComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/EnumTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/InputTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/InterfaceTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/misc-api-methods.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/ObjectTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/Resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/ScalarTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/SchemaComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/TypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/TypeMapper.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/api/UnionTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/basics/generating-schema.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/basics/type-modification.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/basics/understanding-relations.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/basics/understanding-types.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/basics/what-is-resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/guide/elasticsearch-with-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/guide/file-uploads.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/guide/mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/guide/relay.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/guide/wrapping-rest-api.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/intro/installation.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/intro/live-demos.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/intro/prerequisites.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/intro/quick-start.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/plugins/list-of-plugins.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/plugins/plugin-aws.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/plugins/plugin-connection.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/plugins/plugin-elasticsearch.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/plugins/plugin-json.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/plugins/plugin-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/plugins/plugin-pagination.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/plugins/plugin-relay.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/plugins/plugin-writing-custom-plugin.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/recipes/authorization.html hourly 1.0 + https://graphql-compose.github.io/docs/6.x.x/recipes/writing-tests.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/EnumTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/InputTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/InterfaceTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/misc-api-methods.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/ObjectTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/Resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/ScalarTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/SchemaComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/TypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/TypeMapper.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/api/UnionTypeComposer.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/basics/generating-schema.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/basics/type-modification.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/basics/understanding-relations.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/basics/understanding-types.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/basics/what-is-resolver.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/guide/elasticsearch-with-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/guide/file-uploads.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/guide/mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/guide/relay.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/guide/wrapping-rest-api.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/intro/installation.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/intro/live-demos.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/intro/prerequisites.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/intro/quick-start.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/plugins/list-of-plugins.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/plugins/plugin-aws.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/plugins/plugin-connection.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/plugins/plugin-elasticsearch.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/plugins/plugin-json.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/plugins/plugin-mongoose.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/plugins/plugin-pagination.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/plugins/plugin-relay.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/plugins/plugin-writing-custom-plugin.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/recipes/authorization.html hourly 1.0 + https://graphql-compose.github.io/docs/5.12.0/recipes/writing-tests.html hourly 1.0 + \ No newline at end of file diff --git a/static_analysis.svg b/static_analysis.svg new file mode 100644 index 00000000..34c7eaf1 --- /dev/null +++ b/static_analysis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/static/svg/README.md b/svg/README.md similarity index 100% rename from website/static/svg/README.md rename to svg/README.md diff --git a/svg/additional-types.svg b/svg/additional-types.svg new file mode 100644 index 00000000..c05641e7 --- /dev/null +++ b/svg/additional-types.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/graphql-compose-logo.svg b/svg/graphql-compose-logo.svg new file mode 100644 index 00000000..f6ebdaf1 --- /dev/null +++ b/svg/graphql-compose-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/modification.svg b/svg/modification.svg new file mode 100644 index 00000000..1811c898 --- /dev/null +++ b/svg/modification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/plugins.svg b/svg/plugins.svg new file mode 100644 index 00000000..0962d79d --- /dev/null +++ b/svg/plugins.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/sdl.svg b/svg/sdl.svg new file mode 100644 index 00000000..552bbc30 --- /dev/null +++ b/svg/sdl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/static_analysis.svg b/svg/static_analysis.svg new file mode 100644 index 00000000..34c7eaf1 --- /dev/null +++ b/svg/static_analysis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/svg/type-storage.svg b/svg/type-storage.svg new file mode 100644 index 00000000..856c58fa --- /dev/null +++ b/svg/type-storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tsconfig.build.json b/tsconfig.build.json deleted file mode 100644 index bba2a4ae..00000000 --- a/tsconfig.build.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "./tsconfig", - "compilerOptions": { - "noEmit": false, - "lib": ["es2017", "esnext.asynciterable"], - "types": ["node"], - "outDir": "./dist", - "rootDir": "gen-api" - }, - "exclude": ["node_modules", "**/__tests__", "**/__mocks__"], - "include": ["gen-api/**/*"] -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 700c1e0a..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "target": "es6", - "declaration": true, - "declarationMap": false, - "module": "commonjs", - "moduleResolution": "node", - "noEmit": true, - "esModuleInterop": true, - "sourceMap": true, - "removeComments": true, - "resolveJsonModule": true, - "strict": true, - "strictBindCallApply": true, - "strictNullChecks": true, - "strictPropertyInitialization": false, - "suppressImplicitAnyIndexErrors": true, - "noImplicitAny": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "noFallthroughCasesInSwitch": true, - "noUnusedParameters": false, - "noUnusedLocals": true, - "noEmitOnError": false, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "forceConsistentCasingInFileNames": true, - "pretty": true, - "rootDir": "gen-api" - }, - "include": ["**/typings.d.ts", "types/*.d.ts", "**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/type-storage.svg b/type-storage.svg new file mode 100644 index 00000000..856c58fa --- /dev/null +++ b/type-storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/users.html b/users.html new file mode 100644 index 00000000..218ebce3 --- /dev/null +++ b/users.html @@ -0,0 +1,56 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js \ No newline at end of file diff --git a/versions.html b/versions.html new file mode 100644 index 00000000..c3babb97 --- /dev/null +++ b/versions.html @@ -0,0 +1,56 @@ +graphql-compose · Toolkit for generating complex GraphQL schemas in Node.js \ No newline at end of file diff --git a/website/backers.json b/website/backers.json deleted file mode 100644 index 8ae8bb72..00000000 --- a/website/backers.json +++ /dev/null @@ -1,206 +0,0 @@ -[ - { - "MemberId": 16271, - "createdAt": "2018-05-10 17:21", - "type": "USER", - "role": "ADMIN", - "isActive": true, - "totalAmountDonated": 0, - "currency": "USD", - "lastTransactionAt": "2019-02-15 03:56", - "lastTransactionAmount": -18, - "profile": "https://opencollective.com/nodkz", - "name": "Pavel Chertorogov", - "company": null, - "description": "Work hard and love travel", - "image": "https://www.gravatar.com/avatar/de9973aeb8f69ac6da3a7d35c83822b7?default=404", - "email": null, - "twitter": "https://twitter.com/nodkz", - "github": "https://github.com/nodkz", - "website": "https://twitter.com/nodkz" - }, - { - "MemberId": 16272, - "createdAt": "2018-05-10 17:21", - "type": "ORGANIZATION", - "role": "HOST", - "isActive": true, - "totalAmountDonated": 0, - "lastTransactionAt": "2020-05-08 14:56", - "lastTransactionAmount": 0, - "profile": "https://opencollective.com/opensource", - "name": "Open Source Collective 501(c)(6)", - "company": null, - "description": "Non-profit serving to fiscally host to open source Collectives and promote a sustainable open source ecosystem.", - "image": "https://opencollective-production.s3.us-west-1.amazonaws.com/97017710-a90f-11e9-b6fb-2bbe7128f780.png", - "email": null, - "twitter": "https://twitter.com/opencollect", - "github": null, - "website": "https://opencollective.com/opensource" - }, - { - "MemberId": 17763, - "createdAt": "2018-06-12 16:17", - "type": "USER", - "role": "BACKER", - "tier": "Backer", - "isActive": false, - "totalAmountDonated": 85, - "currency": "USD", - "lastTransactionAt": "2019-10-01 05:02", - "lastTransactionAmount": 5, - "profile": "https://opencollective.com/anthony-ou", - "name": "Anthony Ou", - "company": null, - "description": null, - "image": "https://opencollective-production.s3-us-west-1.amazonaws.com/88b34f40-607a-11e9-b486-e1bb2d3f0d94.png", - "email": null, - "twitter": null, - "github": null, - "website": null - }, - { - "MemberId": 24132, - "createdAt": "2018-10-13 05:27", - "type": "ORGANIZATION", - "role": "BACKER", - "tier": "Backer", - "isActive": false, - "totalAmountDonated": 18, - "currency": "USD", - "lastTransactionAt": "2019-06-04 05:01", - "lastTransactionAmount": 2, - "profile": "https://opencollective.com/scraperapi2", - "name": "Scraper API 2", - "company": null, - "description": "Scraper API handles proxies, browsers, and CAPTCHAs for you, so you can get the HTML from any web page with an API call. Instantly turn any website into an API!", - "image": "https://logo.clearbit.com/scraperapi.com", - "email": null, - "twitter": "https://twitter.com/scraperapi2", - "github": null, - "website": "https://www.scraperapi.com" - }, - { - "MemberId": 32516, - "createdAt": "2019-02-11 14:13", - "type": "USER", - "role": "CONTRIBUTOR", - "isActive": true, - "totalAmountDonated": 0, - "lastTransactionAt": "2020-05-08 14:56", - "lastTransactionAmount": 0, - "profile": "https://opencollective.com/nodkz", - "name": "Pavel Chertorogov", - "company": null, - "description": "Work hard and love travel", - "image": "https://www.gravatar.com/avatar/de9973aeb8f69ac6da3a7d35c83822b7?default=404", - "email": null, - "twitter": "https://twitter.com/nodkz", - "github": "https://github.com/nodkz", - "website": "https://twitter.com/nodkz" - }, - { - "MemberId": 56375, - "createdAt": "2019-10-10 08:35", - "type": "ORGANIZATION", - "role": "BACKER", - "tier": "Backer", - "isActive": true, - "totalAmountDonated": 16, - "currency": "USD", - "lastTransactionAt": "2020-05-01 05:04", - "lastTransactionAmount": 2, - "profile": "https://opencollective.com/scrapingn", - "name": "ScrapingBee", - "company": null, - "description": null, - "image": "https://opencollective-production.s3.us-west-1.amazonaws.com/0dbe4a20-276b-11ea-9748-7d460d0771a1.png", - "email": null, - "twitter": "https://twitter.com/scrapingn", - "github": null, - "website": "https://www.scrapingbee.com" - }, - { - "MemberId": 59523, - "createdAt": "2019-10-28 16:30", - "type": "ORGANIZATION", - "role": "BACKER", - "isActive": true, - "totalAmountDonated": 1000, - "currency": "USD", - "lastTransactionAt": "2019-10-28 16:30", - "lastTransactionAmount": 1000, - "profile": "https://opencollective.com/gatsbyjs", - "name": "GatsbyJS", - "company": null, - "description": null, - "image": "https://logo.clearbit.com/gatsbyjs.com", - "email": null, - "twitter": "https://twitter.com/gatsbyjs", - "github": null, - "website": "https://www.gatsbyjs.com" - }, - { - "MemberId": 71309, - "createdAt": "2020-01-20 02:15", - "type": "ORGANIZATION", - "role": "BACKER", - "tier": "Backer", - "isActive": true, - "totalAmountDonated": 8, - "currency": "USD", - "lastTransactionAt": "2020-05-02 10:18", - "lastTransactionAmount": 2, - "profile": "https://opencollective.com/adaptjs", - "name": "Adapt.js", - "company": null, - "description": "React for your infrastructure. Create and deploy full‑stack apps to any infrastructure using the power of React.", - "image": "https://opencollective-production.s3.us-west-1.amazonaws.com/a2e65680-3b23-11ea-bff8-5138a669032d.png", - "email": null, - "twitter": "https://twitter.com/adaptjs", - "github": "https://github.com/unboundedsystems/adapt", - "website": "https://adaptjs.org" - }, - { - "MemberId": 75940, - "createdAt": "2020-02-19 15:54", - "type": "USER", - "role": "BACKER", - "tier": "Backer", - "isActive": true, - "totalAmountDonated": 6, - "currency": "USD", - "lastTransactionAt": "2020-05-04 05:13", - "lastTransactionAmount": 2, - "profile": "https://opencollective.com/woorke", - "name": "Woorke", - "company": "https://woorke.com", - "description": "Woorke is Digital One Stop Shop for Digital Marketing Services", - "image": "https://opencollective-production.s3.us-west-1.amazonaws.com/11f24c30-3a09-11ea-8ab7-b3f0317bbc7c.png", - "email": null, - "twitter": null, - "github": null, - "website": "https://woorke.com" - }, - { - "MemberId": 94350, - "createdAt": "2020-05-04 07:39", - "type": "ORGANIZATION", - "role": "BACKER", - "tier": "Backer", - "isActive": true, - "totalAmountDonated": 2, - "currency": "USD", - "lastTransactionAt": "2020-05-04 07:39", - "lastTransactionAmount": 2, - "profile": "https://opencollective.com/420couponcodes", - "name": "420 Coupon Codes", - "company": null, - "description": null, - "image": "https://opencollective-production.s3.us-west-1.amazonaws.com/059437a0-857c-11ea-8844-5f0207daf568.png", - "email": null, - "twitter": "https://twitter.com/420couponcode", - "github": "https://github.com/420couponcodes", - "website": "https://420couponcodes.com" - } -] diff --git a/website/blog/2016-03-11-blog-post.md b/website/blog/2016-03-11-blog-post.md deleted file mode 100644 index cf2ba296..00000000 --- a/website/blog/2016-03-11-blog-post.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Blog Title -author: Blog Author -authorURL: http://twitter.com/ -authorFBID: 100002976521003 ---- - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien. - - - -Mauris vestibulum ullamcorper nibh, ut semper purus pulvinar ut. Donec volutpat orci sit amet mauris malesuada, non pulvinar augue aliquam. Vestibulum ultricies at urna ut suscipit. Morbi iaculis, erat at imperdiet semper, ipsum nulla sodales erat, eget tincidunt justo dui quis justo. Pellentesque dictum bibendum diam at aliquet. Sed pulvinar, dolor quis finibus ornare, eros odio facilisis erat, eu rhoncus nunc dui sed ex. Nunc gravida dui massa, sed ornare arcu tincidunt sit amet. Maecenas efficitur sapien neque, a laoreet libero feugiat ut. - -Nulla facilisi. Maecenas sodales nec purus eget posuere. Sed sapien quam, pretium a risus in, porttitor dapibus erat. Sed sit amet fringilla ipsum, eget iaculis augue. Integer sollicitudin tortor quis ultricies aliquam. Suspendisse fringilla nunc in tellus cursus, at placerat tellus scelerisque. Sed tempus elit a sollicitudin rhoncus. Nulla facilisi. Morbi nec dolor dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras et aliquet lectus. Pellentesque sit amet eros nisi. Quisque ac sapien in sapien congue accumsan. Nullam in posuere ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin lacinia leo a nibh fringilla pharetra. - -Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin venenatis lectus dui, vel ultrices ante bibendum hendrerit. Aenean egestas feugiat dui id hendrerit. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur in tellus laoreet, eleifend nunc id, viverra leo. Proin vulputate non dolor vel vulputate. Curabitur pretium lobortis felis, sit amet finibus lorem suscipit ut. Sed non mollis risus. Duis sagittis, mi in euismod tincidunt, nunc mauris vestibulum urna, at euismod est elit quis erat. Phasellus accumsan vitae neque eu placerat. In elementum arcu nec tellus imperdiet, eget maximus nulla sodales. Curabitur eu sapien eget nisl sodales fermentum. - -Phasellus pulvinar ex id commodo imperdiet. Praesent odio nibh, sollicitudin sit amet faucibus id, placerat at metus. Donec vitae eros vitae tortor hendrerit finibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae purus dolor. Duis suscipit ac nulla et finibus. Phasellus ac sem sed dui dictum gravida. Phasellus eleifend vestibulum facilisis. Integer pharetra nec enim vitae mattis. Duis auctor, lectus quis condimentum bibendum, nunc dolor aliquam massa, id bibendum orci velit quis magna. Ut volutpat nulla nunc, sed interdum magna condimentum non. Sed urna metus, scelerisque vitae consectetur a, feugiat quis magna. Donec dignissim ornare nisl, eget tempor risus malesuada quis. diff --git a/website/blog/2017-04-10-blog-post-two.md b/website/blog/2017-04-10-blog-post-two.md deleted file mode 100644 index 3ab4637b..00000000 --- a/website/blog/2017-04-10-blog-post-two.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: New Blog Post -author: Blog Author -authorURL: http://twitter.com/ -authorFBID: 100002976521003 ---- - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien. - - - -Mauris vestibulum ullamcorper nibh, ut semper purus pulvinar ut. Donec volutpat orci sit amet mauris malesuada, non pulvinar augue aliquam. Vestibulum ultricies at urna ut suscipit. Morbi iaculis, erat at imperdiet semper, ipsum nulla sodales erat, eget tincidunt justo dui quis justo. Pellentesque dictum bibendum diam at aliquet. Sed pulvinar, dolor quis finibus ornare, eros odio facilisis erat, eu rhoncus nunc dui sed ex. Nunc gravida dui massa, sed ornare arcu tincidunt sit amet. Maecenas efficitur sapien neque, a laoreet libero feugiat ut. - -Nulla facilisi. Maecenas sodales nec purus eget posuere. Sed sapien quam, pretium a risus in, porttitor dapibus erat. Sed sit amet fringilla ipsum, eget iaculis augue. Integer sollicitudin tortor quis ultricies aliquam. Suspendisse fringilla nunc in tellus cursus, at placerat tellus scelerisque. Sed tempus elit a sollicitudin rhoncus. Nulla facilisi. Morbi nec dolor dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras et aliquet lectus. Pellentesque sit amet eros nisi. Quisque ac sapien in sapien congue accumsan. Nullam in posuere ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin lacinia leo a nibh fringilla pharetra. - -Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin venenatis lectus dui, vel ultrices ante bibendum hendrerit. Aenean egestas feugiat dui id hendrerit. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur in tellus laoreet, eleifend nunc id, viverra leo. Proin vulputate non dolor vel vulputate. Curabitur pretium lobortis felis, sit amet finibus lorem suscipit ut. Sed non mollis risus. Duis sagittis, mi in euismod tincidunt, nunc mauris vestibulum urna, at euismod est elit quis erat. Phasellus accumsan vitae neque eu placerat. In elementum arcu nec tellus imperdiet, eget maximus nulla sodales. Curabitur eu sapien eget nisl sodales fermentum. - -Phasellus pulvinar ex id commodo imperdiet. Praesent odio nibh, sollicitudin sit amet faucibus id, placerat at metus. Donec vitae eros vitae tortor hendrerit finibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae purus dolor. Duis suscipit ac nulla et finibus. Phasellus ac sem sed dui dictum gravida. Phasellus eleifend vestibulum facilisis. Integer pharetra nec enim vitae mattis. Duis auctor, lectus quis condimentum bibendum, nunc dolor aliquam massa, id bibendum orci velit quis magna. Ut volutpat nulla nunc, sed interdum magna condimentum non. Sed urna metus, scelerisque vitae consectetur a, feugiat quis magna. Donec dignissim ornare nisl, eget tempor risus malesuada quis. diff --git a/website/blog/2017-09-25-testing-rss.md b/website/blog/2017-09-25-testing-rss.md deleted file mode 100644 index b7ff8129..00000000 --- a/website/blog/2017-09-25-testing-rss.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Adding RSS Support - RSS Truncation Test -author: Eric Nakagawa -authorURL: http://twitter.com/ericnakagawa -authorFBID: 661277173 ---- -1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 - -This should be truncated. - -This line should never render in XML. diff --git a/website/blog/2017-09-26-adding-rss.md b/website/blog/2017-09-26-adding-rss.md deleted file mode 100644 index eeb4f047..00000000 --- a/website/blog/2017-09-26-adding-rss.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Adding RSS Support -author: Eric Nakagawa -authorURL: http://twitter.com/ericnakagawa -authorFBID: 661277173 ---- - -This is a test post. - -A whole bunch of other information. diff --git a/website/blog/2017-10-24-new-version-1.0.0.md b/website/blog/2017-10-24-new-version-1.0.0.md deleted file mode 100644 index 60761c02..00000000 --- a/website/blog/2017-10-24-new-version-1.0.0.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: New Version 1.0.0 -author: Eric Nakagawa -authorURL: http://twitter.com/ericnakagawa -authorFBID: 661277173 ---- - -This blog post will test file name parsing issues when periods are present. diff --git a/website/contributors.json b/website/contributors.json deleted file mode 100644 index f288849b..00000000 --- a/website/contributors.json +++ /dev/null @@ -1,386 +0,0 @@ -[ - { - "total": 1, - "author": { - "login": "toddheslin", - "id": 1883112, - "node_id": "MDQ6VXNlcjE4ODMxMTI=", - "avatar_url": "https://avatars1.githubusercontent.com/u/1883112?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/toddheslin", - "html_url": "https://github.com/toddheslin", - "followers_url": "https://api.github.com/users/toddheslin/followers", - "following_url": "https://api.github.com/users/toddheslin/following{/other_user}", - "gists_url": "https://api.github.com/users/toddheslin/gists{/gist_id}", - "starred_url": "https://api.github.com/users/toddheslin/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/toddheslin/subscriptions", - "organizations_url": "https://api.github.com/users/toddheslin/orgs", - "repos_url": "https://api.github.com/users/toddheslin/repos", - "events_url": "https://api.github.com/users/toddheslin/events{/privacy}", - "received_events_url": "https://api.github.com/users/toddheslin/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1571529600 - }, - { - "total": 1, - "author": { - "login": "monkeywithacupcake", - "id": 7316730, - "node_id": "MDQ6VXNlcjczMTY3MzA=", - "avatar_url": "https://avatars3.githubusercontent.com/u/7316730?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/monkeywithacupcake", - "html_url": "https://github.com/monkeywithacupcake", - "followers_url": "https://api.github.com/users/monkeywithacupcake/followers", - "following_url": "https://api.github.com/users/monkeywithacupcake/following{/other_user}", - "gists_url": "https://api.github.com/users/monkeywithacupcake/gists{/gist_id}", - "starred_url": "https://api.github.com/users/monkeywithacupcake/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/monkeywithacupcake/subscriptions", - "organizations_url": "https://api.github.com/users/monkeywithacupcake/orgs", - "repos_url": "https://api.github.com/users/monkeywithacupcake/repos", - "events_url": "https://api.github.com/users/monkeywithacupcake/events{/privacy}", - "received_events_url": "https://api.github.com/users/monkeywithacupcake/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1526169600 - }, - { - "total": 1, - "author": { - "login": "katopz", - "id": 97060, - "node_id": "MDQ6VXNlcjk3MDYw", - "avatar_url": "https://avatars1.githubusercontent.com/u/97060?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/katopz", - "html_url": "https://github.com/katopz", - "followers_url": "https://api.github.com/users/katopz/followers", - "following_url": "https://api.github.com/users/katopz/following{/other_user}", - "gists_url": "https://api.github.com/users/katopz/gists{/gist_id}", - "starred_url": "https://api.github.com/users/katopz/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/katopz/subscriptions", - "organizations_url": "https://api.github.com/users/katopz/orgs", - "repos_url": "https://api.github.com/users/katopz/repos", - "events_url": "https://api.github.com/users/katopz/events{/privacy}", - "received_events_url": "https://api.github.com/users/katopz/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1486857600 - }, - { - "total": 1, - "author": { - "login": "josewhitetower", - "id": 19823791, - "node_id": "MDQ6VXNlcjE5ODIzNzkx", - "avatar_url": "https://avatars1.githubusercontent.com/u/19823791?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/josewhitetower", - "html_url": "https://github.com/josewhitetower", - "followers_url": "https://api.github.com/users/josewhitetower/followers", - "following_url": "https://api.github.com/users/josewhitetower/following{/other_user}", - "gists_url": "https://api.github.com/users/josewhitetower/gists{/gist_id}", - "starred_url": "https://api.github.com/users/josewhitetower/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/josewhitetower/subscriptions", - "organizations_url": "https://api.github.com/users/josewhitetower/orgs", - "repos_url": "https://api.github.com/users/josewhitetower/repos", - "events_url": "https://api.github.com/users/josewhitetower/events{/privacy}", - "received_events_url": "https://api.github.com/users/josewhitetower/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1583625600 - }, - { - "total": 1, - "author": { - "login": "gomesalexandre", - "id": 17035424, - "node_id": "MDQ6VXNlcjE3MDM1NDI0", - "avatar_url": "https://avatars1.githubusercontent.com/u/17035424?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/gomesalexandre", - "html_url": "https://github.com/gomesalexandre", - "followers_url": "https://api.github.com/users/gomesalexandre/followers", - "following_url": "https://api.github.com/users/gomesalexandre/following{/other_user}", - "gists_url": "https://api.github.com/users/gomesalexandre/gists{/gist_id}", - "starred_url": "https://api.github.com/users/gomesalexandre/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/gomesalexandre/subscriptions", - "organizations_url": "https://api.github.com/users/gomesalexandre/orgs", - "repos_url": "https://api.github.com/users/gomesalexandre/repos", - "events_url": "https://api.github.com/users/gomesalexandre/events{/privacy}", - "received_events_url": "https://api.github.com/users/gomesalexandre/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1578182400 - }, - { - "total": 1, - "author": { - "login": "cbrunnkvist", - "id": 34006, - "node_id": "MDQ6VXNlcjM0MDA2", - "avatar_url": "https://avatars1.githubusercontent.com/u/34006?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/cbrunnkvist", - "html_url": "https://github.com/cbrunnkvist", - "followers_url": "https://api.github.com/users/cbrunnkvist/followers", - "following_url": "https://api.github.com/users/cbrunnkvist/following{/other_user}", - "gists_url": "https://api.github.com/users/cbrunnkvist/gists{/gist_id}", - "starred_url": "https://api.github.com/users/cbrunnkvist/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/cbrunnkvist/subscriptions", - "organizations_url": "https://api.github.com/users/cbrunnkvist/orgs", - "repos_url": "https://api.github.com/users/cbrunnkvist/repos", - "events_url": "https://api.github.com/users/cbrunnkvist/events{/privacy}", - "received_events_url": "https://api.github.com/users/cbrunnkvist/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1573948800 - }, - { - "total": 2, - "author": { - "login": "yoadsn", - "id": 1684709, - "node_id": "MDQ6VXNlcjE2ODQ3MDk=", - "avatar_url": "https://avatars1.githubusercontent.com/u/1684709?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/yoadsn", - "html_url": "https://github.com/yoadsn", - "followers_url": "https://api.github.com/users/yoadsn/followers", - "following_url": "https://api.github.com/users/yoadsn/following{/other_user}", - "gists_url": "https://api.github.com/users/yoadsn/gists{/gist_id}", - "starred_url": "https://api.github.com/users/yoadsn/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/yoadsn/subscriptions", - "organizations_url": "https://api.github.com/users/yoadsn/orgs", - "repos_url": "https://api.github.com/users/yoadsn/repos", - "events_url": "https://api.github.com/users/yoadsn/events{/privacy}", - "received_events_url": "https://api.github.com/users/yoadsn/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1498348800 - }, - { - "total": 2, - "author": { - "login": "sensone", - "id": 940120, - "node_id": "MDQ6VXNlcjk0MDEyMA==", - "avatar_url": "https://avatars2.githubusercontent.com/u/940120?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sensone", - "html_url": "https://github.com/sensone", - "followers_url": "https://api.github.com/users/sensone/followers", - "following_url": "https://api.github.com/users/sensone/following{/other_user}", - "gists_url": "https://api.github.com/users/sensone/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sensone/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sensone/subscriptions", - "organizations_url": "https://api.github.com/users/sensone/orgs", - "repos_url": "https://api.github.com/users/sensone/repos", - "events_url": "https://api.github.com/users/sensone/events{/privacy}", - "received_events_url": "https://api.github.com/users/sensone/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1490486400 - }, - { - "total": 2, - "author": { - "login": "craicoverflow", - "id": 11743717, - "node_id": "MDQ6VXNlcjExNzQzNzE3", - "avatar_url": "https://avatars2.githubusercontent.com/u/11743717?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/craicoverflow", - "html_url": "https://github.com/craicoverflow", - "followers_url": "https://api.github.com/users/craicoverflow/followers", - "following_url": "https://api.github.com/users/craicoverflow/following{/other_user}", - "gists_url": "https://api.github.com/users/craicoverflow/gists{/gist_id}", - "starred_url": "https://api.github.com/users/craicoverflow/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/craicoverflow/subscriptions", - "organizations_url": "https://api.github.com/users/craicoverflow/orgs", - "repos_url": "https://api.github.com/users/craicoverflow/repos", - "events_url": "https://api.github.com/users/craicoverflow/events{/privacy}", - "received_events_url": "https://api.github.com/users/craicoverflow/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1587254400 - }, - { - "total": 4, - "author": { - "login": "mernxl", - "id": 16241595, - "node_id": "MDQ6VXNlcjE2MjQxNTk1", - "avatar_url": "https://avatars0.githubusercontent.com/u/16241595?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/mernxl", - "html_url": "https://github.com/mernxl", - "followers_url": "https://api.github.com/users/mernxl/followers", - "following_url": "https://api.github.com/users/mernxl/following{/other_user}", - "gists_url": "https://api.github.com/users/mernxl/gists{/gist_id}", - "starred_url": "https://api.github.com/users/mernxl/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/mernxl/subscriptions", - "organizations_url": "https://api.github.com/users/mernxl/orgs", - "repos_url": "https://api.github.com/users/mernxl/repos", - "events_url": "https://api.github.com/users/mernxl/events{/privacy}", - "received_events_url": "https://api.github.com/users/mernxl/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1537056000 - }, - { - "total": 6, - "author": { - "login": "zapkub", - "id": 4373581, - "node_id": "MDQ6VXNlcjQzNzM1ODE=", - "avatar_url": "https://avatars2.githubusercontent.com/u/4373581?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/zapkub", - "html_url": "https://github.com/zapkub", - "followers_url": "https://api.github.com/users/zapkub/followers", - "following_url": "https://api.github.com/users/zapkub/following{/other_user}", - "gists_url": "https://api.github.com/users/zapkub/gists{/gist_id}", - "starred_url": "https://api.github.com/users/zapkub/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/zapkub/subscriptions", - "organizations_url": "https://api.github.com/users/zapkub/orgs", - "repos_url": "https://api.github.com/users/zapkub/repos", - "events_url": "https://api.github.com/users/zapkub/events{/privacy}", - "received_events_url": "https://api.github.com/users/zapkub/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1534636800 - }, - { - "total": 6, - "author": { - "login": "freiksenet", - "id": 172936, - "node_id": "MDQ6VXNlcjE3MjkzNg==", - "avatar_url": "https://avatars0.githubusercontent.com/u/172936?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/freiksenet", - "html_url": "https://github.com/freiksenet", - "followers_url": "https://api.github.com/users/freiksenet/followers", - "following_url": "https://api.github.com/users/freiksenet/following{/other_user}", - "gists_url": "https://api.github.com/users/freiksenet/gists{/gist_id}", - "starred_url": "https://api.github.com/users/freiksenet/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/freiksenet/subscriptions", - "organizations_url": "https://api.github.com/users/freiksenet/orgs", - "repos_url": "https://api.github.com/users/freiksenet/repos", - "events_url": "https://api.github.com/users/freiksenet/events{/privacy}", - "received_events_url": "https://api.github.com/users/freiksenet/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1553990400 - }, - { - "total": 10, - "author": { - "login": "ch4ostic", - "id": 943968, - "node_id": "MDQ6VXNlcjk0Mzk2OA==", - "avatar_url": "https://avatars1.githubusercontent.com/u/943968?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/ch4ostic", - "html_url": "https://github.com/ch4ostic", - "followers_url": "https://api.github.com/users/ch4ostic/followers", - "following_url": "https://api.github.com/users/ch4ostic/following{/other_user}", - "gists_url": "https://api.github.com/users/ch4ostic/gists{/gist_id}", - "starred_url": "https://api.github.com/users/ch4ostic/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/ch4ostic/subscriptions", - "organizations_url": "https://api.github.com/users/ch4ostic/orgs", - "repos_url": "https://api.github.com/users/ch4ostic/repos", - "events_url": "https://api.github.com/users/ch4ostic/events{/privacy}", - "received_events_url": "https://api.github.com/users/ch4ostic/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1475366400 - }, - { - "total": 11, - "author": { - "login": "toverux", - "id": 1343250, - "node_id": "MDQ6VXNlcjEzNDMyNTA=", - "avatar_url": "https://avatars1.githubusercontent.com/u/1343250?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/toverux", - "html_url": "https://github.com/toverux", - "followers_url": "https://api.github.com/users/toverux/followers", - "following_url": "https://api.github.com/users/toverux/following{/other_user}", - "gists_url": "https://api.github.com/users/toverux/gists{/gist_id}", - "starred_url": "https://api.github.com/users/toverux/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/toverux/subscriptions", - "organizations_url": "https://api.github.com/users/toverux/orgs", - "repos_url": "https://api.github.com/users/toverux/repos", - "events_url": "https://api.github.com/users/toverux/events{/privacy}", - "received_events_url": "https://api.github.com/users/toverux/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1581206400 - }, - { - "total": 11, - "author": { - "login": "stefanprobst", - "id": 20753323, - "node_id": "MDQ6VXNlcjIwNzUzMzIz", - "avatar_url": "https://avatars0.githubusercontent.com/u/20753323?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/stefanprobst", - "html_url": "https://github.com/stefanprobst", - "followers_url": "https://api.github.com/users/stefanprobst/followers", - "following_url": "https://api.github.com/users/stefanprobst/following{/other_user}", - "gists_url": "https://api.github.com/users/stefanprobst/gists{/gist_id}", - "starred_url": "https://api.github.com/users/stefanprobst/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/stefanprobst/subscriptions", - "organizations_url": "https://api.github.com/users/stefanprobst/orgs", - "repos_url": "https://api.github.com/users/stefanprobst/repos", - "events_url": "https://api.github.com/users/stefanprobst/events{/privacy}", - "received_events_url": "https://api.github.com/users/stefanprobst/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1558828800 - }, - { - "total": 629, - "author": { - "login": "nodkz", - "id": 1946920, - "node_id": "MDQ6VXNlcjE5NDY5MjA=", - "avatar_url": "https://avatars2.githubusercontent.com/u/1946920?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/nodkz", - "html_url": "https://github.com/nodkz", - "followers_url": "https://api.github.com/users/nodkz/followers", - "following_url": "https://api.github.com/users/nodkz/following{/other_user}", - "gists_url": "https://api.github.com/users/nodkz/gists{/gist_id}", - "starred_url": "https://api.github.com/users/nodkz/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/nodkz/subscriptions", - "organizations_url": "https://api.github.com/users/nodkz/orgs", - "repos_url": "https://api.github.com/users/nodkz/repos", - "events_url": "https://api.github.com/users/nodkz/events{/privacy}", - "received_events_url": "https://api.github.com/users/nodkz/received_events", - "type": "User", - "site_admin": false - }, - "lastContribution": 1587254400 - } -] diff --git a/website/core/Footer.js b/website/core/Footer.js deleted file mode 100644 index 4e27052b..00000000 --- a/website/core/Footer.js +++ /dev/null @@ -1,127 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const React = require('react'); - -class Footer extends React.Component { - docUrl(doc, language) { - const baseUrl = this.props.config.baseUrl; - return baseUrl + 'docs/' + doc; - } - - pageUrl(doc, language) { - const baseUrl = this.props.config.baseUrl; - return baseUrl + (language ? language + '/' : '') + doc; - } - - pjax() { - return ( - -