{"version":3,"file":"index.mjs","sources":["../src/integration-testing.js","../src/documentation.js","../src/scaffold.js"],"sourcesContent":["import {promises as fs} from 'node:fs';\nimport {resolve} from 'node:path';\n\nimport deepmerge from 'deepmerge';\nimport mustache from 'mustache';\nimport filedirname from 'filedirname';\nimport {dialects} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\n\nconst [, __dirname] = filedirname();\n\nfunction determineExtensionFor({dialect}) {\n  if (dialects.ESM === dialect) return 'js';\n\n  return 'mjs';\n}\n\nexport default async function ({projectRoot, projectName, packageName, tests: {integration}, dialect}) {\n  if (integration) {\n    const [cucumberResults] = await Promise.all([\n      scaffoldCucumber({projectRoot}),\n      fs.mkdir(`${projectRoot}/test/integration/features`, {recursive: true})\n    ]);\n    await fs.mkdir(`${projectRoot}/test/integration/features/step_definitions`, {recursive: true});\n\n    await Promise.all([\n      fs.writeFile(\n        `${projectRoot}/test/integration/features/step_definitions/common-steps.${determineExtensionFor({dialect})}`,\n        mustache.render(\n          await fs.readFile(resolve(__dirname, '..', 'templates', 'common-steps.mustache'), 'utf8'),\n          {packageName}\n        )\n      ),\n      fs.writeFile(\n        `${projectRoot}/test/integration/features/step_definitions/form8ion-steps.${determineExtensionFor({dialect})}`,\n        mustache.render(\n          await fs.readFile(resolve(__dirname, '..', 'templates', 'form8ion-steps.mustache'), 'utf8'),\n          {packageName, projectName}\n        )\n      ),\n      fs.writeFile(\n        `${projectRoot}/test/integration/features/form8ion.feature`,\n        mustache.render(\n          await fs.readFile(resolve(__dirname, '..', 'templates', 'form8ion-feature.mustache'), 'utf8'),\n          {projectName}\n        )\n      ),\n      fs.copyFile(\n        resolve(__dirname, '..', 'templates', 'scaffold.feature'),\n        `${projectRoot}/test/integration/features/scaffold.feature`\n      )\n    ]);\n\n    return deepmerge(\n      {\n        scripts: {'pretest:integration:base': 'run-s build'},\n        dependencies: {javascript: {development: ['mock-fs', '@form8ion/core']}}\n      },\n      cucumberResults\n    );\n  }\n\n  return {scripts: {}};\n}\n","import {promises as fs} from 'fs';\nimport {resolve} from 'path';\n\nimport filedirname from 'filedirname';\n\nconst [, __dirname] = filedirname();\n\nexport default async function ({projectRoot}) {\n  await fs.copyFile(\n    resolve(__dirname, '..', 'templates', 'example.js'),\n    `${projectRoot}/example.js`\n  );\n\n  return {dependencies: {javascript: {development: ['mock-fs']}}};\n}\n","import {promises as fs} from 'node:fs';\nimport {resolve} from 'node:path';\n\nimport deepmerge from 'deepmerge';\nimport filedirname from 'filedirname';\n\nimport scaffoldIntegrationTesting from './integration-testing.js';\nimport scaffoldDocumentation from './documentation.js';\n\nconst [, __dirname] = filedirname();\n\nexport default async function ({projectRoot, projectName, packageName, tests, dialect}) {\n  await fs.mkdir(`${projectRoot}/src`, {recursive: true});\n\n  const [documentationResults, integrationTestingResults] = await Promise.all([\n    scaffoldDocumentation({projectRoot}),\n    scaffoldIntegrationTesting({projectRoot, projectName, packageName, tests, dialect}),\n    fs.writeFile(`${projectRoot}/src/index.js`, \"export {default as scaffold} from './scaffolder.js';\\n\"),\n    fs.copyFile(resolve(__dirname, '..', 'templates', 'scaffolder.js'), `${projectRoot}/src/scaffolder.js`)\n  ]);\n\n  return deepmerge(documentationResults, integrationTestingResults);\n}\n"],"names":["__dirname","scaffoldCucumber","fs","resolve"],"mappings":"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"}