@form8ion/hapi-scaffolder 4.0.4 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.cjs.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var deepmerge = require('deepmerge');
5
6
  var fs = require('fs');
6
7
  var path = require('path');
7
8
  var mustache = require('mustache');
@@ -10,6 +11,7 @@ var cucumberScaffolder = require('@form8ion/cucumber-scaffolder');
10
11
 
11
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
13
 
14
+ var deepmerge__default = /*#__PURE__*/_interopDefaultLegacy(deepmerge);
13
15
  var mustache__default = /*#__PURE__*/_interopDefaultLegacy(mustache);
14
16
  var makeDir__default = /*#__PURE__*/_interopDefaultLegacy(makeDir);
15
17
 
@@ -68,11 +70,10 @@ async function scaffoldTesting ({projectRoot, tests}) {
68
70
  )
69
71
  ]);
70
72
 
71
- return {
72
- scripts: cucumberResults.scripts,
73
- devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],
74
- eslintConfigs: cucumberResults.eslintConfigs
75
- };
73
+ return deepmerge__default["default"].all([
74
+ {devDependencies: ['@travi/any', 'http-status-codes']},
75
+ cucumberResults
76
+ ]);
76
77
  }
77
78
 
78
79
  return {};
@@ -84,28 +85,27 @@ async function scaffold({projectRoot, projectName, tests}) {
84
85
  scaffoldServer({projectRoot, projectName})
85
86
  ]);
86
87
 
87
- return {
88
- dependencies: [
89
- '@hapi/glue',
90
- '@hapi/good',
91
- 'hapi-graceful-shutdown-plugin',
92
- 'dotenv-safe',
93
- 'good-bunyan',
94
- 'bunyan'
95
- ],
96
- devDependencies: [
97
- 'webpack',
98
- 'webpack-cli',
99
- ...testingResults.devDependencies
100
- ],
101
- scripts: {
102
- build: 'npm-run-all --print-label --parallel build:*',
103
- 'build:server': 'webpack --env production --config webpack.config.server.babel.js',
104
- start: 'node ./lib/server',
105
- 'pretest:integration': 'run-s build'
88
+ return deepmerge__default["default"].all([
89
+ {
90
+ dependencies: [
91
+ '@hapi/glue',
92
+ '@hapi/good',
93
+ 'hapi-graceful-shutdown-plugin',
94
+ 'dotenv-safe',
95
+ 'good-bunyan',
96
+ 'bunyan'
97
+ ],
98
+ devDependencies: ['webpack', 'webpack-cli'],
99
+ scripts: {
100
+ build: 'npm-run-all --print-label --parallel build:*',
101
+ 'build:server': 'webpack --env production --config webpack.config.server.babel.js',
102
+ start: 'node ./lib/server',
103
+ 'pretest:integration': 'run-s build'
104
+ },
105
+ documentation: scaffoldDocumentation()
106
106
  },
107
- documentation: scaffoldDocumentation()
108
- };
107
+ testingResults
108
+ ]);
109
109
  }
110
110
 
111
111
  exports.scaffold = scaffold;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises} from 'fs';\nimport {resolve} from 'path';\nimport mustache from 'mustache';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, projectName}) {\n const serverDirectory = await mkdir(`${projectRoot}/src/server`);\n\n await Promise.all([\n promises.copyFile(resolve(__dirname, '..', 'templates', 'server.js'), `${serverDirectory}/server.js`),\n promises.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n promises.writeFile(\n `${serverDirectory}/manifest.js`,\n mustache.render(\n await promises.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n promises.writeFile(`${serverDirectory}/index.js`, 'export {default} from \\'./server\\';\\n'),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.js'),\n `${projectRoot}/webpack.config.server.babel.js`\n )\n ]);\n}\n","export default function () {\n return {\n usage: `### Build the Bundle\n\n\\`\\`\\`sh\n$ npm run build\n\\`\\`\\`\n\n### Start the Server\n\n\\`\\`\\`sh\n$ npm start\n\\`\\`\\``\n };\n}\n","import {resolve} from 'path';\nimport {promises} from 'fs';\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, tests}) {\n if (tests.integration) {\n const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([\n mkdir(`${projectRoot}/test/integration/features/step_definitions`),\n scaffoldCucumber({projectRoot})\n ]);\n\n await Promise.all([\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${stepDefinitionsDirectory}/../canary.feature`\n ),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${stepDefinitionsDirectory}/server-steps.js`\n )\n ]);\n\n return {\n scripts: cucumberResults.scripts,\n devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],\n eslintConfigs: cucumberResults.eslintConfigs\n };\n }\n\n return {};\n}\n","import scaffoldServer from './server';\nimport scaffoldDocumentation from './documentation';\nimport scaffoldTesting from './testing';\n\nexport async function scaffold({projectRoot, projectName, tests}) {\n const [testingResults] = await Promise.all([\n scaffoldTesting({projectRoot, tests}),\n scaffoldServer({projectRoot, projectName})\n ]);\n\n return {\n dependencies: [\n '@hapi/glue',\n '@hapi/good',\n 'hapi-graceful-shutdown-plugin',\n 'dotenv-safe',\n 'good-bunyan',\n 'bunyan'\n ],\n devDependencies: [\n 'webpack',\n 'webpack-cli',\n ...testingResults.devDependencies\n ],\n scripts: {\n build: 'npm-run-all --print-label --parallel build:*',\n 'build:server': 'webpack --env production --config webpack.config.server.babel.js',\n start: 'node ./lib/server',\n 'pretest:integration': 'run-s build'\n },\n documentation: scaffoldDocumentation()\n };\n}\n"],"names":["mkdir","promises","resolve","mustache","scaffoldCucumber"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises} from 'fs';\nimport {resolve} from 'path';\nimport mustache from 'mustache';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, projectName}) {\n const serverDirectory = await mkdir(`${projectRoot}/src/server`);\n\n await Promise.all([\n promises.copyFile(resolve(__dirname, '..', 'templates', 'server.js'), `${serverDirectory}/server.js`),\n promises.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n promises.writeFile(\n `${serverDirectory}/manifest.js`,\n mustache.render(\n await promises.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n promises.writeFile(`${serverDirectory}/index.js`, 'export {default} from \\'./server\\';\\n'),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.js'),\n `${projectRoot}/webpack.config.server.babel.js`\n )\n ]);\n}\n","export default function () {\n return {\n usage: `### Build the Bundle\n\n\\`\\`\\`sh\n$ npm run build\n\\`\\`\\`\n\n### Start the Server\n\n\\`\\`\\`sh\n$ npm start\n\\`\\`\\``\n };\n}\n","import {resolve} from 'path';\nimport {promises} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\n\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, tests}) {\n if (tests.integration) {\n const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([\n mkdir(`${projectRoot}/test/integration/features/step_definitions`),\n scaffoldCucumber({projectRoot})\n ]);\n\n await Promise.all([\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${stepDefinitionsDirectory}/../canary.feature`\n ),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${stepDefinitionsDirectory}/server-steps.js`\n )\n ]);\n\n return deepmerge.all([\n {devDependencies: ['@travi/any', 'http-status-codes']},\n cucumberResults\n ]);\n }\n\n return {};\n}\n","import deepmerge from 'deepmerge';\n\nimport scaffoldServer from './server';\nimport scaffoldDocumentation from './documentation';\nimport scaffoldTesting from './testing';\n\nexport async function scaffold({projectRoot, projectName, tests}) {\n const [testingResults] = await Promise.all([\n scaffoldTesting({projectRoot, tests}),\n scaffoldServer({projectRoot, projectName})\n ]);\n\n return deepmerge.all([\n {\n dependencies: [\n '@hapi/glue',\n '@hapi/good',\n 'hapi-graceful-shutdown-plugin',\n 'dotenv-safe',\n 'good-bunyan',\n 'bunyan'\n ],\n devDependencies: ['webpack', 'webpack-cli'],\n scripts: {\n build: 'npm-run-all --print-label --parallel build:*',\n 'build:server': 'webpack --env production --config webpack.config.server.babel.js',\n start: 'node ./lib/server',\n 'pretest:integration': 'run-s build'\n },\n documentation: scaffoldDocumentation()\n },\n testingResults\n ]);\n}\n"],"names":["mkdir","promises","resolve","mustache","scaffoldCucumber","deepmerge"],"mappings":"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"}
package/lib/index.es.js CHANGED
@@ -1,3 +1,4 @@
1
+ import deepmerge from 'deepmerge';
1
2
  import { promises } from 'fs';
2
3
  import { resolve } from 'path';
3
4
  import mustache from 'mustache';
@@ -59,11 +60,10 @@ async function scaffoldTesting ({projectRoot, tests}) {
59
60
  )
60
61
  ]);
61
62
 
62
- return {
63
- scripts: cucumberResults.scripts,
64
- devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],
65
- eslintConfigs: cucumberResults.eslintConfigs
66
- };
63
+ return deepmerge.all([
64
+ {devDependencies: ['@travi/any', 'http-status-codes']},
65
+ cucumberResults
66
+ ]);
67
67
  }
68
68
 
69
69
  return {};
@@ -75,28 +75,27 @@ async function scaffold({projectRoot, projectName, tests}) {
75
75
  scaffoldServer({projectRoot, projectName})
76
76
  ]);
77
77
 
78
- return {
79
- dependencies: [
80
- '@hapi/glue',
81
- '@hapi/good',
82
- 'hapi-graceful-shutdown-plugin',
83
- 'dotenv-safe',
84
- 'good-bunyan',
85
- 'bunyan'
86
- ],
87
- devDependencies: [
88
- 'webpack',
89
- 'webpack-cli',
90
- ...testingResults.devDependencies
91
- ],
92
- scripts: {
93
- build: 'npm-run-all --print-label --parallel build:*',
94
- 'build:server': 'webpack --env production --config webpack.config.server.babel.js',
95
- start: 'node ./lib/server',
96
- 'pretest:integration': 'run-s build'
78
+ return deepmerge.all([
79
+ {
80
+ dependencies: [
81
+ '@hapi/glue',
82
+ '@hapi/good',
83
+ 'hapi-graceful-shutdown-plugin',
84
+ 'dotenv-safe',
85
+ 'good-bunyan',
86
+ 'bunyan'
87
+ ],
88
+ devDependencies: ['webpack', 'webpack-cli'],
89
+ scripts: {
90
+ build: 'npm-run-all --print-label --parallel build:*',
91
+ 'build:server': 'webpack --env production --config webpack.config.server.babel.js',
92
+ start: 'node ./lib/server',
93
+ 'pretest:integration': 'run-s build'
94
+ },
95
+ documentation: scaffoldDocumentation()
97
96
  },
98
- documentation: scaffoldDocumentation()
99
- };
97
+ testingResults
98
+ ]);
100
99
  }
101
100
 
102
101
  export { scaffold };
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises} from 'fs';\nimport {resolve} from 'path';\nimport mustache from 'mustache';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, projectName}) {\n const serverDirectory = await mkdir(`${projectRoot}/src/server`);\n\n await Promise.all([\n promises.copyFile(resolve(__dirname, '..', 'templates', 'server.js'), `${serverDirectory}/server.js`),\n promises.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n promises.writeFile(\n `${serverDirectory}/manifest.js`,\n mustache.render(\n await promises.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n promises.writeFile(`${serverDirectory}/index.js`, 'export {default} from \\'./server\\';\\n'),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.js'),\n `${projectRoot}/webpack.config.server.babel.js`\n )\n ]);\n}\n","export default function () {\n return {\n usage: `### Build the Bundle\n\n\\`\\`\\`sh\n$ npm run build\n\\`\\`\\`\n\n### Start the Server\n\n\\`\\`\\`sh\n$ npm start\n\\`\\`\\``\n };\n}\n","import {resolve} from 'path';\nimport {promises} from 'fs';\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, tests}) {\n if (tests.integration) {\n const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([\n mkdir(`${projectRoot}/test/integration/features/step_definitions`),\n scaffoldCucumber({projectRoot})\n ]);\n\n await Promise.all([\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${stepDefinitionsDirectory}/../canary.feature`\n ),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${stepDefinitionsDirectory}/server-steps.js`\n )\n ]);\n\n return {\n scripts: cucumberResults.scripts,\n devDependencies: ['@travi/any', 'http-status-codes', ...cucumberResults.devDependencies],\n eslintConfigs: cucumberResults.eslintConfigs\n };\n }\n\n return {};\n}\n","import scaffoldServer from './server';\nimport scaffoldDocumentation from './documentation';\nimport scaffoldTesting from './testing';\n\nexport async function scaffold({projectRoot, projectName, tests}) {\n const [testingResults] = await Promise.all([\n scaffoldTesting({projectRoot, tests}),\n scaffoldServer({projectRoot, projectName})\n ]);\n\n return {\n dependencies: [\n '@hapi/glue',\n '@hapi/good',\n 'hapi-graceful-shutdown-plugin',\n 'dotenv-safe',\n 'good-bunyan',\n 'bunyan'\n ],\n devDependencies: [\n 'webpack',\n 'webpack-cli',\n ...testingResults.devDependencies\n ],\n scripts: {\n build: 'npm-run-all --print-label --parallel build:*',\n 'build:server': 'webpack --env production --config webpack.config.server.babel.js',\n start: 'node ./lib/server',\n 'pretest:integration': 'run-s build'\n },\n documentation: scaffoldDocumentation()\n };\n}\n"],"names":["mkdir","scaffoldCucumber"],"mappings":";;;;;;AAKe,6BAAc,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;AAC3D,EAAE,MAAM,eAAe,GAAG,MAAMA,OAAK,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AACnE;AACA,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;AACpB,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;AACzG,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;AAC3G,IAAI,QAAQ,CAAC,SAAS;AACtB,MAAM,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC;AACtC,MAAM,QAAQ,CAAC,MAAM;AACrB,QAAQ,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC;AACnG,QAAQ,CAAC,WAAW,CAAC;AACrB,OAAO;AACP,KAAK;AACL,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,uCAAuC,CAAC;AAC9F,IAAI,QAAQ,CAAC,QAAQ;AACrB,MAAM,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,CAAC;AACvE,MAAM,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC;AACrD,KAAK;AACL,GAAG,CAAC,CAAC;AACL;;ACxBe,8BAAQ,IAAI;AAC3B,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,GAAG,CAAC;AACJ;;ACTe,8BAAc,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;AACrD,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE;AACzB,IAAI,MAAM,CAAC,wBAAwB,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC1E,MAAMA,OAAK,CAAC,CAAC,EAAE,WAAW,CAAC,2CAA2C,CAAC,CAAC;AACxE,MAAMC,UAAgB,CAAC,CAAC,WAAW,CAAC,CAAC;AACrC,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC;AACtB,MAAM,QAAQ,CAAC,QAAQ;AACvB,QAAQ,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,CAAC;AAC/D,QAAQ,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC;AACvD,OAAO;AACP,MAAM,QAAQ,CAAC,QAAQ;AACvB,QAAQ,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,CAAC;AAChE,QAAQ,CAAC,EAAE,wBAAwB,CAAC,gBAAgB,CAAC;AACrD,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA,IAAI,OAAO;AACX,MAAM,OAAO,EAAE,eAAe,CAAC,OAAO;AACtC,MAAM,eAAe,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,eAAe,CAAC;AAC9F,MAAM,aAAa,EAAE,eAAe,CAAC,aAAa;AAClD,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,EAAE,CAAC;AACZ;;AC3BO,eAAe,QAAQ,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE;AAClE,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC7C,IAAI,eAAe,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACzC,IAAI,cAAc,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC9C,GAAG,CAAC,CAAC;AACL;AACA,EAAE,OAAO;AACT,IAAI,YAAY,EAAE;AAClB,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAM,+BAA+B;AACrC,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,QAAQ;AACd,KAAK;AACL,IAAI,eAAe,EAAE;AACrB,MAAM,SAAS;AACf,MAAM,aAAa;AACnB,MAAM,GAAG,cAAc,CAAC,eAAe;AACvC,KAAK;AACL,IAAI,OAAO,EAAE;AACb,MAAM,KAAK,EAAE,8CAA8C;AAC3D,MAAM,cAAc,EAAE,kEAAkE;AACxF,MAAM,KAAK,EAAE,mBAAmB;AAChC,MAAM,qBAAqB,EAAE,aAAa;AAC1C,KAAK;AACL,IAAI,aAAa,EAAE,qBAAqB,EAAE;AAC1C,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises} from 'fs';\nimport {resolve} from 'path';\nimport mustache from 'mustache';\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, projectName}) {\n const serverDirectory = await mkdir(`${projectRoot}/src/server`);\n\n await Promise.all([\n promises.copyFile(resolve(__dirname, '..', 'templates', 'server.js'), `${serverDirectory}/server.js`),\n promises.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n promises.writeFile(\n `${serverDirectory}/manifest.js`,\n mustache.render(\n await promises.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n promises.writeFile(`${serverDirectory}/index.js`, 'export {default} from \\'./server\\';\\n'),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.js'),\n `${projectRoot}/webpack.config.server.babel.js`\n )\n ]);\n}\n","export default function () {\n return {\n usage: `### Build the Bundle\n\n\\`\\`\\`sh\n$ npm run build\n\\`\\`\\`\n\n### Start the Server\n\n\\`\\`\\`sh\n$ npm start\n\\`\\`\\``\n };\n}\n","import {resolve} from 'path';\nimport {promises} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\n\nimport mkdir from '../thirdparty-wrappers/make-dir';\n\nexport default async function ({projectRoot, tests}) {\n if (tests.integration) {\n const [stepDefinitionsDirectory, cucumberResults] = await Promise.all([\n mkdir(`${projectRoot}/test/integration/features/step_definitions`),\n scaffoldCucumber({projectRoot})\n ]);\n\n await Promise.all([\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${stepDefinitionsDirectory}/../canary.feature`\n ),\n promises.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${stepDefinitionsDirectory}/server-steps.js`\n )\n ]);\n\n return deepmerge.all([\n {devDependencies: ['@travi/any', 'http-status-codes']},\n cucumberResults\n ]);\n }\n\n return {};\n}\n","import deepmerge from 'deepmerge';\n\nimport scaffoldServer from './server';\nimport scaffoldDocumentation from './documentation';\nimport scaffoldTesting from './testing';\n\nexport async function scaffold({projectRoot, projectName, tests}) {\n const [testingResults] = await Promise.all([\n scaffoldTesting({projectRoot, tests}),\n scaffoldServer({projectRoot, projectName})\n ]);\n\n return deepmerge.all([\n {\n dependencies: [\n '@hapi/glue',\n '@hapi/good',\n 'hapi-graceful-shutdown-plugin',\n 'dotenv-safe',\n 'good-bunyan',\n 'bunyan'\n ],\n devDependencies: ['webpack', 'webpack-cli'],\n scripts: {\n build: 'npm-run-all --print-label --parallel build:*',\n 'build:server': 'webpack --env production --config webpack.config.server.babel.js',\n start: 'node ./lib/server',\n 'pretest:integration': 'run-s build'\n },\n documentation: scaffoldDocumentation()\n },\n testingResults\n ]);\n}\n"],"names":["mkdir","scaffoldCucumber"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@form8ion/hapi-scaffolder",
3
3
  "description": "opinionated scaffolder for hapi.js projects",
4
4
  "license": "MIT",
5
- "version": "4.0.4",
5
+ "version": "4.0.5",
6
6
  "main": "lib/index.cjs.js",
7
7
  "module": "lib/index.es.js",
8
8
  "sideEffects": false,
@@ -69,7 +69,8 @@
69
69
  "sinon": "14.0.0"
70
70
  },
71
71
  "dependencies": {
72
- "@form8ion/cucumber-scaffolder": "2.1.0",
72
+ "@form8ion/cucumber-scaffolder": "^2.1.0",
73
+ "deepmerge": "^4.2.2",
73
74
  "make-dir": "^3.0.0",
74
75
  "mustache": "^4.0.0"
75
76
  },