mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-15 05:41:51 +00:00

* update pkgs
Signed-off-by: GitHub <noreply@github.com>
* new knub typings
Signed-off-by: GitHub <noreply@github.com>
* more pkg updates
Signed-off-by: GitHub <noreply@github.com>
* more fixes
Signed-off-by: GitHub <noreply@github.com>
* channel typings
Signed-off-by: GitHub <noreply@github.com>
* more message utils typings fixes
Signed-off-by: GitHub <noreply@github.com>
* migrate permissions
Signed-off-by: GitHub <noreply@github.com>
* fix: InternalPoster webhookables
Signed-off-by: GitHub <noreply@github.com>
* djs typings: Attachment & Util
Signed-off-by: GitHub <noreply@github.com>
* more typings
Signed-off-by: GitHub <noreply@github.com>
* fix: rename permissionNames
Signed-off-by: GitHub <noreply@github.com>
* more fixes
Signed-off-by: GitHub <noreply@github.com>
* half the number of errors
* knub commands => messageCommands
Signed-off-by: GitHub <noreply@github.com>
* configPreprocessor => configParser
Signed-off-by: GitHub <noreply@github.com>
* fix channel.messages
Signed-off-by: GitHub <noreply@github.com>
* revert automod any typing
Signed-off-by: GitHub <noreply@github.com>
* more configParser typings
Signed-off-by: GitHub <noreply@github.com>
* revert
Signed-off-by: GitHub <noreply@github.com>
* remove knub type params
Signed-off-by: GitHub <noreply@github.com>
* fix more MessageEmbed / MessageOptions
Signed-off-by: GitHub <noreply@github.com>
* dumb commit for @almeidx to see why this is stupid
Signed-off-by: GitHub <noreply@github.com>
* temp disable custom_events
Signed-off-by: GitHub <noreply@github.com>
* more minor typings fixes - 23 err left
Signed-off-by: GitHub <noreply@github.com>
* update djs dep
* +debug build method (revert this)
Signed-off-by: GitHub <noreply@github.com>
* Revert "+debug build method (revert this)"
This reverts commit a80af1e729
.
* Redo +debug build (Revert this)
Signed-off-by: GitHub <noreply@github.com>
* uniform before/after Load shorthands
Signed-off-by: GitHub <noreply@github.com>
* remove unused imports & add prettier plugin
Signed-off-by: GitHub <noreply@github.com>
* env fixes for web platform hosting
Signed-off-by: GitHub <noreply@github.com>
* feat: knub v32-next; related fixes
* fix: allow legacy keys in change_perms action
* fix: request Message Content intent
* fix: use Knub's config validation logic in API
* fix(dashboard): fix error when there are no message and/or slash commands in a plugin
* fix(automod): start_thread action thread options
* fix(CustomEvents): message command types
* chore: remove unneeded type annotation
* feat: add forum channel icon; use thread icon for news threads
* chore: make tslint happy
* chore: fix formatting
---------
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: almeidx <almeidx@pm.me>
Co-authored-by: Dragory <2606411+Dragory@users.noreply.github.com>
185 lines
4.6 KiB
JavaScript
185 lines
4.6 KiB
JavaScript
const path = require("path");
|
|
const VueLoaderPlugin = require("vue-loader/lib/plugin");
|
|
const HtmlWebpackPlugin = require("html-webpack-plugin");
|
|
const DotenvPlugin = require("dotenv-webpack");
|
|
const merge = require("webpack-merge");
|
|
const webpack = require("webpack");
|
|
|
|
const targetDir = path.normalize(path.join(__dirname, "dist"));
|
|
|
|
if (!process.env.NODE_ENV) {
|
|
console.error("Please set NODE_ENV");
|
|
process.exit(1);
|
|
}
|
|
|
|
const babelOpts = {
|
|
presets: ["@babel/preset-env"],
|
|
};
|
|
|
|
const tsconfig = require("./tsconfig.json");
|
|
const pathAliases = Object.entries(tsconfig.compilerOptions.paths || []).reduce((aliases, pair) => {
|
|
let alias = pair[0];
|
|
if (alias.endsWith("/*")) alias = alias.slice(0, -2);
|
|
|
|
let aliasPath = pair[1][0];
|
|
if (aliasPath.endsWith("/*")) aliasPath = aliasPath.slice(0, -2);
|
|
|
|
aliases[alias] = path.resolve(__dirname, aliasPath);
|
|
return aliases;
|
|
}, {});
|
|
|
|
let config = {
|
|
entry: "./src/main.ts",
|
|
output: {
|
|
filename: "[name].[hash].js",
|
|
path: targetDir,
|
|
publicPath: "/",
|
|
},
|
|
module: {
|
|
rules: [
|
|
// Vue / Babel / Typescript
|
|
{
|
|
test: /\.vue$/,
|
|
use: ["vue-loader"],
|
|
},
|
|
{
|
|
test: /\.tsx?$/,
|
|
exclude: /node_modules/,
|
|
use: [
|
|
{
|
|
loader: "babel-loader",
|
|
options: babelOpts,
|
|
},
|
|
{
|
|
loader: "ts-loader",
|
|
options: {
|
|
appendTsSuffixTo: [/\.vue$/],
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
test: /\.m?js$/,
|
|
exclude: /node_modules/,
|
|
use: {
|
|
loader: "babel-loader",
|
|
options: babelOpts,
|
|
},
|
|
},
|
|
{
|
|
test: /\.js$/,
|
|
use: ["source-map-loader"],
|
|
enforce: "pre",
|
|
},
|
|
|
|
// Stylesheets
|
|
{
|
|
test: /\.p?css$/,
|
|
use: [
|
|
"vue-style-loader",
|
|
{
|
|
loader: "css-loader",
|
|
options: {
|
|
importLoaders: 1,
|
|
},
|
|
},
|
|
{
|
|
loader: "postcss-loader",
|
|
options: {
|
|
ident: "postcss",
|
|
plugins: (loader) => {
|
|
const plugins = [
|
|
require("postcss-import")({
|
|
resolve(id, base, options) {
|
|
// Since WebStorm doesn't resolve imports from node_modules without a tilde (~) prefix,
|
|
// strip the tilde here to get the best of both worlds (webstorm support + postcss-import support)
|
|
if (id[0] === "~") id = id.slice(1);
|
|
// Call the original resolver after stripping the tilde
|
|
return require("postcss-import/lib/resolve-id")(id, base, options);
|
|
},
|
|
}),
|
|
require("postcss-nesting")(),
|
|
require("tailwindcss")(),
|
|
];
|
|
|
|
if (process.env.NODE_ENV === "production") {
|
|
plugins.push(require("postcss-preset-env")(), require("cssnano")());
|
|
}
|
|
|
|
return plugins;
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
|
|
// Images/files
|
|
{
|
|
test: /\.(png|jpg)$/i,
|
|
use: {
|
|
loader: "file-loader",
|
|
options: {
|
|
name: "[name]-[hash].[ext]",
|
|
},
|
|
},
|
|
},
|
|
|
|
// HTML
|
|
{
|
|
test: /\.html$/,
|
|
use: [
|
|
{
|
|
loader: "html-loader",
|
|
options: {
|
|
root: path.resolve(__dirname, "src"),
|
|
attrs: ["img:src", "link:href"],
|
|
...(process.env.NODE_ENV === "production" && {
|
|
minimize: true,
|
|
removeComments: true,
|
|
collapseWhitespace: true,
|
|
}),
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
plugins: [
|
|
new VueLoaderPlugin(),
|
|
new HtmlWebpackPlugin({
|
|
template: "src/index.html",
|
|
files: {
|
|
css: ["./src/style/initial.pcss"],
|
|
js: ["./src/main.ts"],
|
|
},
|
|
}),
|
|
new DotenvPlugin({
|
|
path: path.resolve(process.cwd(), "../.env"),
|
|
}),
|
|
],
|
|
resolve: {
|
|
extensions: [".ts", ".tsx", ".js", ".mjs", ".vue"],
|
|
alias: pathAliases,
|
|
},
|
|
};
|
|
|
|
if (process.env.NODE_ENV === "web") config.plugins.push(new webpack.EnvironmentPlugin(["NODE_ENV", "API_URL"]));
|
|
|
|
if (process.env.NODE_ENV === "production") {
|
|
config = merge(config, {
|
|
mode: "production",
|
|
devtool: "source-map",
|
|
});
|
|
} else {
|
|
config = merge(config, {
|
|
mode: "development",
|
|
devtool: "eval",
|
|
devServer: {
|
|
...(process.env.DEV_HOST ? { host: process.env.DEV_HOST } : undefined),
|
|
historyApiFallback: true,
|
|
port: 1234,
|
|
},
|
|
});
|
|
}
|
|
|
|
module.exports = config;
|