@form8ion/hapi-scaffolder 5.0.0-alpha.1 → 5.0.0-alpha.2

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.js CHANGED
@@ -62,7 +62,7 @@ async function scaffoldTesting ({projectRoot, tests}) {
62
62
  ]);
63
63
 
64
64
  return deepmerge(
65
- {devDependencies: ['@travi/any', 'http-status-codes']},
65
+ {dependencies: {javascript: {development: ['@travi/any', 'http-status-codes']}}},
66
66
  cucumberResults
67
67
  );
68
68
  }
@@ -78,12 +78,12 @@ async function scaffold({projectRoot, projectName, tests}) {
78
78
 
79
79
  return deepmerge(
80
80
  {
81
- dependencies: [
82
- '@hapi/glue',
83
- 'hapi-graceful-shutdown-plugin',
84
- 'hapi-pino'
85
- ],
86
- devDependencies: ['webpack', 'webpack-cli'],
81
+ dependencies: {
82
+ javascript: {
83
+ production: ['@hapi/glue', 'hapi-graceful-shutdown-plugin', 'hapi-pino'],
84
+ development: ['webpack', 'webpack-cli']
85
+ }
86
+ },
87
87
  scripts: {
88
88
  build: 'npm-run-all --print-label --parallel build:*',
89
89
  'build:server': 'webpack --env production --config webpack.config.server.babel.js',
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises as fs} from 'node:fs';\nimport {dirname, resolve} from 'node:path';\nimport mustache from 'mustache';\nimport {fileURLToPath} from 'node:url';\n\n// eslint-disable-next-line no-underscore-dangle\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport default async function ({projectRoot, projectName}) {\n await fs.mkdir(`${projectRoot}/src/server`, {recursive: true});\n\n await Promise.all([\n fs.copyFile(resolve(__dirname, '..', 'templates', 'server.mjs'), `${projectRoot}/src/server/server.js`),\n fs.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n fs.writeFile(\n `${projectRoot}/src/server/manifest.js`,\n mustache.render(\n await fs.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n fs.writeFile(`${projectRoot}/src/server/index.js`, 'export {default} from \\'./server.js\\';\\n'),\n fs.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.mjs'),\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 'node:path';\nimport {promises as fs} from 'node:fs';\nimport deepmerge from 'deepmerge';\n\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\n\nexport default async function ({projectRoot, tests}) {\n if (tests.integration) {\n await fs.mkdir(`${projectRoot}/test/integration/features/step_definitions`);\n\n const [cucumberResults] = await Promise.all([\n scaffoldCucumber({projectRoot}),\n fs.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${projectRoot}/test/integration/features/canary.feature`\n ),\n fs.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${projectRoot}/test/integration/features/step_definitions/server-steps.js`\n )\n ]);\n\n return deepmerge(\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.js';\nimport scaffoldDocumentation from './documentation.js';\nimport scaffoldTesting from './testing.js';\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(\n {\n dependencies: [\n '@hapi/glue',\n 'hapi-graceful-shutdown-plugin',\n 'hapi-pino'\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":["__dirname","fs","scaffoldCucumber"],"mappings":";;;;;;;AAKA;AACA,MAAMA,WAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;AAE1C,6BAAc,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;AAC3D,EAAE,MAAMC,QAAE,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;;AAEhE,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;AACpB,IAAIA,QAAE,CAAC,QAAQ,CAAC,OAAO,CAACD,WAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAC3G,IAAIC,QAAE,CAAC,QAAQ,CAAC,OAAO,CAACD,WAAS,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;AACrG,IAAIC,QAAE,CAAC,SAAS;AAChB,MAAM,CAAC,EAAE,WAAW,CAAC,uBAAuB,CAAC;AAC7C,MAAM,QAAQ,CAAC,MAAM;AACrB,QAAQ,MAAMA,QAAE,CAAC,QAAQ,CAAC,OAAO,CAACD,WAAS,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC;AAC7F,QAAQ,CAAC,WAAW;AACpB;AACA,KAAK;AACL,IAAIC,QAAE,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,EAAE,0CAA0C,CAAC;AAClG,IAAIA,QAAE,CAAC,QAAQ;AACf,MAAM,OAAO,CAACD,WAAS,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,CAAC;AACxE,MAAM,CAAC,EAAE,WAAW,CAAC,+BAA+B;AACpD;AACA,GAAG,CAAC;AACJ;;AC3Be,8BAAQ,IAAI;AAC3B,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,CAAC;;AAEZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN,GAAG;AACH;;ACRe,8BAAc,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;AACrD,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE;AACzB,IAAI,MAAMC,QAAE,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,2CAA2C,CAAC,CAAC;;AAE/E,IAAI,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAChD,MAAMC,UAAgB,CAAC,CAAC,WAAW,CAAC,CAAC;AACrC,MAAMD,QAAE,CAAC,QAAQ;AACjB,QAAQ,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,CAAC;AAC/D,QAAQ,CAAC,EAAE,WAAW,CAAC,yCAAyC;AAChE,OAAO;AACP,MAAMA,QAAE,CAAC,QAAQ;AACjB,QAAQ,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,CAAC;AAChE,QAAQ,CAAC,EAAE,WAAW,CAAC,2DAA2D;AAClF;AACA,KAAK,CAAC;;AAEN,IAAI,OAAO,SAAS;AACpB,MAAM,CAAC,eAAe,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;AAC5D,MAAM;AACN,KAAK;AACL;;AAEA,EAAE,OAAO,EAAE;AACX;;ACvBO,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;AAC7C,GAAG,CAAC;;AAEJ,EAAE,OAAO,SAAS;AAClB,IAAI;AACJ,MAAM,YAAY,EAAE;AACpB,QAAQ,YAAY;AACpB,QAAQ,+BAA+B;AACvC,QAAQ;AACR,OAAO;AACP,MAAM,eAAe,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;AACjD,MAAM,OAAO,EAAE;AACf,QAAQ,KAAK,EAAE,8CAA8C;AAC7D,QAAQ,cAAc,EAAE,kEAAkE;AAC1F,QAAQ,KAAK,EAAE,mBAAmB;AAClC,QAAQ,qBAAqB,EAAE;AAC/B,OAAO;AACP,MAAM,aAAa,EAAE,qBAAqB;AAC1C,KAAK;AACL,IAAI;AACJ,GAAG;AACH;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/server.js","../src/documentation.js","../src/testing.js","../src/scaffolder.js"],"sourcesContent":["import {promises as fs} from 'node:fs';\nimport {dirname, resolve} from 'node:path';\nimport mustache from 'mustache';\nimport {fileURLToPath} from 'node:url';\n\n// eslint-disable-next-line no-underscore-dangle\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport default async function ({projectRoot, projectName}) {\n await fs.mkdir(`${projectRoot}/src/server`, {recursive: true});\n\n await Promise.all([\n fs.copyFile(resolve(__dirname, '..', 'templates', 'server.mjs'), `${projectRoot}/src/server/server.js`),\n fs.copyFile(resolve(__dirname, '..', 'templates', '.env.example'), `${projectRoot}/.env.example`),\n fs.writeFile(\n `${projectRoot}/src/server/manifest.js`,\n mustache.render(\n await fs.readFile(resolve(__dirname, '..', 'templates', 'manifest.mustache'), 'utf8'),\n {projectName}\n )\n ),\n fs.writeFile(`${projectRoot}/src/server/index.js`, 'export {default} from \\'./server.js\\';\\n'),\n fs.copyFile(\n resolve(__dirname, '..', 'templates', 'webpack.config.server.mjs'),\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 'node:path';\nimport {promises as fs} from 'node:fs';\nimport deepmerge from 'deepmerge';\n\nimport {scaffold as scaffoldCucumber} from '@form8ion/cucumber-scaffolder';\n\nexport default async function ({projectRoot, tests}) {\n if (tests.integration) {\n await fs.mkdir(`${projectRoot}/test/integration/features/step_definitions`);\n\n const [cucumberResults] = await Promise.all([\n scaffoldCucumber({projectRoot}),\n fs.copyFile(\n resolve(__dirname, '..', 'templates', 'canary.feature'),\n `${projectRoot}/test/integration/features/canary.feature`\n ),\n fs.copyFile(\n resolve(__dirname, '..', 'templates', 'server-steps.js'),\n `${projectRoot}/test/integration/features/step_definitions/server-steps.js`\n )\n ]);\n\n return deepmerge(\n {dependencies: {javascript: {development: ['@travi/any', 'http-status-codes']}}},\n cucumberResults\n );\n }\n\n return {};\n}\n","import deepmerge from 'deepmerge';\n\nimport scaffoldServer from './server.js';\nimport scaffoldDocumentation from './documentation.js';\nimport scaffoldTesting from './testing.js';\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(\n {\n dependencies: {\n javascript: {\n production: ['@hapi/glue', 'hapi-graceful-shutdown-plugin', 'hapi-pino'],\n development: ['webpack', 'webpack-cli']\n }\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 testingResults\n );\n}\n"],"names":["__dirname","fs","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": "5.0.0-alpha.1",
5
+ "version": "5.0.0-alpha.2",
6
6
  "type": "module",
7
7
  "author": "Matt Travi <npm@travi.org> (https://matt.travi.org/)",
8
8
  "repository": "form8ion/hapi-scaffolder",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "packageManager": "npm@11.1.0+sha512.acf301ad9b9ddba948fcb72341e2f0fcae477f56a95cc2a092934d133a7461062633cefbf93d5934a3dc0768674e2edee9f04dcfcc4bb4c327ff0e3a7d552a1b",
49
49
  "dependencies": {
50
- "@form8ion/cucumber-scaffolder": "^2.1.0",
50
+ "@form8ion/cucumber-scaffolder": "^5.0.0-beta.1",
51
51
  "deepmerge": "^4.2.2",
52
52
  "mustache": "^4.0.0"
53
53
  },