diff --git a/README.md b/README.md index 1ed119f..096060d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # @sapphirecode/snippeteer -version: 1.4.x +version: 1.5.x macros for setting up projects or project parts diff --git a/lib/snippets/copyright/file_mapper.ts b/lib/snippets/copyright/file_mapper.ts index a632820..cbe6ec5 100644 --- a/lib/snippets/copyright/file_mapper.ts +++ b/lib/snippets/copyright/file_mapper.ts @@ -13,7 +13,7 @@ export class FileMapper { public static async map_all_files ( folder: string, mutator: (data: string, file: string, args: Array) => string|null, - args: Array = [] + opts: Array = [] ): Promise { const files = await fs.readdir (folder); for (const file of files) { @@ -21,11 +21,11 @@ export class FileMapper { continue; const abs_path = path.join (folder, file); if ((await fs.stat (abs_path)).isDirectory ()) { - await FileMapper.map_all_files (abs_path, mutator, args); + await FileMapper.map_all_files (abs_path, mutator, opts); continue; } const data = await fs.readFile (abs_path, 'utf-8'); - const res = mutator (data, file, args); + const res = mutator (data, file, opts); if (res === null) continue; await fs.writeFile (abs_path, res, 'utf-8'); diff --git a/lib/snippets/node/index.ts b/lib/snippets/node/index.ts index a2336af..e013b9a 100644 --- a/lib/snippets/node/index.ts +++ b/lib/snippets/node/index.ts @@ -7,8 +7,9 @@ import path from 'path'; import { Input, Confirm } from 'enquirer'; -import { - scripts as standard_scripts +import { + scripts as standard_scripts, + files as standard_files } from '@sapphirecode/standard'; import { Snippet } from '../../Snippet'; import { apply_template, modify_json, run_command } from '../../Helper'; @@ -18,6 +19,24 @@ import { tsconfig, eslintrc_ts, eslintignore } from './Assets'; + +const packages = { + common: [ '@sapphirecode/eslint-config' ], + test: [ + 'nyc', + 'jasmine', + '@types/jasmine' + ], + test_ts: [ + 'jasmine-ts', + 'ts-node' + ], + ts: [ + 'typescript', + '@sapphirecode/eslint-config-ts' + ] +}; + /** * initialize the package.json * @@ -30,6 +49,19 @@ async function init_package ( use_ts: boolean, use_tests: boolean ): Promise { + run_command ('yarn init -y', folder); + + const bundle = [ + ...(use_ts ? packages.ts : packages.common), + ...(use_tests ? packages.test : []), + ...(use_ts && use_tests ? packages.test_ts : []) + ]; + + run_command ( + `yarn add --dev ${bundle.join (' ')}`, + folder + ); + await modify_json ((obj: Record) => { const scripts = { @@ -94,13 +126,13 @@ export default class Node implements Snippet { ); } run_command ('git init', folder); - run_command ('yarn init -y', folder); - run_command ( - `yarn add --dev @sapphirecode/eslint-config${use_ts - ? '-ts typescript @ava/typescript' - : ''} eslint${use_tests ? ' nyc ava' : ''}`, - folder - ); + + if (use_tests) { + apply_template ( + standard_files.jasmine, + path.join (folder, 'jasmine.json') + ); + } await init_package (folder, use_ts, use_tests); } diff --git a/package.json b/package.json index ab27ade..40fee9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@sapphirecode/snippeteer", - "version": "1.4.7", + "version": "1.5.0", "description": "macros for setting up projects or project parts", "main": "index.js", "bin": { diff --git a/yarn.lock b/yarn.lock index 3cbb66c..4e77834 100644 --- a/yarn.lock +++ b/yarn.lock @@ -107,9 +107,9 @@ eslint-plugin-sort-requires-by-path "^1.0.2" "@sapphirecode/standard@^1.0.1": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@sapphirecode/standard/-/standard-1.4.0.tgz#c191bf818b311a18b9765a072cd6a4acd21731f7" - integrity sha512-IDxqRc2z5K7O25lUVkx+dlwE+3C2mJIZd6YUU/9KjJKnsz7iaFDzoSkFFPJLqHmuZ+uq0dPLEo59C6bdf/Dj7w== + version "1.4.1" + resolved "https://registry.yarnpkg.com/@sapphirecode/standard/-/standard-1.4.1.tgz#9d02b8648a76feeb591dc0df428aa7973963f47b" + integrity sha512-ecxRNxcNGvdzHaSMgdRR5XP/kk/PmiC08zzev9rc/vruTj6L/yZwLI7bgWnbimFab2CbD21ExufFTDOiMIp9Vg== "@types/color-name@^1.1.1": version "1.1.1"