const webpack = require("webpack"); const path = require("path"); const locales = require("../locales"); const meta = require("../package.json"); const isProduction = process.env.NODE_ENV === "production"; module.exports = { mode: isProduction ? "production" : "development", stats: "errors-only", entry: "./src/sw.ts", output: { path: path.resolve(__dirname, "../built/_sw_dist_"), filename: "sw.js", }, resolve: { extensions: [".js", ".ts"], }, module: { rules: [ { test: /\.ts$/, exclude: /(node_modules|bower_components)/, use: { loader: "swc-loader", options: { // This makes swc-loader invoke swc synchronously. sync: true, jsc: { parser: { syntax: "typescript", }, }, }, }, }, ], }, plugins: [ new webpack.DefinePlugin({ _VERSION_: JSON.stringify(meta.version), _LANGS_: JSON.stringify( Object.entries(locales).map(([k, v]) => [k, v._lang_]), ), _ENV_: JSON.stringify(process.env.NODE_ENV), _DEV_: !isProduction, _PERF_PREFIX_: JSON.stringify("Calckey:"), }), ], };