From 1799a2dfd0a6bfd5db499940ac6c092467a26349 Mon Sep 17 00:00:00 2001
From: Martin Koerwien <martin.koerwien@fokus.fraunhofer.de>
Date: Wed, 22 Jun 2022 09:39:09 +0200
Subject: [PATCH] cleaner workflow, added scripts, removed package file
 dependency

---
 README.md                                      |  9 +++++++--
 package-lock.json                              | 16 +++++-----------
 package.json                                   |  6 +++---
 scripts/create_module_symlink.js               |  7 +++++++
 scripts/ensure_module.js                       |  8 ++++++++
 localinstall.js => scripts/localinstall.js     |  2 +-
 localuninstall.js => scripts/localuninstall.js |  4 ++--
 src/modules/index.ts                           |  8 ++++----
 src/store/modules/catalogs/store.js            |  2 +-
 9 files changed, 38 insertions(+), 24 deletions(-)
 create mode 100644 scripts/create_module_symlink.js
 create mode 100644 scripts/ensure_module.js
 rename localinstall.js => scripts/localinstall.js (94%)
 rename localuninstall.js => scripts/localuninstall.js (50%)

diff --git a/README.md b/README.md
index d96976dad..3289dcc7c 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ The workflow is as follows:
 In order for imports from `@piveau/piveau-hub-ui-modules` in the test-app to work, that package must be accessible in the node_modules folder.
 There are two ways to get achieve this:
 
-  1. A simple `npm install` takes the dependency from package.json and creates a symlink to the `src/modules` folder in node_modules.
+  1. Executing `npm run link-module` creates a symlink to the `src/modules` folder in node_modules.
   2. Executing `npm run localdeploy` creates a compiled version of the modules folder in `dist` and copies it into node_modules`.
 
 The advantage of option 2 is that the package in node_modules is exactly the same as the published version will be.
@@ -53,12 +53,17 @@ npm run serve
 npm run build
 ```
 
-or to also add a copy of the compiled modules in node_modules:
+or to compile and also add a copy of the compiled modules in node_modules:
 
 ```
 npm run localdeploy
 ```
 
+### Creating a symlink of the module in node_modules
+```
+npm run link-module
+```
+
 ### Publishing modules
 ```
 npm run deploy
diff --git a/package-lock.json b/package-lock.json
index 9d2511223..f575c5c75 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "@piveau/piveau-hub-ui-modules",
-  "version": "0.1.1",
+  "version": "0.1.2",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "@piveau/piveau-hub-ui-modules",
-      "version": "0.1.1",
+      "version": "0.1.2",
       "dependencies": {
         "@braid/vue-formulate": "^2.5.3",
         "@citation-js/core": "^0.5.7",
@@ -22,7 +22,6 @@
         "@fortawesome/free-solid-svg-icons": "^5.3.1",
         "@fortawesome/vue-fontawesome": "^0.1.1",
         "@piveau/dcatap-frontend": "^2.5.0",
-        "@piveau/piveau-hub-ui-modules": "file:./src/modules",
         "@piveau/piveau-universal-piwik": "^2.3.0",
         "@triply/yasgui": "^4.2.25",
         "@triply/yasqe": "^4.2.23",
@@ -3187,10 +3186,6 @@
         }
       }
     },
-    "node_modules/@piveau/piveau-hub-ui-modules": {
-      "resolved": "src/modules",
-      "link": true
-    },
     "node_modules/@piveau/piveau-universal-piwik": {
       "version": "2.3.0",
       "resolved": "https://paca.fokus.fraunhofer.de/repository/npm-hosted/@piveau/piveau-universal-piwik/-/piveau-universal-piwik-2.3.0.tgz",
@@ -19171,7 +19166,9 @@
       "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
       "dev": true
     },
-    "src/modules": {}
+    "src/modules": {
+      "extraneous": true
+    }
   },
   "dependencies": {
     "@achrinza/node-ipc": {
@@ -21380,9 +21377,6 @@
         "tiny-cookie": "^2.3.2"
       }
     },
-    "@piveau/piveau-hub-ui-modules": {
-      "version": "file:src/modules"
-    },
     "@piveau/piveau-universal-piwik": {
       "version": "2.3.0",
       "resolved": "https://paca.fokus.fraunhofer.de/repository/npm-hosted/@piveau/piveau-universal-piwik/-/piveau-universal-piwik-2.3.0.tgz",
diff --git a/package.json b/package.json
index d7050d18c..1d44db601 100644
--- a/package.json
+++ b/package.json
@@ -6,9 +6,10 @@
   ],
   "main": "./dist/piveau-hub-ui-modules.umd.min.js",
   "scripts": {
-    "serve": "vue-cli-service serve",
+    "serve": "node scripts/ensure_module.js && vue-cli-service serve",
+    "link-module": "node scripts/localuninstall.js && node scripts/create_module_symlink.js",
     "build": "cross-env BUILD_MODE=lib vue-cli-service build --target lib --name piveau-hub-ui-modules src/modules/index.ts",
-    "localdeploy": "node ./localuninstall.js && npm run build && node ./localinstall.js",
+    "localdeploy": "node scripts/localuninstall.js && npm run build && node scripts/localinstall.js",
     "deploy": "npm run build && npm publish",
     "test:unit": "vue-cli-service test:unit",
     "test:e2e": "vue-cli-service test:e2e",
@@ -29,7 +30,6 @@
     "@fortawesome/free-solid-svg-icons": "^5.3.1",
     "@fortawesome/vue-fontawesome": "^0.1.1",
     "@piveau/dcatap-frontend": "^2.5.0",
-    "@piveau/piveau-hub-ui-modules": "file:./src/modules",
     "@piveau/piveau-universal-piwik": "^2.3.0",
     "@triply/yasgui": "^4.2.25",
     "@triply/yasqe": "^4.2.23",
diff --git a/scripts/create_module_symlink.js b/scripts/create_module_symlink.js
new file mode 100644
index 000000000..c21a5677d
--- /dev/null
+++ b/scripts/create_module_symlink.js
@@ -0,0 +1,7 @@
+const fs = require('fs');
+const target = './node_modules/@piveau/piveau-hub-ui-modules';
+
+fs.symlinkSync("../../src/modules/", target, "dir");
+console.log("Module symlink created in node_modules");
+
+
diff --git a/scripts/ensure_module.js b/scripts/ensure_module.js
new file mode 100644
index 000000000..7a640ce72
--- /dev/null
+++ b/scripts/ensure_module.js
@@ -0,0 +1,8 @@
+const fs = require('fs');
+const target = './node_modules/@piveau/piveau-hub-ui-modules';
+
+if ( ! fs.existsSync(target)) {
+  fs.symlinkSync("../../src/modules/", target, "dir");
+}
+
+
diff --git a/localinstall.js b/scripts/localinstall.js
similarity index 94%
rename from localinstall.js
rename to scripts/localinstall.js
index c2fa499c9..78e64f3ab 100644
--- a/localinstall.js
+++ b/scripts/localinstall.js
@@ -27,4 +27,4 @@ copyRecursiveSync('./dist', target + '/dist');
 fs.copyFileSync('./package.json', target + '/package.json');
 fs.copyFileSync('./README.md', target + '/README.md');
 
-console.log("Package copied to node_modules");
+console.log("Bundled module copied to node_modules");
diff --git a/localuninstall.js b/scripts/localuninstall.js
similarity index 50%
rename from localuninstall.js
rename to scripts/localuninstall.js
index 50c434080..c0fe5ae8d 100644
--- a/localuninstall.js
+++ b/scripts/localuninstall.js
@@ -2,7 +2,7 @@ const fs = require('fs');
 const target = './node_modules/@piveau/piveau-hub-ui-modules';
 
 if (fs.existsSync(target)) {
-    fs.rmSync(target, { recursive: true, force: true })
+  fs.rmSync(target, { recursive: true, force: true })
+  console.log("Removed piveau-hub-ui-modules from node_modules");
 }
 
-console.log("Removed package from node_modules");
diff --git a/src/modules/index.ts b/src/modules/index.ts
index dd334f0f7..9399f2c96 100644
--- a/src/modules/index.ts
+++ b/src/modules/index.ts
@@ -8,13 +8,13 @@ import ResourceDetailsLinkedDataButton from "./datasetDetails/ResourceDetailsLin
 import DatasetDetailsCategories from "./datasetDetails/DatasetDetailsCategories.vue";
 import Distributions from "./datasetDetails/distributions/Distributions.vue";
 import DatasetDetailsHeader from "./datasetDetails/DatasetDetailsHeader.vue";
-import DatasetDetailsShareButton from "./datasetDetails/DatasetDetailsShareButton.vue";
-import DatasetDetailsLinkedMetricsButton from "./datasetDetails/DatasetDetailsLinkedMetricsButton.vue";
+// import DatasetDetailsShareButton from "./datasetDetails/DatasetDetailsShareButton.vue";
+// import DatasetDetailsLinkedMetricsButton from "./datasetDetails/DatasetDetailsLinkedMetricsButton.vue";
+// import DatasetDetailsFeedbackButton from "./datasetDetails/DatasetDetailsFeedbackButton.vue";
+// import DatasetDetailsActivityStream from "./datasetDetails/DatasetDetailsActivityStream.vue";
 import DatasetDetailsNavigation from "./datasetDetails/DatasetDetailsNavigation.vue";
-import DatasetDetailsFeedbackButton from "./datasetDetails/DatasetDetailsFeedbackButton.vue";
 import DatasetDetailsQuality from "./datasetDetails/DatasetDetailsQuality.vue";
 import DatasetDetailsSimilarDatasets from "./datasetDetails/DatasetDetailsSimilarDatasets.vue";
-import DatasetDetailsActivityStream from "./datasetDetails/DatasetDetailsActivityStream.vue";
 import DatasetDetailsDataset from "./datasetDetails/DatasetDetailsDataset.vue";
 import DatasetDetails from "./datasetDetails/DatasetDetails.vue";
 import MapBasic from "./datasetDetails/MapBasic.vue";
diff --git a/src/store/modules/catalogs/store.js b/src/store/modules/catalogs/store.js
index 8e7602dd6..8d7260340 100644
--- a/src/store/modules/catalogs/store.js
+++ b/src/store/modules/catalogs/store.js
@@ -131,7 +131,7 @@ const actions = {
     // const offset = GETTERS.getOffset(state) + amount;
     // commit('SET_OFFSET', offset);
     const page = GETTERS.getPage(state);
-    const catalogsCount = GETTERS.getCatalogsCount(state);
+    // const catalogsCount = GETTERS.getCatalogsCount(state);
     // If there are no more catalogs to load, cancel.
     // if (offset < catalogsCount) {
     // actions.loadCatalogs({ commit, state }, { offset, append: true });
-- 
GitLab