From cb5d4771047915f45bd6d8e97da88c6b589b4eed Mon Sep 17 00:00:00 2001 From: Emmanuel Pilande Date: Sun, 23 Feb 2020 18:14:56 -0800 Subject: [PATCH 1/2] Convert gatsby-theme-ui-blog to TypeScript --- .../gatsby-theme-ui-blog/gatsby-config.js | 1 + packages/gatsby-theme-ui-blog/package.json | 1 + .../{index.js => index.ts} | 0 .../components/{post.js => post.ts} | 0 .../components/{posts.js => posts.ts} | 0 .../{layout.js => layout.ts} | 0 .../src/{head.js => head.tsx} | 0 .../src/{layout.js => layout.tsx} | 0 .../src/{post.js => post.tsx} | 0 .../src/{posts.js => posts.tsx} | 0 packages/gatsby-theme-ui-blog/tsconfig.json | 3 + yarn.lock | 398 +++++++++++++++++- 12 files changed, 382 insertions(+), 21 deletions(-) rename packages/gatsby-theme-ui-blog/src/gatsby-plugin-theme-ui/{index.js => index.ts} (100%) rename packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/{post.js => post.ts} (100%) rename packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/{posts.js => posts.ts} (100%) rename packages/gatsby-theme-ui-blog/src/gatsby-theme-ui-layout/{layout.js => layout.ts} (100%) rename packages/gatsby-theme-ui-blog/src/{head.js => head.tsx} (100%) rename packages/gatsby-theme-ui-blog/src/{layout.js => layout.tsx} (100%) rename packages/gatsby-theme-ui-blog/src/{post.js => post.tsx} (100%) rename packages/gatsby-theme-ui-blog/src/{posts.js => posts.tsx} (100%) create mode 100644 packages/gatsby-theme-ui-blog/tsconfig.json diff --git a/packages/gatsby-theme-ui-blog/gatsby-config.js b/packages/gatsby-theme-ui-blog/gatsby-config.js index 1c0ce110e..ad7e2b075 100644 --- a/packages/gatsby-theme-ui-blog/gatsby-config.js +++ b/packages/gatsby-theme-ui-blog/gatsby-config.js @@ -4,6 +4,7 @@ module.exports = options => ({ resolve: 'gatsby-theme-blog-core', options, }, + 'gatsby-plugin-typescript', 'gatsby-theme-ui-layout', 'gatsby-plugin-theme-ui', ], diff --git a/packages/gatsby-theme-ui-blog/package.json b/packages/gatsby-theme-ui-blog/package.json index 6aef1e711..8ce829bce 100644 --- a/packages/gatsby-theme-ui-blog/package.json +++ b/packages/gatsby-theme-ui-blog/package.json @@ -12,6 +12,7 @@ }, "devDependencies": { "gatsby": "^2.13.73", + "gatsby-plugin-typescript": "^2.1.27", "react": "^16.9.0", "react-dom": "^16.9.0" }, diff --git a/packages/gatsby-theme-ui-blog/src/gatsby-plugin-theme-ui/index.js b/packages/gatsby-theme-ui-blog/src/gatsby-plugin-theme-ui/index.ts similarity index 100% rename from packages/gatsby-theme-ui-blog/src/gatsby-plugin-theme-ui/index.js rename to packages/gatsby-theme-ui-blog/src/gatsby-plugin-theme-ui/index.ts diff --git a/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/post.js b/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/post.ts similarity index 100% rename from packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/post.js rename to packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/post.ts diff --git a/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/posts.js b/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/posts.ts similarity index 100% rename from packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/posts.js rename to packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/posts.ts diff --git a/packages/gatsby-theme-ui-blog/src/gatsby-theme-ui-layout/layout.js b/packages/gatsby-theme-ui-blog/src/gatsby-theme-ui-layout/layout.ts similarity index 100% rename from packages/gatsby-theme-ui-blog/src/gatsby-theme-ui-layout/layout.js rename to packages/gatsby-theme-ui-blog/src/gatsby-theme-ui-layout/layout.ts diff --git a/packages/gatsby-theme-ui-blog/src/head.js b/packages/gatsby-theme-ui-blog/src/head.tsx similarity index 100% rename from packages/gatsby-theme-ui-blog/src/head.js rename to packages/gatsby-theme-ui-blog/src/head.tsx diff --git a/packages/gatsby-theme-ui-blog/src/layout.js b/packages/gatsby-theme-ui-blog/src/layout.tsx similarity index 100% rename from packages/gatsby-theme-ui-blog/src/layout.js rename to packages/gatsby-theme-ui-blog/src/layout.tsx diff --git a/packages/gatsby-theme-ui-blog/src/post.js b/packages/gatsby-theme-ui-blog/src/post.tsx similarity index 100% rename from packages/gatsby-theme-ui-blog/src/post.js rename to packages/gatsby-theme-ui-blog/src/post.tsx diff --git a/packages/gatsby-theme-ui-blog/src/posts.js b/packages/gatsby-theme-ui-blog/src/posts.tsx similarity index 100% rename from packages/gatsby-theme-ui-blog/src/posts.js rename to packages/gatsby-theme-ui-blog/src/posts.tsx diff --git a/packages/gatsby-theme-ui-blog/tsconfig.json b/packages/gatsby-theme-ui-blog/tsconfig.json new file mode 100644 index 000000000..07f79174b --- /dev/null +++ b/packages/gatsby-theme-ui-blog/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../core/tsconfig" +} diff --git a/yarn.lock b/yarn.lock index 2ae0ddd2a..51d937f75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -539,6 +539,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.7.4" +"@babel/plugin-proposal-numeric-separator@^7.7.4": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread@7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" @@ -665,6 +673,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread@7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.0.tgz#9b37d580d459682364d8602494c69145b394fd4c" @@ -1323,7 +1338,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-typescript" "^7.7.2" -"@babel/preset-typescript@^7.8.3": +"@babel/preset-typescript@^7.7.4", "@babel/preset-typescript@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.8.3.tgz#90af8690121beecd9a75d0cc26c6be39d1595d13" integrity sha512-qee5LgPGui9zQ0jR1TeU5/fP9L+ovoArklEqY12ek8P/wV5ZeM/VYSQYwICeoT6FfpJTekG9Ilay5PhwsOpMHA== @@ -2891,6 +2906,11 @@ resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.5.5.tgz#6f88bcb847ebd0117fc81bcd26b83220062fd881" integrity sha512-IudQkyZuM8T1CrSX9r0ShPXCABjtEtyrV4lxQqhKAwFqw1aYpy/5LOZhitMLoJTybZPVdPotuh+zjqYy9ZOSbA== +"@mikaelkristiansson/domready@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@mikaelkristiansson/domready/-/domready-1.0.10.tgz#f6d69866c0857664e70690d7a0bfedb72143adb5" + integrity sha512-6cDuZeKSCSJ1KvfEQ25Y8OXUjqDJZ+HgUs6dhASWbAX8fxVraTfPsSeRe2bN+4QJDsgUaXaMWBYfRomCr04GGg== + "@mikaelkristiansson/domready@^1.0.9": version "1.0.9" resolved "https://registry.yarnpkg.com/@mikaelkristiansson/domready/-/domready-1.0.9.tgz#b2b85d8ac7bb2797e577050b61aeaf1b26fbd906" @@ -3064,6 +3084,16 @@ react-lifecycles-compat "^3.0.4" warning "^3.0.0" +"@reach/router@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.3.1.tgz#0a49f75fa9621323d6e21c803447bcfcde1713b2" + integrity sha512-Ov1j1J+pSgXliJHFL7XWhjyREwc6GxeWfgBTa5MMH5eRmYtHbPhaovba4xKo7aTVCg8fxkt2yDMNSpvwfUP+pA== + dependencies: + create-react-context "0.3.0" + invariant "^2.2.3" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + "@samverschueren/stream-to-observable@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" @@ -4915,6 +4945,11 @@ babel-plugin-remove-graphql-queries@^2.7.19: resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.7.19.tgz#063b369cbf0123cbcebeffb75eab465d8f0b16c8" integrity sha512-/DS620ztyyrqrqjmz/KHDt++ktn+4RdvfDf5KCUmt6iJOglgNm7uHkE+snuvvL/xhNNuuPBLErc23Q0cR6MSiQ== +babel-plugin-remove-graphql-queries@^2.7.23: + version "2.7.23" + resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.7.23.tgz#7cecb19b6057eb4de92d147dfd4d51c885cc356a" + integrity sha512-SvWLivXtbeExS0eUPrRpg8EYiDPcOlzaO/vePcdmW2X8GBC1miezXS+RYPYyt4r9Z0Cg0ZQe58ggssF/8ym3rg== + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -5414,6 +5449,25 @@ babel-preset-gatsby@^0.2.26: babel-plugin-macros "^2.8.0" babel-plugin-transform-react-remove-prop-types "^0.4.24" +babel-preset-gatsby@^0.2.29: + version "0.2.29" + resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.2.29.tgz#cf50a2ec0e6d44fd715b559bfd5481c4221cab5c" + integrity sha512-asJV/UMq7riYiY4ZhMi83Mbhwwtkvhp9gmmJgJJSJyAWw/tTgAmYan6Udpco3P4Kvd91lj+f8kzXJHT0G2sdwQ== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.7.4" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.7.4" + "@babel/plugin-proposal-optional-chaining" "^7.7.5" + "@babel/plugin-syntax-dynamic-import" "^7.7.4" + "@babel/plugin-transform-runtime" "^7.7.6" + "@babel/plugin-transform-spread" "^7.7.4" + "@babel/preset-env" "^7.7.6" + "@babel/preset-react" "^7.7.4" + "@babel/runtime" "^7.7.6" + babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-macros "^2.8.0" + babel-plugin-transform-react-remove-prop-types "^0.4.24" + gatsby-core-utils "^1.0.28" + babel-preset-jest@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" @@ -7734,6 +7788,14 @@ create-react-context@0.2.2: fbjs "^0.8.0" gud "^1.0.0" +create-react-context@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" + integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw== + dependencies: + gud "^1.0.0" + warning "^4.0.3" + create-react-context@^0.2.1, create-react-context@^0.2.2: version "0.2.3" resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3" @@ -10786,6 +10848,54 @@ gatsby-cli@^2.8.19: ink "^2.6.0" ink-spinner "^3.0.1" +gatsby-cli@^2.8.30: + version "2.8.30" + resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.8.30.tgz#29655d05890d7c54b04d3fecd97446941e0c0507" + integrity sha512-dEGuvF91EwSzLwBV98NDihtn6e6uZedcPljlx9Mr7ZQLlOhGAVDcWR9KNq0Z1SWeRInwWc3cEdUJ6TUmPa308Q== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/runtime" "^7.7.6" + "@hapi/joi" "^15.1.1" + better-opn "^1.0.0" + bluebird "^3.7.2" + chalk "^2.4.2" + clipboardy "^2.1.0" + common-tags "^1.8.0" + configstore "^5.0.0" + convert-hrtime "^3.0.0" + core-js "^2.6.11" + envinfo "^7.5.0" + execa "^3.4.0" + fs-exists-cached "^1.0.0" + fs-extra "^8.1.0" + gatsby-core-utils "^1.0.28" + gatsby-telemetry "^1.1.49" + hosted-git-info "^3.0.2" + is-valid-path "^0.1.1" + lodash "^4.17.15" + meant "^1.0.1" + node-fetch "^2.6.0" + object.entries "^1.1.0" + opentracing "^0.14.4" + pretty-error "^2.1.1" + progress "^2.0.3" + prompts "^2.3.0" + react "^16.8.0" + redux "^4.0.4" + resolve-cwd "^2.0.0" + semver "^6.3.0" + signal-exit "^3.0.2" + source-map "0.7.3" + stack-trace "^0.0.10" + strip-ansi "^5.2.0" + update-notifier "^3.0.1" + uuid "3.3.3" + yargs "^12.0.5" + yurnalist "^1.1.1" + optionalDependencies: + ink "^2.6.0" + ink-spinner "^3.0.1" + gatsby-core-utils@^1.0.24, gatsby-core-utils@^1.0.28: version "1.0.28" resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.0.28.tgz#aa66e49cdcc1892e7817a32fdd806cf5e16ea309" @@ -10801,6 +10911,13 @@ gatsby-graphiql-explorer@^0.2.31: dependencies: "@babel/runtime" "^7.7.6" +gatsby-graphiql-explorer@^0.2.34: + version "0.2.34" + resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.2.34.tgz#ed3e8406e7f263687727717481ccee9e5b4cb83c" + integrity sha512-r3JW4NPC69kRV8VTlDYrR9E9ROyw3Po4qKB5C067fE0bRhtU3DTSSf6MT+C97XS+JqKEZAaub0unptB//gnaCw== + dependencies: + "@babel/runtime" "^7.7.6" + gatsby-link@^2.2.27: version "2.2.27" resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-2.2.27.tgz#d36aa62e9854ef3102ca85c2a6fa833943059303" @@ -10810,6 +10927,15 @@ gatsby-link@^2.2.27: "@types/reach__router" "^1.2.6" prop-types "^15.7.2" +gatsby-link@^2.2.29: + version "2.2.29" + resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-2.2.29.tgz#adde4f8d548728282f375affffa34d2c10bc5327" + integrity sha512-Yl6CIseRSaF9oLgcaLc4e95al2IQ4fHxMjKQtKRZEH4sFk0BIcLaVfqPwwWBdUK0rGkyNXqNs5lATBWqmg1FwA== + dependencies: + "@babel/runtime" "^7.7.6" + "@types/reach__router" "^1.2.6" + prop-types "^15.7.2" + gatsby-page-utils@^0.0.35: version "0.0.35" resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-0.0.35.tgz#80ec1aea3078465be50d24b3fdfe9268238c100a" @@ -10824,6 +10950,20 @@ gatsby-page-utils@^0.0.35: lodash "^4.17.15" micromatch "^3.1.10" +gatsby-page-utils@^0.0.39: + version "0.0.39" + resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-0.0.39.tgz#5d331b40488b984b95ded9a36470e77c46a9400e" + integrity sha512-lDrrenBnh5HR/9mgfhePPvCt2KueccbQu/KPYkBKlwz0hcZ/xl28cgit0Bj9Ijqx7XTMxBd2gtgvgB2QNd8jmA== + dependencies: + "@babel/runtime" "^7.7.6" + bluebird "^3.7.2" + chokidar "3.3.0" + fs-exists-cached "^1.0.0" + gatsby-core-utils "^1.0.28" + glob "^7.1.6" + lodash "^4.17.15" + micromatch "^3.1.10" + gatsby-plugin-catch-links@^2.0.13: version "2.1.25" resolved "https://registry.yarnpkg.com/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-2.1.25.tgz#163332de7708317146239250f95dff16af748914" @@ -10899,6 +11039,19 @@ gatsby-plugin-page-creator@^2.1.36: lodash "^4.17.15" micromatch "^3.1.10" +gatsby-plugin-page-creator@^2.1.40: + version "2.1.40" + resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.1.40.tgz#96c817781dfb1f191570c69d2e9af114a3cd23df" + integrity sha512-jwY8LTOOobrKUr1ph+/IHAHDuzjSrXsAu2YBqZg7wc/J6gre0YAgOU2yAxY34CadE34jieISO3FDIyHMii3vPg== + dependencies: + "@babel/runtime" "^7.7.6" + bluebird "^3.7.2" + fs-exists-cached "^1.0.0" + gatsby-page-utils "^0.0.39" + glob "^7.1.6" + lodash "^4.17.15" + micromatch "^3.1.10" + gatsby-plugin-react-helmet@^3.0.12, gatsby-plugin-react-helmet@^3.1.3: version "3.1.22" resolved "https://registry.yarnpkg.com/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-3.1.22.tgz#f4c148dfe964af1e1364e6bcd9a4cd3226e8cd7a" @@ -10931,6 +11084,19 @@ gatsby-plugin-sharp@^2.4.5: svgo "1.3.2" uuid "^3.3.3" +gatsby-plugin-typescript@^2.1.27: + version "2.1.27" + resolved "https://registry.yarnpkg.com/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.1.27.tgz#1b19c7c79e73fa44eebebad4cf067d4dc4ea99c4" + integrity sha512-c1Iv5tDMR/+V0ylZU6lGHkLCMNfSF/K3/60TTO/HvvS0OqNgX9ccTfD9LAiPDQeGWNPdeMaQx3aYJNKrVKLS1Q== + dependencies: + "@babel/core" "^7.7.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.7.4" + "@babel/plugin-proposal-numeric-separator" "^7.7.4" + "@babel/plugin-proposal-optional-chaining" "^7.7.5" + "@babel/preset-typescript" "^7.7.4" + "@babel/runtime" "^7.7.6" + babel-plugin-remove-graphql-queries "^2.7.23" + gatsby-react-router-scroll@^2.1.19: version "2.1.19" resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.1.19.tgz#4bac8cb5aaba5e2ad6b589a3d289d39257c3b5da" @@ -10940,6 +11106,15 @@ gatsby-react-router-scroll@^2.1.19: scroll-behavior "^0.9.10" warning "^3.0.0" +gatsby-react-router-scroll@^2.1.21: + version "2.1.21" + resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.1.21.tgz#bc4aeee424da034287b6fe64d6b08f47d6cb6881" + integrity sha512-aEjj8baFlWOfgU/HGiqxKHtfEtYMnU2qDWPxbYK07xxvXqk3reUu3cluCSaO0EqNUALwJkaz2QsYLzo9MszbeA== + dependencies: + "@babel/runtime" "^7.7.6" + scroll-behavior "^0.9.10" + warning "^3.0.0" + gatsby-remark-copy-linked-files@^2.1.37: version "2.1.37" resolved "https://registry.yarnpkg.com/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-2.1.37.tgz#5a1e80ee20512d8b4de8aa0f7d44aefa84e66115" @@ -11034,6 +11209,29 @@ gatsby-telemetry@^1.1.44: stack-utils "1.0.2" uuid "3.3.3" +gatsby-telemetry@^1.1.49: + version "1.1.49" + resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.1.49.tgz#f577738fe03a4aeef4bb5b481969e91fd52ca22d" + integrity sha512-NLT843FVp3pt1gjJ/vsclgw6h7pIKDF9l8sWBFiIrJUjiwGqCVC+emylbuK8MFE8Js989SP40piqvgo+orEl3g== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/runtime" "^7.7.6" + bluebird "^3.7.2" + boxen "^4.2.0" + configstore "^5.0.0" + envinfo "^7.5.0" + fs-extra "^8.1.0" + gatsby-core-utils "^1.0.28" + git-up "4.0.1" + is-docker "2.0.0" + lodash "^4.17.15" + node-fetch "2.6.0" + resolve-cwd "^2.0.0" + source-map "^0.7.3" + stack-trace "^0.0.10" + stack-utils "1.0.2" + uuid "3.3.3" + gatsby-theme-blog-core@^1.0.2: version "1.0.70" resolved "https://registry.yarnpkg.com/gatsby-theme-blog-core/-/gatsby-theme-blog-core-1.0.70.tgz#733157487f4c1b61f0b367f96417a30e859aa875" @@ -11063,6 +11261,144 @@ gatsby-transformer-sharp@^2.3.14: semver "^5.7.1" sharp "^0.23.4" +gatsby@*: + version "2.19.19" + resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.19.19.tgz#8d4aa54e8c8da9cb38c5c7a15cfa358aec496f65" + integrity sha512-Is2s9qJ5p9fSzwhAf2LpKcv5l3/03Le3ZMJiU4ZOOauFhzLbsEIWK/Fu90GwnC8T7t9iWH3myI9NGh3a9+6cAQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/core" "^7.7.5" + "@babel/parser" "^7.7.5" + "@babel/polyfill" "^7.7.0" + "@babel/runtime" "^7.7.6" + "@babel/traverse" "^7.7.4" + "@hapi/joi" "^15.1.1" + "@mikaelkristiansson/domready" "^1.0.10" + "@pieh/friendly-errors-webpack-plugin" "1.7.0-chalk-2" + "@reach/router" "^1.3.1" + "@typescript-eslint/eslint-plugin" "^2.11.0" + "@typescript-eslint/parser" "^2.11.0" + address "1.1.2" + autoprefixer "^9.7.3" + axios "^0.19.0" + babel-core "7.0.0-bridge.0" + babel-eslint "^10.0.3" + babel-loader "^8.0.6" + babel-plugin-add-module-exports "^0.3.3" + babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-remove-graphql-queries "^2.7.23" + babel-preset-gatsby "^0.2.29" + better-opn "1.0.0" + better-queue "^3.8.10" + bluebird "^3.7.2" + browserslist "3.2.8" + cache-manager "^2.10.1" + cache-manager-fs-hash "^0.0.7" + chalk "^2.4.2" + chokidar "3.3.0" + common-tags "^1.8.0" + compression "^1.7.4" + convert-hrtime "^3.0.0" + copyfiles "^2.1.1" + core-js "^2.6.11" + cors "^2.8.5" + css-loader "^1.0.1" + debug "^3.2.6" + del "^5.1.0" + detect-port "^1.3.0" + devcert-san "^0.3.3" + dotenv "^8.2.0" + eslint "^6.7.2" + eslint-config-react-app "^5.1.0" + eslint-loader "^2.2.1" + eslint-plugin-flowtype "^3.13.0" + eslint-plugin-graphql "^3.1.0" + eslint-plugin-import "^2.19.1" + eslint-plugin-jsx-a11y "^6.2.3" + eslint-plugin-react "^7.17.0" + eslint-plugin-react-hooks "^1.7.0" + event-source-polyfill "^1.0.11" + express "^4.17.1" + express-graphql "^0.9.0" + fast-levenshtein "^2.0.6" + file-loader "^1.1.11" + flat "^4.1.0" + fs-exists-cached "1.0.0" + fs-extra "^8.1.0" + gatsby-cli "^2.8.30" + gatsby-core-utils "^1.0.28" + gatsby-graphiql-explorer "^0.2.34" + gatsby-link "^2.2.29" + gatsby-plugin-page-creator "^2.1.40" + gatsby-react-router-scroll "^2.1.21" + gatsby-telemetry "^1.1.49" + glob "^7.1.6" + got "8.3.2" + graphql "^14.5.8" + graphql-compose "^6.3.7" + graphql-playground-middleware-express "^1.7.12" + hasha "^5.1.0" + invariant "^2.2.4" + is-relative "^1.0.0" + is-relative-url "^3.0.0" + is-wsl "^2.1.1" + jest-worker "^24.9.0" + json-loader "^0.5.7" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + lokijs "^1.5.8" + md5 "^2.2.1" + md5-file "^3.2.3" + micromatch "^3.1.10" + mime "^2.4.4" + mini-css-extract-plugin "^0.8.0" + mitt "^1.2.0" + mkdirp "^0.5.1" + moment "^2.24.0" + name-all-modules-plugin "^1.0.1" + normalize-path "^2.1.1" + null-loader "^0.1.1" + opentracing "^0.14.4" + optimize-css-assets-webpack-plugin "^5.0.3" + p-defer "^3.0.0" + parseurl "^1.3.3" + physical-cpu-count "^2.0.0" + pnp-webpack-plugin "^1.5.0" + postcss-flexbugs-fixes "^3.3.1" + postcss-loader "^2.1.6" + prompts "^2.3.0" + prop-types "^15.7.2" + raw-loader "^0.5.1" + react-dev-utils "^4.2.3" + react-error-overlay "^3.0.0" + react-hot-loader "^4.12.18" + redux "^4.0.4" + redux-thunk "^2.3.0" + semver "^5.7.1" + shallow-compare "^1.2.2" + sift "^5.1.0" + signal-exit "^3.0.2" + slugify "^1.3.6" + socket.io "^2.3.0" + stack-trace "^0.0.10" + string-similarity "^1.2.2" + style-loader "^0.23.1" + terser-webpack-plugin "^1.4.2" + "true-case-path" "^2.2.1" + type-of "^2.0.1" + url-loader "^1.1.2" + util.promisify "^1.0.0" + uuid "^3.3.3" + v8-compile-cache "^1.1.2" + webpack "~4.41.2" + webpack-dev-middleware "^3.7.2" + webpack-dev-server "^3.9.0" + webpack-hot-middleware "^2.25.0" + webpack-merge "^4.2.2" + webpack-stats-plugin "^0.3.0" + xstate "^4.7.2" + yaml-loader "^0.5.0" + gatsby@^2.13.64, gatsby@^2.13.73, gatsby@^2.3.6, gatsby@^2.6.3: version "2.18.12" resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.18.12.tgz#caae4482aab2e30b75b30a0e96b7eb1dd21e6f42" @@ -12054,6 +12390,14 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasha@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.0.tgz#33094d1f69c40a4a6ac7be53d5fe3ff95a269e0c" + integrity sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw== + dependencies: + is-stream "^2.0.0" + type-fest "^0.8.0" + hast-to-hyperscript@^7.0.0: version "7.0.4" resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz#7c4c037d9a8ea19b0a3fdb676a26448ad922353d" @@ -17046,6 +17390,11 @@ p-defer@^1.0.0: resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= +p-defer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" + integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== + p-each-series@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" @@ -19575,6 +19924,16 @@ react-dev-utils@^4.2.3: strip-ansi "3.0.1" text-table "0.2.0" +react-dom@*, react-dom@^16.8.6, react-dom@^16.9.0: + version "16.12.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.12.0.tgz#0da4b714b8d13c2038c9396b54a92baea633fe11" + integrity sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.18.0" + react-dom@^15.6.1: version "15.6.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" @@ -19595,16 +19954,6 @@ react-dom@^16.8.4: prop-types "^15.6.2" scheduler "^0.16.2" -react-dom@^16.8.6, react-dom@^16.9.0: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.12.0.tgz#0da4b714b8d13c2038c9396b54a92baea633fe11" - integrity sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.18.0" - react-error-overlay@5.1.6: version "5.1.6" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.6.tgz#0cd73407c5d141f9638ae1e0c63e7b2bf7e9929d" @@ -19705,6 +20054,15 @@ react-test-renderer@^16.8.6: react-is "^16.8.6" scheduler "^0.18.0" +react@*, react@^16.11.0, react@^16.12.0, react@^16.8.0, react@^16.8.4, react@^16.8.6, react@^16.9.0: + version "16.12.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83" + integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + react@^15.6.1: version "15.6.2" resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" @@ -19716,15 +20074,6 @@ react@^15.6.1: object-assign "^4.1.0" prop-types "^15.5.10" -react@^16.11.0, react@^16.12.0, react@^16.8.4, react@^16.8.6, react@^16.9.0: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83" - integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - reactcss@^1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/reactcss/-/reactcss-1.2.3.tgz#c00013875e557b1cf0dfd9a368a1c3dab3b548dd" @@ -23392,7 +23741,7 @@ type-fest@^0.3.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== -type-fest@^0.8.1: +type-fest@^0.8.0, type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== @@ -24512,6 +24861,13 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" +warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + watchpack@2.0.0-beta.5: version "2.0.0-beta.5" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0-beta.5.tgz#c005db39570d81d9d34334870abc0f548901b880" From 7ac73eb283cd0de484363544ab2792e37a9f8951 Mon Sep 17 00:00:00 2001 From: Emmanuel Pilande Date: Sun, 23 Feb 2020 18:55:32 -0800 Subject: [PATCH 2/2] Add typings to props --- packages/gatsby-theme-ui-blog/package.json | 6 +++-- .../gatsby-theme-blog-core/components/post.ts | 19 ++++++++++++++- .../components/posts.ts | 23 ++++++++++++++++++- packages/gatsby-theme-ui-blog/src/head.tsx | 15 +++++++++++- packages/gatsby-theme-ui-blog/src/layout.tsx | 7 +++--- packages/gatsby-theme-ui-blog/src/post.tsx | 15 ++++++++++-- packages/gatsby-theme-ui-blog/src/posts.tsx | 12 ++++++++-- yarn.lock | 7 ++++++ 8 files changed, 92 insertions(+), 12 deletions(-) diff --git a/packages/gatsby-theme-ui-blog/package.json b/packages/gatsby-theme-ui-blog/package.json index 8ce829bce..02faa2db1 100644 --- a/packages/gatsby-theme-ui-blog/package.json +++ b/packages/gatsby-theme-ui-blog/package.json @@ -11,6 +11,7 @@ "react-dom": "^16.8.0" }, "devDependencies": { + "@types/react-helmet": "^5.0.15", "gatsby": "^2.13.73", "gatsby-plugin-typescript": "^2.1.27", "react": "^16.9.0", @@ -19,13 +20,14 @@ "dependencies": { "@emotion/core": "^10.0.0", "@mdx-js/react": "^1.0.0", + "@theme-ui/core": "^0.3.1", + "@theme-ui/mdx": "^0.3.0", "@theme-ui/preset-base": "^0.3.0", "gatsby-plugin-react-helmet": "^3.1.3", "gatsby-plugin-theme-ui": "^0.3.0", "gatsby-theme-blog-core": "^1.0.2", "gatsby-theme-ui-layout": "^0.3.0", - "react-helmet": "^5.2.1", - "theme-ui": "^0.3.1" + "react-helmet": "^5.2.1" }, "repository": "system-ui/theme-ui", "license": "MIT" diff --git a/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/post.ts b/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/post.ts index c6a5373d8..ba945f114 100644 --- a/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/post.ts +++ b/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/post.ts @@ -2,7 +2,24 @@ import { jsx } from 'theme-ui' import { MDXRenderer } from 'gatsby-plugin-mdx' import Post from '../../post' -export default props => { +interface BlogPost { + id: string + excerpt: string + body: string + slug: string + title: string + date: string + tags: string[] + keywords: string[] +} + +interface Props { + data: { + blogPost: BlogPost + } +} + +export default (props: Props) => { const { body } = props.data.blogPost const children = jsx(MDXRenderer, { children: body }) diff --git a/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/posts.ts b/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/posts.ts index b539255d8..6ff0b5d2b 100644 --- a/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/posts.ts +++ b/packages/gatsby-theme-ui-blog/src/gatsby-theme-blog-core/components/posts.ts @@ -1,7 +1,28 @@ import { jsx } from 'theme-ui' import Posts from '../../posts' -export default props => { +export interface PostNode { + id: string + excerpt: string + slug: string + title: string + date: string + tags: string[] +} + +interface AllBlogPost { + edges: { + node: PostNode + }[] +} + +interface Props { + data: { + allBlogPost: AllBlogPost + } +} + +export default (props: Props) => { const posts = props.data.allBlogPost.edges.map(e => e.node) return jsx(Posts, { diff --git a/packages/gatsby-theme-ui-blog/src/head.tsx b/packages/gatsby-theme-ui-blog/src/head.tsx index e7838bc1e..630628c78 100644 --- a/packages/gatsby-theme-ui-blog/src/head.tsx +++ b/packages/gatsby-theme-ui-blog/src/head.tsx @@ -1,7 +1,18 @@ import React from 'react' import { Helmet } from 'react-helmet' -export default ({ lang = 'en-us', title, excerpt, ...props }) => ( +export interface HeadProps { + lang?: string + title?: string + excerpt?: string +} + +const Head: React.FC = ({ + lang = 'en-us', + title, + excerpt, + ...props +}) => ( ( {excerpt && } ) + +export default Head diff --git a/packages/gatsby-theme-ui-blog/src/layout.tsx b/packages/gatsby-theme-ui-blog/src/layout.tsx index aa3e0204a..b95917db1 100644 --- a/packages/gatsby-theme-ui-blog/src/layout.tsx +++ b/packages/gatsby-theme-ui-blog/src/layout.tsx @@ -1,10 +1,11 @@ import React from 'react' -import { Link } from 'gatsby' -import Head from './head' +import Head, { HeadProps } from './head' -export default props => ( +const Layout: React.FC = props => ( <> {props.children} ) + +export default Layout diff --git a/packages/gatsby-theme-ui-blog/src/post.tsx b/packages/gatsby-theme-ui-blog/src/post.tsx index 8dc74410b..44ecaed4c 100644 --- a/packages/gatsby-theme-ui-blog/src/post.tsx +++ b/packages/gatsby-theme-ui-blog/src/post.tsx @@ -1,8 +1,17 @@ /** @jsx jsx */ -import { jsx, Styled } from 'theme-ui' +import { jsx } from '@theme-ui/core' +import { Styled } from '@theme-ui/mdx' import { Layout } from 'gatsby-theme-ui-layout' -export default ({ +interface PostProps { + title?: string + date?: string + excerpt?: string + keywords?: string[] + tags?: string[] +} + +const Post: React.FC = ({ title, date, excerpt, @@ -19,3 +28,5 @@ export default ({ ) + +export default Post diff --git a/packages/gatsby-theme-ui-blog/src/posts.tsx b/packages/gatsby-theme-ui-blog/src/posts.tsx index 3ac6cbd8c..582a3e9cb 100644 --- a/packages/gatsby-theme-ui-blog/src/posts.tsx +++ b/packages/gatsby-theme-ui-blog/src/posts.tsx @@ -1,9 +1,15 @@ /** @jsx jsx */ -import { jsx, Styled } from 'theme-ui' +import { jsx } from '@theme-ui/core' +import { Styled } from '@theme-ui/mdx' import { Link } from 'gatsby' import { Layout } from 'gatsby-theme-ui-layout' +import { PostNode } from './gatsby-theme-blog-core/components/posts' -export default ({ posts, ...props }) => ( +interface PostsProps { + posts: PostNode[] +} + +const Posts: React.FC = ({ posts, ...props }) => (
    @@ -16,3 +22,5 @@ export default ({ posts, ...props }) => ( ) + +export default Posts diff --git a/yarn.lock b/yarn.lock index 51d937f75..c1206ce1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3579,6 +3579,13 @@ dependencies: "@types/react" "*" +"@types/react-helmet@^5.0.15": + version "5.0.15" + resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-5.0.15.tgz#af0370617307e9f062c6aee0f1f5588224ce646e" + integrity sha512-CCjqvecDJTXRrHG8aTc2YECcQCl26za/q+NaBRvy/wtm0Uh38koM2dpv2bG1xJV4ckz3t1lm2/5KU6nt2s9BWg== + dependencies: + "@types/react" "*" + "@types/react@*": version "16.9.16" resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.16.tgz#4f12515707148b1f53a8eaa4341dae5dfefb066d"