From db8af292e386969255bfc5aa34486b9f741f8161 Mon Sep 17 00:00:00 2001
From: Xaver Maierhofer <xmaierhofer@1drop.de>
Date: Wed, 1 Jun 2016 22:20:14 +0200
Subject: [PATCH] [TASK] Inject config.json inline

---
 Gruntfile.js         |  4 ++--
 app.js               |  4 ++--
 html/index.html      |  3 +++
 package.json         |  1 +
 tasks/build.js       | 15 +++++++++++++++
 tasks/development.js |  2 +-
 6 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/Gruntfile.js b/Gruntfile.js
index 0922dff..28e26fb 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -3,7 +3,7 @@ module.exports = function (grunt) {
 
   grunt.loadTasks("tasks");
 
-  grunt.registerTask("default", ["bower-install-simple", "lint", "copy", "sass", "postcss", "requirejs:default", "cachebreaker", "inline"]);
+  grunt.registerTask("default", ["bower-install-simple", "lint", "copy", "sass", "postcss", "requirejs:default", "inlinedata", "cachebreaker", "inline"]);
   grunt.registerTask("lint", ["sasslint", "eslint"]);
-  grunt.registerTask("serve", ["bower-install-simple", "lint", "copy", "sass", "requirejs:dev", "browserSync", "watch"]);
+  grunt.registerTask("serve", ["bower-install-simple", "lint", "copy", "sass", "requirejs:dev", "inlinedata", "browserSync", "watch"]);
 };
diff --git a/app.js b/app.js
index 0e333dd..4fcc596 100644
--- a/app.js
+++ b/app.js
@@ -23,6 +23,6 @@ require.config({
   }
 });
 
-require(["main", "helper"], function (main, helper) {
-  helper.getJSON("config.json").then(main);
+require(["main"], function (main) {
+  main(jsonData);
 });
diff --git a/html/index.html b/html/index.html
index 874085f..6ffdd66 100644
--- a/html/index.html
+++ b/html/index.html
@@ -6,6 +6,9 @@
   <link rel="stylesheet" href="roboto-slab-fontface.css">
   <link rel="stylesheet" href="css/roboto-fontface.css">
   <link rel="stylesheet" href="style.css?__inline=true">
+  <script>
+    var jsonData = __inline(config.json);
+  </script>
   <script src="vendor/es6-shim/es6-shim.min.js?__inline=true"></script>
   <script src="app.js"></script>
 </head>
diff --git a/package.json b/package.json
index 5315e6e..3eb2556 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,7 @@
     "grunt-contrib-watch": "^1.0.0",
     "grunt-eslint": "^18.1.0",
     "grunt-inline": "^0.3.6",
+    "grunt-inline-data": "0.0.6",
     "grunt-postcss": "^0.8.0",
     "grunt-sass": "^1.2.0",
     "grunt-sass-lint": "^0.2.0"
diff --git a/tasks/build.js b/tasks/build.js
index 5dd7edd..b392c86 100644
--- a/tasks/build.js
+++ b/tasks/build.js
@@ -17,6 +17,12 @@ module.exports = function (grunt) {
         cwd: "bower_components/",
         dest: "build/vendor/"
       },
+      config: {
+        src: ["config.json"],
+        expand: true,
+        cwd: ".",
+        dest: "build/"
+      },
       robotoSlab: {
         src: ["fonts/*",
           "roboto-slab-fontface.css"
@@ -74,6 +80,14 @@ module.exports = function (grunt) {
         dest: "build/index.html"
       }
     },
+    inlinedata: {
+      injs: {
+        expand: true,
+        cwd: '.',
+        src: ['build/*.html'],
+        ext: '.html'
+      }
+    },
     "bower-install-simple": {
       options: {
         directory: "<%=bowerdir%>",
@@ -128,5 +142,6 @@ module.exports = function (grunt) {
   grunt.loadNpmTasks("grunt-sass");
   grunt.loadNpmTasks("grunt-postcss");
   grunt.loadNpmTasks("grunt-inline");
+  grunt.loadNpmTasks('grunt-inline-data');
   grunt.loadNpmTasks("grunt-cache-breaker");
 };
diff --git a/tasks/development.js b/tasks/development.js
index 6192b91..7c05451 100644
--- a/tasks/development.js
+++ b/tasks/development.js
@@ -25,7 +25,7 @@ module.exports = function (grunt) {
     watch: {
       html: {
         files: ["html/index.html"],
-        tasks: ["copy"]
+        tasks: ["copy", "inlinedata"]
       },
       sass: {
         files: ["scss/**/*.scss"],
-- 
GitLab