Skip to content

Commit

Permalink
feat: external apps and webpack config
Browse files Browse the repository at this point in the history
  • Loading branch information
mukuljainx committed May 20, 2021
1 parent 0d0ef7d commit e607a34
Show file tree
Hide file tree
Showing 14 changed files with 71 additions and 32 deletions.
1 change: 1 addition & 0 deletions public/bold.blob
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"glyphs":{"0":{"ha":956,"x_min":0,"x_max":0,"o":"m 478 956 b 900 467 729 956 900 736 b 478 -22 900 197 729 -22 b 56 467 224 -22 56 197 b 478 956 56 736 225 956 m 478 222 b 633 467 563 222 633 332 b 478 711 633 601 563 711 b 322 467 393 711 322 601 b 478 222 322 332 393 222 "},"1":{"ha":644,"x_min":0,"x_max":0,"o":"m 544 956 l 544 0 l 278 0 l 278 657 l 78 618 l 78 844 "},"2":{"ha":911,"x_min":0,"x_max":0,"o":"m 56 600 b 435 956 56 769 183 956 b 833 613 676 956 833 814 b 569 244 833 490 742 354 l 856 244 l 856 0 l 56 0 l 456 422 b 564 600 547 519 564 563 b 444 711 564 669 514 711 b 315 578 375 711 315 661 l 56 600 "},"3":{"ha":911,"x_min":0,"x_max":0,"o":"m 722 493 b 856 289 800 456 856 379 b 456 -22 856 150 738 -22 b 56 311 239 -22 56 79 l 322 333 b 465 206 322 240 382 206 b 579 293 532 206 579 243 b 381 389 579 365 506 389 l 381 567 b 567 654 381 567 567 561 b 456 731 567 694 521 731 b 322 611 388 731 326 696 l 78 633 b 456 956 100 846 249 956 b 833 667 700 956 833 817 b 722 493 833 586 789 528 "},"4":{"ha":956,"x_min":0,"x_max":0,"o":"m 900 378 l 900 156 l 789 156 l 789 0 l 522 0 l 522 156 l 56 156 l 56 356 l 456 933 l 789 933 l 789 378 m 522 667 l 344 378 l 522 378 "},"5":{"ha":911,"x_min":0,"x_max":0,"o":"m 500 622 b 856 333 721 622 856 529 b 444 -22 856 111 689 -22 b 56 289 225 -22 56 89 l 332 306 b 456 200 340 246 392 200 b 582 322 525 200 582 254 b 456 422 582 390 525 422 b 344 378 407 422 367 404 l 76 378 l 147 933 l 767 933 l 767 689 l 367 689 l 358 600 b 500 622 404 622 500 622 "},"6":{"ha":911,"x_min":0,"x_max":0,"o":"m 528 667 b 856 356 749 667 856 506 b 456 -22 856 126 693 -22 b 56 364 207 -22 56 115 b 393 933 56 432 71 688 l 789 933 b 438 653 789 933 569 836 b 528 667 438 653 467 667 m 456 222 b 589 333 529 222 589 272 b 456 444 589 394 529 444 b 322 333 382 444 322 394 b 456 222 322 272 382 222 "},"7":{"ha":867,"x_min":0,"x_max":0,"o":"m 878 933 l 456 0 l 144 0 l 478 689 l 56 689 l 56 933 "},"8":{"ha":911,"x_min":0,"x_max":0,"o":"m 736 493 b 856 289 808 458 856 379 b 456 -22 856 118 715 -22 b 56 289 196 -22 56 118 b 175 493 56 379 103 458 b 75 667 103 536 75 603 b 456 956 75 831 233 956 b 836 667 681 956 836 828 b 736 493 836 603 808 536 m 456 733 b 333 644 389 733 333 694 b 456 556 333 594 389 556 b 578 644 522 556 578 594 b 456 733 578 694 522 733 m 456 200 b 589 300 529 200 589 244 b 456 400 589 356 529 400 b 322 300 382 400 322 356 b 456 200 322 244 382 200 "},"9":{"ha":911,"x_min":0,"x_max":0,"o":"m 383 267 b 56 578 163 267 56 428 b 456 956 56 807 218 956 b 856 569 704 956 856 818 b 518 0 856 501 840 246 l 122 0 b 474 281 122 0 342 97 b 383 267 474 281 444 267 m 456 711 b 322 600 382 711 322 661 b 456 489 322 539 382 489 b 589 600 529 489 589 539 b 456 711 589 661 529 711 "},"A":{"ha":1000,"x_min":0,"x_max":0,"o":"m 1011 0 l 740 0 l 681 156 l 319 156 l 260 0 l -11 0 l 375 933 l 625 933 m 603 356 l 500 622 l 397 356 "},"B":{"ha":911,"x_min":0,"x_max":0,"o":"m 721 501 b 878 281 839 475 878 374 b 558 0 878 119 758 0 l 78 0 l 78 933 l 478 933 b 833 689 692 933 833 850 b 721 501 833 596 786 525 m 344 578 l 456 578 b 567 656 526 578 567 601 b 456 733 567 708 526 733 l 344 733 m 478 200 b 611 289 558 200 611 228 b 478 378 611 350 558 378 l 344 378 l 344 200 l 478 200 "},"C":{"ha":911,"x_min":0,"x_max":0,"o":"m 565 222 b 776 317 650 222 726 260 l 878 90 b 558 -22 794 18 668 -22 b 33 467 269 -22 33 197 b 558 956 33 736 269 956 b 878 844 668 956 794 917 l 776 617 b 565 711 726 674 650 711 b 300 467 419 711 300 601 b 565 222 300 332 419 222 "},"D":{"ha":978,"x_min":0,"x_max":0,"o":"m 454 933 b 944 467 775 933 944 725 b 454 0 944 208 767 0 l 78 0 l 78 933 l 454 933 m 478 244 b 678 467 569 244 678 344 b 478 689 678 589 569 689 l 344 689 l 344 244 l 478 244 "},"E":{"ha":756,"x_min":0,"x_max":0,"o":"m 344 689 l 344 578 l 633 578 l 633 356 l 344 356 l 344 244 l 700 244 l 700 0 l 78 0 l 78 933 l 700 933 l 700 689 "},"F":{"ha":733,"x_min":0,"x_max":0,"o":"m 78 0 l 78 933 l 700 933 l 700 689 l 344 689 l 344 578 l 633 578 l 633 356 l 344 356 l 344 0 "},"G":{"ha":1044,"x_min":0,"x_max":0,"o":"m 1003 556 b 1011 467 1008 525 1011 499 b 533 -22 1011 197 810 -22 b 33 467 257 -22 33 197 b 533 956 33 736 257 956 b 965 689 732 956 882 847 l 714 621 b 533 711 671 676 607 711 b 300 467 404 711 300 601 b 533 222 300 332 404 222 b 736 356 624 222 700 274 l 478 356 l 478 556 l 1003 556 "},"H":{"ha":1000,"x_min":0,"x_max":0,"o":"m 922 933 l 922 0 l 656 0 l 656 344 l 344 344 l 344 0 l 78 0 l 78 933 l 344 933 l 344 589 l 656 589 l 656 933 "},"I":{"ha":422,"x_min":0,"x_max":0,"o":"m 78 0 l 78 933 l 344 933 l 344 0 "},"J":{"ha":711,"x_min":0,"x_max":0,"o":"m 656 933 l 656 356 b 261 -22 656 101 500 -22 b 33 67 176 -22 79 15 l 149 276 b 256 222 172 243 211 222 b 389 356 329 222 389 264 l 389 933 "},"K":{"ha":978,"x_min":0,"x_max":0,"o":"m 967 0 l 633 0 l 344 400 l 344 0 l 78 0 l 78 933 l 344 933 l 344 578 l 611 933 l 944 933 l 589 489 "},"L":{"ha":733,"x_min":0,"x_max":0,"o":"m 700 244 l 700 0 l 78 0 l 78 933 l 344 933 l 344 244 "},"M":{"ha":1222,"x_min":0,"x_max":0,"o":"m 1189 0 l 922 0 l 878 489 l 722 0 l 500 0 l 344 489 l 300 0 l 33 0 l 122 933 l 389 933 l 611 378 l 833 933 l 1100 933 "},"N":{"ha":1044,"x_min":0,"x_max":0,"o":"m 967 933 l 967 0 l 700 0 l 344 511 l 344 0 l 78 0 l 78 933 l 344 933 l 700 422 l 700 933 "},"O":{"ha":1089,"x_min":0,"x_max":0,"o":"m 544 956 b 1056 467 826 956 1056 736 b 544 -22 1056 197 826 -22 b 33 467 263 -22 33 197 b 544 956 33 736 263 956 m 544 222 b 789 467 679 222 789 332 b 544 711 789 601 679 711 b 300 467 410 711 300 601 b 544 222 300 332 410 222 "},"P":{"ha":889,"x_min":0,"x_max":0,"o":"m 500 933 b 856 622 743 933 856 803 b 544 289 856 442 742 289 l 344 289 l 344 0 l 78 0 l 78 933 l 500 933 m 475 511 b 589 611 538 511 589 542 b 475 711 589 679 538 711 l 344 711 l 344 511 l 475 511 "},"Q":{"ha":1089,"x_min":0,"x_max":0,"o":"m 1078 0 l 811 0 l 785 35 b 544 -22 713 -1 631 -22 b 33 467 263 -22 33 197 b 544 956 33 736 263 956 b 1056 467 826 956 1056 736 b 935 151 1056 347 1010 236 m 756 343 b 789 467 776 379 789 421 b 544 711 789 601 679 711 b 300 467 410 711 300 601 b 544 222 300 332 410 222 b 629 238 575 222 603 228 l 522 378 l 722 378 l 756 343 "},"R":{"ha":933,"x_min":0,"x_max":0,"o":"m 900 0 l 589 0 l 396 289 l 344 289 l 344 0 l 78 0 l 78 933 l 500 933 b 856 622 743 933 856 803 b 671 314 856 485 789 364 m 475 511 b 589 611 538 511 589 542 b 475 711 589 679 538 711 l 344 711 l 344 511 l 475 511 "},"S":{"ha":889,"x_min":0,"x_max":0,"o":"m 444 610 b 856 304 628 586 856 540 b 433 -22 856 124 733 -22 b 33 117 185 -22 33 117 l 132 329 b 433 222 271 222 433 222 b 589 279 507 219 589 228 b 418 347 589 319 540 328 b 56 653 164 388 56 492 b 458 956 56 817 182 956 b 811 844 458 956 685 956 l 706 644 b 433 711 706 644 619 711 b 322 667 346 711 322 692 b 444 610 322 636 346 622 "},"T":{"ha":822,"x_min":0,"x_max":0,"o":"m 789 933 l 789 689 l 544 689 l 544 0 l 278 0 l 278 689 l 33 689 l 33 933 "},"U":{"ha":1000,"x_min":0,"x_max":0,"o":"m 944 933 l 944 400 b 500 -22 944 154 778 -22 b 56 400 222 -22 56 154 l 56 933 l 344 933 l 344 397 b 500 222 344 281 422 222 b 656 397 578 222 656 281 l 656 933 "},"V":{"ha":1000,"x_min":0,"x_max":0,"o":"m -11 933 l 300 933 l 500 375 l 700 933 l 1011 933 l 633 0 l 367 0 "},"W":{"ha":1422,"x_min":0,"x_max":0,"o":"m 967 378 l 1122 933 l 1422 933 l 1111 0 l 833 0 l 711 444 l 589 0 l 311 0 l 0 933 l 300 933 l 456 378 l 589 933 l 833 933 "},"X":{"ha":1022,"x_min":0,"x_max":0,"o":"m 1011 0 l 697 0 l 511 294 l 325 0 l 11 0 l 328 489 l 35 933 l 349 933 l 511 672 l 674 933 l 988 933 l 694 489 "},"Y":{"ha":956,"x_min":0,"x_max":0,"o":"m 967 933 l 611 378 l 611 0 l 344 0 l 344 378 l -11 933 l 300 933 l 478 644 l 656 933 "},"Z":{"ha":889,"x_min":0,"x_max":0,"o":"m 33 0 l 422 689 l 56 689 l 56 933 l 856 933 l 467 244 l 833 244 l 833 0 "}},"familyName":"Noir Pro Bold","ascender":1311,"descender":-356,"underlinePosition":-104,"underlineThickness":69,"boundingBox":{"yMin":-422,"xMin":-267,"yMax":1600,"xMax":1656},"resolution":1000,"original_font_information":{"format":0,"copyright":"Copyright (c) Milos Mitrovic, 2016. All rights reserved.","fontFamily":"Noir Pro Bold","fontSubfamily":"Regular","uniqueID":"1.000;UKWN;NoirPro-Bold","fullName":"Noir Pro Bold","version":"Version 1.000;PS 001.000;hotconv 1.0.70;makeotf.lib2.5.58329","postScriptName":"NoirPro-Bold","manufacturer":"Mindburger","designer":"Milos Mitrovic","manufacturerURL":"http://www.mindburger.net","designerURL":"http://www.mindburger.net","preferredFamily":"Noir Pro","preferredSubfamily":"Bold"},"cssFontWeight":"normal","cssFontStyle":"normal"}
12 changes: 10 additions & 2 deletions src/apps/appManager/addApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const AddApp = ({ onSuccess }: IProps) => {
const [loading, setLoading] = React.useState(false);
const [status, setStatus] = React.useState<IAppStatus>();
const [id, setId] = React.useState("");
const [error, setError] = React.useState("");
const [totalStages, setTotalStages] = React.useState(7);
const timer = React.useRef<NodeJS.Timeout>();
const user = useSelector((state) => state.auth.user);
Expand All @@ -29,6 +30,7 @@ const AddApp = ({ onSuccess }: IProps) => {
e.preventDefault();
const formData = new FormData(e!.target);
setLoading(true);
setError("");
setStatus({ status: "UPLOADING", activity: "uploading files", stage: 1 });
api
.post("/manager/build/react", formData, {
Expand All @@ -43,6 +45,7 @@ const AddApp = ({ onSuccess }: IProps) => {
})
.catch((error) => {
console.error("Error:", error);
setError(JSON.stringify(error.message));
setLoading(false);
});
};
Expand All @@ -68,11 +71,16 @@ const AddApp = ({ onSuccess }: IProps) => {
return () => timer.current && clearInterval(timer.current);
}, [id]);

if (!user.token) {
if (!user.token || error) {
return (
<Stack flexDirection="column" gap={16} style={{ width: 360 }}>
<StackItem>
<Text>You need to login before performing this operation</Text>
<Text>
{error || "You need to login before performing this operation"}
</Text>
</StackItem>
<StackItem>
<PrimaryButton onClick={onSuccess}>Go Back</PrimaryButton>
</StackItem>
</Stack>
);
Expand Down
2 changes: 1 addition & 1 deletion src/apps/appManager/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ const AppManager = ({ onMouseDown, appName, instanceId, dragId }: IProps) => {
onMouseDown={onMouseDown}
appName={appName}
instanceId={instanceId}
icon="photo"
icon="appManager"
name="App Manager"
dragId={dragId}
>
Expand Down
2 changes: 1 addition & 1 deletion src/apps/externalAppShell/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const ExternalAppShell = ({
}: IProps) => {
const { render } = useAnimationEndRender({ instanceId });
const status = useScript(
`http://localhost:8000/api/manager/assests/${data.appId}/main.js`,
`http://${process.env.API}/api/manager/assests/${data.appId}/main.js`,
true
);
console.log(data.options);
Expand Down
10 changes: 8 additions & 2 deletions src/apps/folder/store/helper.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { IFolderRoutes, IFile, IFolder } from "../interfaces";
import { interpolate } from "utils/string";
import { sortBy } from "lodash-es";
import { get, sortBy } from "lodash-es";
import { Draft } from "immer";
import { IBaseState } from "./index";

Expand All @@ -26,7 +26,13 @@ export const getRoutes = (
) => {
let routes: IFolderRoutes[] = [];

Object.values(root.files || {}).forEach((file: IFile) => {
Object.values(root.files || {}).forEach((fileX: IFile) => {
let file = fileX;
if (fileX.symlink && fileX.appName !== "folder") {
file = get(parent, fileX.symlink);
}
console.log(file);

const name =
file.appName === "folder"
? folderPool[file.data.id].name
Expand Down
14 changes: 14 additions & 0 deletions src/apps/folder/store/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,13 @@ const folderSlice = createSlice({
state.root,
state.routeToFolder["/applications"]
).files;
const desktop = get(
state.root,
state.routeToFolder[`/users/${state.user}/Desktop`]
).files;

const startingOrder = Object.keys(applicationsFolder).length;
const desktopStartingOrder = Object.keys(desktop).length;
payload.forEach((customApp, index) => {
applicationsFolder[customApp.appId] = {
data: {
Expand All @@ -198,7 +204,15 @@ const folderSlice = createSlice({
appName: customApp.appId,
order: startingOrder + index,
};

desktop[customApp.appId] = {
appName: customApp.appId,
order: desktopStartingOrder + index,
data: { id: customApp.appId },
symlink: `${state.routeToFolder["/applications"]}.files.${customApp.appId}`,
};
});

refreshRoutes(state);
},
},
Expand Down
16 changes: 5 additions & 11 deletions src/apps/folder/store/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,10 @@ export const folderPool: Record<string, IFolder> = {
export const folderMap: IFile = {
data: { id: "root" },
appName: "folder",
// path: "/",
sortBy: "name",
order: 0,
files: {
system: {
// path: "/system",
data: { id: "system" },
appName: "folder",
sortBy: "name",
Expand All @@ -121,12 +119,10 @@ export const folderMap: IFile = {
sortBy: "name",
order: 1,
files: {},
// path: "/applications",
},
users: {
data: { id: "users" },
appName: "folder",
// path: "/users",
sortBy: "name",
order: 2,
files: {
Expand All @@ -135,7 +131,6 @@ export const folderMap: IFile = {
order: 0,
data: { id: "home" },
appName: "folder",
// path: "/users/${user}",
files: {
Pictures: {
sortBy: "name",
Expand Down Expand Up @@ -181,12 +176,10 @@ export const folderMap: IFile = {
files: {},
sortBy: "name",
order: 1,
// path: "/users/${user}/Documents",
},
Downloads: {
sortBy: "name",
order: 2,
// path: "/users/${user}/Downloads",
data: { id: "Downloads" },
appName: "folder",
files: {},
Expand All @@ -196,26 +189,27 @@ export const folderMap: IFile = {
appName: "folder",
sortBy: "name",
order: 3,
// path: "/users/${user}/Desktop",
files: {
"Desktop 1": {
data: { id: "Desktop 1" },
appName: "folder",
files: {},
sortBy: "name",
order: 0,
// path: "/users/${user}/Desktop/Desktop 1",
},
Pictures: {
data: { id: "Pictures" },
appName: "folder",
sortBy: "name",
order: 1,
// path: "/users/${user}/Desktop/Pictures",
symlink: "files.users.files.home.files.Pictures",
},
appManager: {
data: { id: "appManager", name: "App Manager" },
data: {
id: "appManager",
name: "App Manager",
icon: "appManager",
},
appName: "appManager",
sortBy: "name",
order: 2,
Expand Down
Binary file added src/atoms/styled/appImage/assets/app-manager.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/atoms/styled/appImage/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export const availableIcons: Record<string, string> = {
system: "system.png",
pictures: "pictures.png",
avatar: "avatar.png",
appManager: "app-manager.png",
};

type IProps = ReactHTMLElement<
Expand Down
2 changes: 1 addition & 1 deletion src/auth/userInfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ const Auth = ({ user }: IProps) => {
iconProps={{ iconName: "AddFriend" }}
allowDisabledFocus
onClick={() => {
window.location.href = "http://localhost:8000/auth/google";
window.location.href = `http://${process.env.API}/auth/google`;
}}
>
Continue with Google
Expand Down
24 changes: 15 additions & 9 deletions src/molecules/iconInterface/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import useFolderAction from "./useFolderAction";
import ContextMenu from "molecules/contextMenu";
import { IFile } from "apps/folder/interfaces";
import { shallowEqual, useSelector } from "react-redux";
import { get } from "lodash-es";

const Wrapper = styled.div`
overflow: hidden;
Expand Down Expand Up @@ -44,6 +45,7 @@ const IconLayout = ({
(state) => state.folder.folderToRoute,
shallowEqual
);
const root = useSelector((state) => state.folder.root, shallowEqual);

const { menuItems } = useFolderAction({
route,
Expand All @@ -58,7 +60,7 @@ const IconLayout = ({
{files.map((file: IFile, index) => {
let fileDetail = { name: "", icon: "", id: "", path: "", safe: true };
let data: IData = {};
const path = folderToRoute[file.data.id];

const dragId = fileDetail.id + index;

if (file.appName === "folder") {
Expand All @@ -70,16 +72,20 @@ const IconLayout = ({
path: folderToRoute[file.data.id],
safe: !!details.safe,
};
data = { path };
data = { path: folderToRoute[file.data.id] };
} else {
let targetFile = file;
if (file.symlink) {
targetFile = get(root, file.symlink);
}
fileDetail = {
name: file.data.name,
icon: file.data.icon,
id: file.data.id,
path: folderToRoute[file.data.id],
safe: file.data.safe,
name: targetFile.data.name,
icon: targetFile.data.icon,
id: targetFile.data.id,
path: folderToRoute[targetFile.data.id],
safe: targetFile.data.safe,
};
data = { ...file.data };
data = { ...targetFile.data };
}

return (
Expand All @@ -88,7 +94,7 @@ const IconLayout = ({
data={file.data}
symlink={!!file.symlink}
name={fileDetail.name}
path={path}
path={folderToRoute[file?.data?.id] || ""}
icon={fileDetail.icon}
desktop={desktop}
safe={fileDetail.safe}
Expand Down
2 changes: 1 addition & 1 deletion src/utils/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ axios.interceptors.request.use((config) => {

return {
...config,
baseURL: "http://localhost:8000/api",
baseURL: `http://${process.env.API}/api`,
headers: {
...config.headers,
Authorization: token,
Expand Down
8 changes: 7 additions & 1 deletion webpack.dev.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
const webpack = require("webpack");
const ReactRefreshWebpackPlugin = require("@pmmmwh/react-refresh-webpack-plugin");
import merge from "webpack-merge";
// @ts-ignore
Expand All @@ -11,7 +12,12 @@ const config = {
entry: ["./src/index"],
target: "web",
devtool: "eval-cheap-module-source-map",
plugins: [new ReactRefreshWebpackPlugin()],
plugins: [
new ReactRefreshWebpackPlugin(),
new webpack.EnvironmentPlugin({
API: "http://localhost:8000",
}),
],
devServer: {
before: (app: any) => {
app.use("*", (req: any, res: any, next: any) => {
Expand Down
9 changes: 6 additions & 3 deletions webpack.prod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ const config = {
entry: ["./src/index"],
output: {
filename: "[name].[hash].js",
publicPath: "patient/assets/",
path: path.resolve("./public/assets/"),
publicPath: "/",
path: path.resolve("./dist"),
},
optimization: {
usedExports: true,
Expand All @@ -22,7 +22,7 @@ const config = {
vendor: {
// just need to exclude these they will created by webpack as other chunk
test: /.?[\\/]node_modules[\\/](?!(react-pdf|pdfjs-dist|react-table|d3)).*?/,
name: "patientVendors",
name: "vendors",
chunks: "all",
},
},
Expand All @@ -34,6 +34,9 @@ const config = {
},
devtool: false,
plugins: [
new webpack.EnvironmentPlugin({
API: "https://agni-web-os.herokuapp.com",
}),
new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /en/),
new UglifyJsPlugin({
sourceMap: true,
Expand Down

0 comments on commit e607a34

Please sign in to comment.