diff --git a/.eslintrc b/.eslintrc
index 69c945431e..a3bc6debda 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -28,7 +28,6 @@
"no-new": 2,
"no-octal-escape": 2,
"no-octal": 2,
- "no-param-reassign": 2,
"no-process-env": 2,
"no-proto": 2,
"no-implied-eval": 2,
diff --git a/website/src/libs/buildManifest.js b/website/src/libs/api-v2/buildManifest.js
similarity index 91%
rename from website/src/libs/buildManifest.js
rename to website/src/libs/api-v2/buildManifest.js
index e2b337860f..458bd8ac1e 100644
--- a/website/src/libs/buildManifest.js
+++ b/website/src/libs/api-v2/buildManifest.js
@@ -2,7 +2,7 @@ var fs = require('fs');
var path = require('path');
var nconf = require('nconf');
var _ = require('lodash');
-var manifestFiles = require("../../public/manifest.json");
+var manifestFiles = require("../../../public/manifest.json");
var IS_PROD = nconf.get('NODE_ENV') === 'production';
var buildFiles = [];
@@ -15,7 +15,7 @@ var walk = function(folder){
if(fs.statSync(file).isDirectory()){
walk(file);
}else{
- var relFolder = path.relative(path.join(__dirname, "/../../build"), folder);
+ var relFolder = path.relative(path.join(__dirname, "/../../../build"), folder);
var old = fileName.replace(/-.{8}(\.[\d\w]+)$/, '$1');
if(relFolder){
@@ -28,7 +28,7 @@ var walk = function(folder){
});
};
-walk(path.join(__dirname, "/../../build"));
+walk(path.join(__dirname, "/../../../build"));
var getBuildUrl = module.exports.getBuildUrl = function(url){
if(buildFiles[url]) return '/' + buildFiles[url];
diff --git a/website/src/libs/api-v3/buildManifest.js b/website/src/libs/api-v3/buildManifest.js
new file mode 100644
index 0000000000..94d6d49a2d
--- /dev/null
+++ b/website/src/libs/api-v3/buildManifest.js
@@ -0,0 +1,62 @@
+import fs from 'fs';
+import path from 'path';
+import nconf from 'nconf';
+
+const MANIFEST_FILE_PATH = path.join(__dirname, '/../../../public/manifest.json');
+const BUILD_FOLDER_PATH = path.join(__dirname, '/../../../build');
+let manifestFiles = require(MANIFEST_FILE_PATH);
+
+const IS_PROD = nconf.get('IS_PROD');
+let buildFiles = [];
+
+function _walk (folder) {
+ let files = fs.readdirSync(folder);
+
+ files.forEach((fileName) => {
+ let file = `${folder}/${fileName}`;
+
+ if (fs.statSync(file).isDirectory()) {
+ _walk(file);
+ } else {
+ let relFolder = path.relative(BUILD_FOLDER_PATH, folder);
+ let original = fileName.replace(/-.{8}(\.[\d\w]+)$/, '$1'); // Match the hash part of the filename
+
+ if (relFolder) {
+ original = `${relFolder}/${original}`;
+ fileName = `${relFolder}/${fileName}`;
+ }
+
+ buildFiles[original] = fileName;
+ }
+ });
+}
+
+// Walks through all the files in the build directory
+// and creates a map of original files names and hashed files names
+_walk(BUILD_FOLDER_PATH);
+
+export function getBuildUrl (url) {
+ return `/${buildFiles[url] || url}`;
+}
+
+export function getManifestFiles (page) {
+ let files = manifestFiles[page];
+
+ if (!files) throw new Error(`Page "${page}" not found!`);
+
+ let htmlCode = '';
+
+ if (IS_PROD) {
+ htmlCode += ``; // eslint-disable-line prefer-template
+ htmlCode += ``; // eslint-disable-line prefer-template
+ } else {
+ files.css.forEach((file) => {
+ htmlCode += ``;
+ });
+ files.js.forEach((file) => {
+ htmlCode += ``;
+ });
+ }
+
+ return htmlCode;
+}
\ No newline at end of file
diff --git a/website/src/middlewares/locals.js b/website/src/middlewares/locals.js
index e6b2fa8818..7bec7cc399 100644
--- a/website/src/middlewares/locals.js
+++ b/website/src/middlewares/locals.js
@@ -3,7 +3,7 @@ var _ = require('lodash');
var utils = require('../libs/utils');
var shared = require('../../../common');
var i18n = require('../libs/api-v2/i18n');
-var buildManifest = require('../libs/buildManifest');
+var buildManifest = require('../libs/api-v2/buildManifest');
var shared = require('../../../common');
var forceRefresh = require('./forceRefresh');
var tavernQuest = require('../models/group').tavernQuest;