This is an archival website about video games. It shows video content from Giant Bomb in a nostalgic and conveninent format, with the actual videos are hosted at Internet Archive.
Thanks for everything! See you next game.
- Node 19+
Install the dependencies:
npm installRun the development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --openUse the check script to validate TypeScript code:
npm run checkUse the format script to format code:
npm run formatUse the test script to test the code:
npm run testUse the build script to make a production build of the site:
npm run buildNote that the site is configured to be run on Netlify and may not run correctly on a different platform. If you want to run it somewhere else you may need to change the adapter in the svelte.config.js file.
The web app relies on bundled JSON files for its data store which need to be refreshed using the Giant Bomb and Internet Archive APIs to get any updates to the collection. This is done using the script in the scripts directory.
This is done in two steps:
- Download the data from GB and IA into temporary files.
- Import the data from the temporary files to their respective JSON files.
It's done in two steps mainly to facilitate the development of the import step,
or to use a local backup when the GB API is down. The downloaded files are stored
in the tmp/ directory and can be deleted once the import is complete.
To download data from Giant Bomb you will need an existing API key. This can
be retrieved from Giant Bomb and you need to
provide it as an environment variable named GB_API_KEY.
set GB_API_KEY='your api key here'Then the data can be downloaded using the download script:
npm run downloadBy default the script will skip files that exist, but if you want to force it to redownload then
just run download:overwrite:
npm run download:overwriteOnce this is complete (or you are working with existing cahced data), the data
can be imported into the site's datastore using the import script:
npm run importNote that the import script is the one that will attempt to download images
for the GB shows.
Both commands can be run together in sequence by invoking the sync script:
npm run sync