0
0
Fork 0

Cache attachments on external host with service worker (#7493)

This commit is contained in:
Akihiko Odaki 2018-05-29 07:43:47 +09:00 committed by Eugen Rochko
parent 03f4c214b4
commit d95642f6d9
4 changed files with 30 additions and 3 deletions

View file

@ -6,8 +6,9 @@ const CompressionPlugin = require('compression-webpack-plugin');
const sharedConfig = require('./shared.js');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const OfflinePlugin = require('offline-plugin');
const { env, publicPath } = require('./configuration.js');
const { publicPath } = require('./configuration.js');
const path = require('path');
const { URL } = require('url');
let compressionAlgorithm;
try {
@ -19,6 +20,21 @@ try {
compressionAlgorithm = 'gzip';
}
let attachmentHost;
if (process.env.S3_ENABLED === 'true') {
if (process.env.S3_CLOUDFRONT_HOST) {
attachmentHost = process.env.S3_CLOUDFRONT_HOST;
} else {
attachmentHost = process.env.S3_HOSTNAME || `s3-${process.env.S3_REGION || 'us-east-1'}.amazonaws.com`;
}
} else if (process.env.SWIFT_ENABLED === 'true') {
const { host } = new URL(process.env.SWIFT_OBJECT_URL);
attachmentHost = host;
} else {
attachmentHost = null;
}
module.exports = merge(sharedConfig, {
output: {
filename: '[name]-[chunkhash].js',
@ -90,7 +106,7 @@ module.exports = merge(sharedConfig, {
'**/*.woff',
],
ServiceWorker: {
entry: `imports-loader?process.env=>${encodeURIComponent(JSON.stringify(env))}!${encodeURI(path.join(__dirname, '../../app/javascript/mastodon/service_worker/entry.js'))}`,
entry: `imports-loader?ATTACHMENT_HOST=>${encodeURIComponent(JSON.stringify(attachmentHost))}!${encodeURI(path.join(__dirname, '../../app/javascript/mastodon/service_worker/entry.js'))}`,
cacheName: 'mastodon',
output: '../assets/sw.js',
publicPath: '/sw.js',