add fetch support
This commit is contained in:
parent
558ef18b58
commit
e03afbd980
5 changed files with 19 additions and 5 deletions
|
@ -9,7 +9,8 @@
|
||||||
import news from '../data/news.json';
|
import news from '../data/news.json';
|
||||||
import users from '../data/users.json';
|
import users from '../data/users.json';
|
||||||
|
|
||||||
export function setup({ context, request }) {
|
export async function setup({ context, request, fetch }) {
|
||||||
|
const pokemonData = await fetch(`https://pokeapi.co/api/v2/pokemon/ditto`);
|
||||||
return {
|
return {
|
||||||
context: {
|
context: {
|
||||||
title: 'Community & News',
|
title: 'Community & News',
|
||||||
|
@ -18,6 +19,7 @@
|
||||||
// Add your project, organization, or company to the end of this list!
|
// Add your project, organization, or company to the end of this list!
|
||||||
news,
|
news,
|
||||||
users,
|
users,
|
||||||
|
pokemonData: await pokemonData.json(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,6 +39,10 @@
|
||||||
<a href="https://github.com/snowpackjs/snowpack/edit/main/www/_data/news.js">Submit it!</a>
|
<a href="https://github.com/snowpackjs/snowpack/edit/main/www/_data/news.js">Submit it!</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In case you're curious, the best pokemon is <strong>{context.pokemonData.name}.</strong>
|
||||||
|
</p>
|
||||||
|
|
||||||
<div class="card-grid card-grid-3">
|
<div class="card-grid card-grid-3">
|
||||||
<article class="discord-banner">
|
<article class="discord-banner">
|
||||||
<a href="https://discord.gg/snowpack" style="flex-shrink: 0; height: 48px;"><img alt="Join us on Discord!"
|
<a href="https://discord.gg/snowpack" style="flex-shrink: 0; height: 48px;"><img alt="Join us on Discord!"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/** @type {import("snowpack").SnowpackUserConfig } */
|
/** @type {import("snowpack").SnowpackUserConfig } */
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
mount: {
|
mount: {
|
||||||
public: '/',
|
public: '/',
|
||||||
//src: '/_dist_',
|
//src: '/_dist_',
|
||||||
|
@ -12,9 +13,9 @@ module.exports = {
|
||||||
'@snowpack/plugin-vue'
|
'@snowpack/plugin-vue'
|
||||||
],
|
],
|
||||||
packageOptions: {
|
packageOptions: {
|
||||||
// Blocked by CSS asset support
|
external: [
|
||||||
// source: 'remote',
|
'node-fetch'
|
||||||
// types: true,
|
]
|
||||||
},
|
},
|
||||||
devOptions: {
|
devOptions: {
|
||||||
// Eleventy updates multiple files at once, so add a 1000ms delay before we trigger a browser update
|
// Eleventy updates multiple files at once, so add a 1000ms delay before we trigger a browser update
|
||||||
|
|
5
package-lock.json
generated
5
package-lock.json
generated
|
@ -2267,6 +2267,11 @@
|
||||||
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node-fetch": {
|
||||||
|
"version": "2.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||||
|
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||||
|
},
|
||||||
"node-releases": {
|
"node-releases": {
|
||||||
"version": "1.1.71",
|
"version": "1.1.71",
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
"magic-string": "^0.25.3",
|
"magic-string": "^0.25.3",
|
||||||
"micromark": "^2.11.4",
|
"micromark": "^2.11.4",
|
||||||
"micromark-extension-gfm": "^0.3.3",
|
"micromark-extension-gfm": "^0.3.3",
|
||||||
|
"node-fetch": "^2.6.1",
|
||||||
"postcss": "^8.2.8",
|
"postcss": "^8.2.8",
|
||||||
"postcss-modules": "^4.0.0",
|
"postcss-modules": "^4.0.0",
|
||||||
"react": "^17.0.1",
|
"react": "^17.0.1",
|
||||||
|
|
|
@ -152,11 +152,12 @@ export async function __renderPage({request, children}) {
|
||||||
|
|
||||||
const isRoot = true;
|
const isRoot = true;
|
||||||
const merge = (await import('deepmerge')).default;
|
const merge = (await import('deepmerge')).default;
|
||||||
|
const fetch = (await import('node-fetch')).default;
|
||||||
|
|
||||||
// call all children setup scripts, in order, and return.
|
// call all children setup scripts, in order, and return.
|
||||||
let mergedContext = {};
|
let mergedContext = {};
|
||||||
for (const child of [currentChild, ...children]) {
|
for (const child of [currentChild, ...children]) {
|
||||||
const childSetupResult = await child.setup({request, context: mergedContext});
|
const childSetupResult = await child.setup({request, fetch, context: mergedContext});
|
||||||
mergedContext = childSetupResult.context ? merge(mergedContext, childSetupResult.context) : mergedContext;
|
mergedContext = childSetupResult.context ? merge(mergedContext, childSetupResult.context) : mergedContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue