From de00d3babce616a30dd871235d379a9347bdfdc8 Mon Sep 17 00:00:00 2001 From: Lionel Bijaoui Date: Mon, 2 Jul 2018 16:58:23 +0200 Subject: [PATCH 1/3] Fix fields exposition (temporary solution) --- src/formGenerator.vue | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/formGenerator.vue b/src/formGenerator.vue index 3c5f8c4d..f07cdbb0 100644 --- a/src/formGenerator.vue +++ b/src/formGenerator.vue @@ -16,6 +16,24 @@ import { get as objGet, forEach, isFunction, isNil, isArray } from "lodash"; import formMixin from "./formMixin.js"; import formGroup from "./formGroup.vue"; +let fieldComponents = { formGroup }; + +let coreFields = require.context("./fields/core", false, /^\.\/field([\w-_]+)\.vue$/); + +forEach(coreFields.keys(), key => { + let compName = key.replace(/^\.\//, "").replace(/\.vue/, ""); + fieldComponents[compName] = coreFields(key).default; +}); + +if (process.env.FULL_BUNDLE) { + let Fields = require.context("./fields/optional", false, /^\.\/field([\w-_]+)\.vue$/); + + forEach(Fields.keys(), key => { + let compName = key.replace(/^\.\//, "").replace(/\.vue/, ""); + fieldComponents[compName] = Fields(key).default; + }); +} + export default { name: "formGenerator", components: { formGroup }, From c87e93226fdadf48d5fe1c5a9003139b1d2cda6f Mon Sep 17 00:00:00 2001 From: Lionel Bijaoui Date: Mon, 2 Jul 2018 18:37:11 +0200 Subject: [PATCH 2/3] Alternative solution to expose embeded fields --- src/formGenerator.vue | 18 ------------------ src/index.js | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/formGenerator.vue b/src/formGenerator.vue index f07cdbb0..3c5f8c4d 100644 --- a/src/formGenerator.vue +++ b/src/formGenerator.vue @@ -16,24 +16,6 @@ import { get as objGet, forEach, isFunction, isNil, isArray } from "lodash"; import formMixin from "./formMixin.js"; import formGroup from "./formGroup.vue"; -let fieldComponents = { formGroup }; - -let coreFields = require.context("./fields/core", false, /^\.\/field([\w-_]+)\.vue$/); - -forEach(coreFields.keys(), key => { - let compName = key.replace(/^\.\//, "").replace(/\.vue/, ""); - fieldComponents[compName] = coreFields(key).default; -}); - -if (process.env.FULL_BUNDLE) { - let Fields = require.context("./fields/optional", false, /^\.\/field([\w-_]+)\.vue$/); - - forEach(Fields.keys(), key => { - let compName = key.replace(/^\.\//, "").replace(/\.vue/, ""); - fieldComponents[compName] = Fields(key).default; - }); -} - export default { name: "formGenerator", components: { formGroup }, diff --git a/src/index.js b/src/index.js index c0fef5a4..45caefe9 100644 --- a/src/index.js +++ b/src/index.js @@ -6,10 +6,31 @@ const install = Vue => { Vue.component("VueFormGenerator", module.exports.component); }; +const forEach = require("lodash").forEach; + +let fieldComponents = {}; + +let coreFields = require.context("./fields/core", false, /^\.\/field([\w-_]+)\.vue$/); + +forEach(coreFields.keys(), key => { + let compName = key.replace(/^\.\//, "").replace(/\.vue/, ""); + fieldComponents[compName] = coreFields(key).default; +}); + +if (process.env.FULL_BUNDLE) { + let Fields = require.context("./fields/optional", false, /^\.\/field([\w-_]+)\.vue$/); + + forEach(Fields.keys(), key => { + let compName = key.replace(/^\.\//, "").replace(/\.vue/, ""); + fieldComponents[compName] = Fields(key).default; + }); +} + module.exports = { component, schema, validators, abstractField, + fieldComponents, install }; From 320a4b522d1f402de1eb71246cd2fce2cfb07d5a Mon Sep 17 00:00:00 2001 From: Lionel Bijaoui Date: Tue, 3 Jul 2018 10:05:45 +0200 Subject: [PATCH 3/3] Code refactoring and fix codacity issues --- package.json | 3 ++- src/formGroup.vue | 23 +++-------------------- src/index.js | 23 ++--------------------- src/utils/fieldsLoader.js | 21 +++++++++++++++++++++ 4 files changed, 28 insertions(+), 42 deletions(-) create mode 100644 src/utils/fieldsLoader.js diff --git a/package.json b/package.json index 84e37ca8..8163b2fd 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,8 @@ "trailingComma": "none", "bracketSpacing": true, "semi": true, - "useTabs": true + "useTabs": true, + "arrowParens": "always" }, "nyc": { "include": [ diff --git a/src/formGroup.vue b/src/formGroup.vue index 7d0d7f14..522f669a 100644 --- a/src/formGroup.vue +++ b/src/formGroup.vue @@ -23,27 +23,10 @@