diff --git a/src/commands/generate/generators/_generate/index.js b/src/commands/generate/generators/_generate/index.js index fa106c6..06cd2b6 100644 --- a/src/commands/generate/generators/_generate/index.js +++ b/src/commands/generate/generators/_generate/index.js @@ -1,6 +1,7 @@ module.exports = async function generate (params, args) { + let { printer } = params let { manifest, replacements, utils, command, project } = args - let { addElements, addRouteSource } = require('./utils') + let { addElements, addElementsFile, addRouteSource } = require('./utils') let { installDependencies } = require('../../../../lib/npm-commands') let { mutateArc, writeFile } = utils let { arcMutations = [], elements = [], dependencies = [], devDependencies = [] } = manifest @@ -21,6 +22,9 @@ module.exports = async function generate (params, args) { // Write elements addElements(elements, writeFile) + // Write app/elements.mjs + addElementsFile(dependencies, writeFile, printer) + // Copy source code addRouteSource({ manifest, replacements, writeFile, command }) } diff --git a/src/commands/generate/generators/_generate/utils.js b/src/commands/generate/generators/_generate/utils.js index 2a715b8..1cbf990 100644 --- a/src/commands/generate/generators/_generate/utils.js +++ b/src/commands/generate/generators/_generate/utils.js @@ -24,7 +24,27 @@ export default ${element.name} }) } +function addElementsFile (dependencies, writeFile, printer) { + const { existsSync } = require('fs') + let { join } = require('path') + let elementsFile = join(process.cwd(), 'app', 'elements.mjs') + console.log(elementsFile) + if (!existsSync(elementsFile) && dependencies.find(dep => dep.startsWith('@enhance/form-elements'))) { + writeFile(`app/elements.mjs`, `import elements from "@enhance/form-elements"; +export default elements; +`) + } + else { + printer(`Add the following line to your app/elements.mjs file: + +import elements from "@enhance/form-elements"; +export default elements; +`) + } +} + module.exports = { addElements, + addElementsFile, addRouteSource } diff --git a/src/commands/generate/generators/auth/magic-manifest.js b/src/commands/generate/generators/auth/magic-manifest.js index d1a3673..f0d89d6 100644 --- a/src/commands/generate/generators/auth/magic-manifest.js +++ b/src/commands/generate/generators/auth/magic-manifest.js @@ -38,17 +38,9 @@ let manifest = { { src: '../scaffold/handlers/pages-list.js', target: 'app/pages/.mjs' }, { src: '../scaffold/handlers/pages-read.js', target: 'app/pages//$id.mjs' }, ], - elements: [ - { name: 'CheckBox', package: '@enhance/form-elements', tagName: 'enhance-checkbox' }, - { name: 'FieldSet', package: '@enhance/form-elements', tagName: 'enhance-fieldset' }, - { name: 'FormElement', package: '@enhance/form-elements', tagName: 'enhance-form' }, - { name: 'LinkElement', package: '@enhance/form-elements', tagName: 'enhance-link' }, - { name: 'PageContainer', package: '@enhance/form-elements', tagName: 'enhance-page-container' }, - { name: 'SubmitButton', package: '@enhance/form-elements', tagName: 'enhance-submit-button' }, - { name: 'TextInput', package: '@enhance/form-elements', tagName: 'enhance-text-input' } - ], + elements: [], dependencies: [ - '@begin/validator@1.0.1', + '@begin/validator@1.0.3', '@enhance/form-elements' ], devDependencies: [] diff --git a/src/commands/generate/generators/scaffold/manifest.js b/src/commands/generate/generators/scaffold/manifest.js index b1034a2..b4b9c0d 100644 --- a/src/commands/generate/generators/scaffold/manifest.js +++ b/src/commands/generate/generators/scaffold/manifest.js @@ -11,15 +11,7 @@ let manifest = { { src: 'handlers/pages-list.js', target: 'app/pages/.mjs' }, { src: 'handlers/pages-read.js', target: 'app/pages//$id.mjs' }, ], - elements: [ - { name: 'CheckBox', package: '@enhance/form-elements', tagName: 'enhance-checkbox' }, - { name: 'FieldSet', package: '@enhance/form-elements', tagName: 'enhance-fieldset' }, - { name: 'FormElement', package: '@enhance/form-elements', tagName: 'enhance-form' }, - { name: 'LinkElement', package: '@enhance/form-elements', tagName: 'enhance-link' }, - { name: 'PageContainer', package: '@enhance/form-elements', tagName: 'enhance-page-container' }, - { name: 'SubmitButton', package: '@enhance/form-elements', tagName: 'enhance-submit-button' }, - { name: 'TextInput', package: '@enhance/form-elements', tagName: 'enhance-text-input' } - ], + elements: [], dependencies: [ '@begin/validator@1.0.3', '@enhance/form-elements'