impress-2020/package.json
Matchu d3b9f72e67 Add stale-while-revalidate cache headers
Oh yay, I'm pleased with this! I hope it works out well!

stale-while-revalidate is an HTTP caching feature that gives us the ability to still serve relatively static content like item pages ASAP, while also making sure users generally see updates quickly.

The trick is that we declare a period of time where, you can still serve the data from the cache, but you should _then_ go re-fetch the latest data in the background for next time. This works on end users and on the CDN!

I've scanned the basic wardrobe and homepage stuff and brought them up-to-date, and gave particular attention to the item page, which I hope can be very very snappy now! :3

Note to self: Vercel says we can manually clear out a stale-while-revalidate resource by requesting it with `Pragma: no-cache`. I'm not sure it will listen to us for _fresh_ resources, though, so I'm not sure we can actually use that to flush things out in the way I had been hoping until writing this sentence lol :p
2021-02-02 19:07:48 -08:00

90 lines
3.8 KiB
JSON

{
"name": "impress-2020-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@apollo/client": "^3.3.7",
"@apollographql/graphql-playground-html": "^1.6.24",
"@auth0/auth0-react": "^1.0.0",
"@chakra-ui/icons": "^1.0.4",
"@chakra-ui/react": "^1.2.1",
"@chakra-ui/theme-tools": "^1.0.3",
"@emotion/react": "^11.1.4",
"@emotion/styled": "^11.0.0",
"@loadable/component": "^5.12.0",
"@sendgrid/mail": "^7.2.6",
"@sentry/react": "^5.30.0",
"@sentry/tracing": "^5.30.0",
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2",
"apollo-link-persisted-queries": "^0.2.2",
"apollo-server": "^2.19.2",
"apollo-server-core": "^2.19.2",
"apollo-server-env": "^3.0.0",
"aws-sdk": "^2.726.0",
"canvas": "^2.6.1",
"dataloader": "^2.0.0",
"dompurify": "^2.2.0",
"framer-motion": "^3.1.1",
"graphql": "^15.5.0",
"honeycomb-beeline": "^2.2.0",
"immer": "^8.0.1",
"jimp": "^0.14.0",
"jsonwebtoken": "^8.5.1",
"jwks-rsa": "^1.9.0",
"mysql2": "^2.1.0",
"node-fetch": "^2.6.0",
"react": "^17.0.1",
"react-autosuggest": "^10.0.2",
"react-dom": "^17.0.1",
"react-icons": "^3.11.0",
"react-router-dom": "^5.1.2",
"react-scripts": "^4.0.1",
"react-transition-group": "^4.3.0",
"simple-markdown": "^0.7.2",
"xmlrpc": "^1.3.2"
},
"scripts": {
"start": "yarn build-cached-data && REACT_APP_IMPRESS_LOG_IN_AS=$IMPRESS_LOG_IN_AS react-scripts start",
"build": "yarn build-cached-data && react-scripts build",
"vercel-build": "yum install libuuid-devel libmount-devel && cp /lib64/{libuuid,libmount,libblkid}.so.1 node_modules/canvas/build/Release/",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject",
"mysql": "mysql --host=impress.openneo.net --user=$(dotenv -p IMPRESS_MYSQL_USER) --password=$(dotenv -p IMPRESS_MYSQL_PASSWORD) --database=openneo_impress",
"mysql-dev": "mysql --host=localhost --user=impress_2020_dev --password=impress_2020_dev --database=impress_2020_dev",
"mysql-admin": "mysql --host=impress.openneo.net --user=matchu --password --database=openneo_impress",
"mysqldump": "mysqldump --host=impress.openneo.net --user=$(dotenv -p IMPRESS_MYSQL_USER) --password=$(dotenv -p IMPRESS_MYSQL_PASSWORD) --column-statistics=0",
"download-mysql-schema": "yarn --silent mysqldump --no-data openneo_impress closet_hangers closet_lists items item_translations modeling_logs parents_swf_assets pet_types pet_states swf_assets users | sed 's/ AUTO_INCREMENT=[0-9]*//g' > scripts/setup-mysql-dev-schema.sql && yarn --silent mysqldump openneo_impress species species_translations colors color_translations zones zone_translations > scripts/setup-mysql-dev-constants.sql",
"setup-mysql": "yarn mysql-admin < scripts/setup-mysql.sql",
"setup-mysql-dev": "yarn mysql-dev < scripts/setup-mysql-dev-constants.sql && yarn mysql-dev < scripts/setup-mysql-dev-schema.sql",
"build-cached-data": "node -r dotenv/config scripts/build-cached-data.js",
"cache-asset-manifests": "node -r dotenv/config scripts/cache-asset-manifests.js",
"export-users-to-auth0": "node -r dotenv/config scripts/export-users-to-auth0.js"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"apollo-server-testing": "^2.12.0",
"auth0": "^2.28.0",
"dotenv-cli": "^3.1.0",
"es6-promise-pool": "^2.5.0",
"inquirer": "^7.3.3",
"jest-image-snapshot": "^4.3.0",
"prettier": "^2.0.5",
"react-is": "^16.13.1"
}
}