@causalfoundry/js-sdk
Version:
Causal Foundry WEB SDK (JS/TS)
106 lines (99 loc) • 2.2 kB
JavaScript
const path = require("path");
const getLoaderConfig = (outputFileName) => ({
mode: process.env.NODE_ENV ? "development" : "production",
watch: process.env.NODE_ENV === "dev",
entry: {
lib: path.resolve(__dirname, "./src/loader/index.ts"),
},
output: {
path: path.resolve(__dirname, "./lib"),
filename: outputFileName,
globalObject: "this",
library: {
name: "[name]",
type: "umd",
},
},
resolve: {
extensions: [".tsx", ".ts", ".js"],
alias: {
"@": path.resolve(__dirname, "src"),
},
fallback: {},
},
module: {
rules: [
{
test: /\.tsx?$/,
loader: "babel-loader",
exclude: /node_modules/,
},
],
},
});
const getCommonConfig = (outputFileName) => {
return {
mode: process.env.NODE_ENV ? "development" : "production",
watch: process.env.NODE_ENV === "dev",
entry: {
lib: path.resolve(__dirname, "./src/index.ts"),
init: path.resolve(__dirname, "./src/init.ts"),
},
output: {
path: path.resolve(__dirname, "./lib"),
filename: outputFileName,
globalObject: "this",
library: {
name: "[name]",
type: "umd",
},
},
resolve: {
extensions: [".tsx", ".ts", ".js"],
alias: {
"@": path.resolve(__dirname, "src"),
},
fallback: {},
},
module: {
rules: [
{
test: /\.tsx?$/,
loader: "babel-loader",
exclude: /node_modules/,
},
],
},
};
};
const serverConfig = {
...getCommonConfig("[name].node.js"),
target: "node",
};
const cdnConfig = {
...getCommonConfig("[name].js"),
resolve: {
extensions: [".tsx", ".ts", ".js"],
alias: {
"./CfNetworkNodeFetch": false,
"@": path.resolve(__dirname, "src"),
},
fallback: {
os: false,
},
},
};
const loaderConfig = {
...getLoaderConfig("[name].loader.js"),
resolve: {
extensions: [".tsx", ".ts", ".js"],
alias: {
"./CfNetworkNodeFetch": false,
"@": path.resolve(__dirname, "src"),
},
fallback: {
os: false,
},
},
};
module.exports = [serverConfig, cdnConfig, loaderConfig];