From a8c79e655130c2a890d93a0d42b024a6aa96bc54 Mon Sep 17 00:00:00 2001 From: Matt Travi Date: Fri, 10 Jan 2025 17:01:00 -0600 Subject: [PATCH] feat(js-configs): extracted common configs for use across scaffolding and lifting --- src/common/enhanced-lifters.js | 13 ++++++++++++- src/common/enhanced-lifters.test.js | 3 ++- src/common/javascript-configs.js | 12 ++++++++++++ src/common/javascript-options.js | 15 +++------------ src/common/javascript-options.test.js | 8 ++------ 5 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 src/common/javascript-configs.js diff --git a/src/common/enhanced-lifters.js b/src/common/enhanced-lifters.js index 693eafb9e..504a33310 100644 --- a/src/common/enhanced-lifters.js +++ b/src/common/enhanced-lifters.js @@ -6,7 +6,18 @@ import {plugins} from './javascript-options.js'; export function javascript(options) { return lift({ ...options, - configs: {eslint: {scope: '@travi'}}, + configs: { + eslint: {scope: '@travi'}, + commitlint: { + name: 'travi', + packageName: 'commitlint-config-travi' + }, + babelPreset: { + name: '@travi', + packageName: '@travi/babel-preset' + }, + remark: 'remark-preset-lint-travi' + }, enhancers: ungroupObject(plugins()) }); } diff --git a/src/common/enhanced-lifters.test.js b/src/common/enhanced-lifters.test.js index 8569d6074..4b1ec9d60 100644 --- a/src/common/enhanced-lifters.test.js +++ b/src/common/enhanced-lifters.test.js @@ -7,6 +7,7 @@ import {when} from 'jest-when'; import {plugins} from './javascript-options.js'; import {javascript} from './enhanced-lifters.js'; +import configs from './javascript-configs.js'; vi.mock('@form8ion/core'); vi.mock('./javascript-options.js'); @@ -28,7 +29,7 @@ describe('enhanced lifters', () => { plugins.mockReturnValue(groupedPlugins); when(ungroupObject).calledWith(groupedPlugins).mockReturnValue(ungroupedPlugins); when(jsLifter.lift) - .calledWith({...options, configs: {eslint: {scope: '@travi'}}, enhancers: ungroupedPlugins}) + .calledWith({...options, configs, enhancers: ungroupedPlugins}) .mockResolvedValue(results); expect(await javascript(options)).toEqual(results); diff --git a/src/common/javascript-configs.js b/src/common/javascript-configs.js new file mode 100644 index 000000000..c32086b84 --- /dev/null +++ b/src/common/javascript-configs.js @@ -0,0 +1,12 @@ +export default { + eslint: {scope: '@travi'}, + commitlint: { + name: 'travi', + packageName: 'commitlint-config-travi' + }, + babelPreset: { + name: '@travi', + packageName: '@travi/babel-preset' + }, + remark: 'remark-preset-lint-travi' +}; diff --git a/src/common/javascript-options.js b/src/common/javascript-options.js index 7928cd3a5..54387abb4 100644 --- a/src/common/javascript-options.js +++ b/src/common/javascript-options.js @@ -16,7 +16,9 @@ import * as netlifyPlugin from '@travi/netlify-scaffolder'; import * as appEngineStandardPlugin from '@travi/node-app-engine-standard-scaffolder'; import * as githubWorkflowsPlugin from '@form8ion/github-actions-node-ci'; import * as circleCiPlugin from '@travi/circle-scaffolder-javascript'; + import {unitTestFrameworks} from './test-frameworks.js'; +import configs from './javascript-configs.js'; export function plugins() { return { @@ -53,18 +55,7 @@ export function plugins() { export function defineScaffoldJavascriptOptions(decisions, options) { return { ...options, - configs: { - eslint: {scope: '@travi'}, - commitlint: { - name: 'travi', - packageName: 'commitlint-config-travi' - }, - babelPreset: { - name: '@travi', - packageName: '@travi/babel-preset' - }, - remark: 'remark-preset-lint-travi' - }, + configs, plugins: plugins(), decisions: { ...decisions, diff --git a/src/common/javascript-options.test.js b/src/common/javascript-options.test.js index e9b4aabff..5a55b4589 100644 --- a/src/common/javascript-options.test.js +++ b/src/common/javascript-options.test.js @@ -21,6 +21,7 @@ import {describe, expect, it} from 'vitest'; import any from '@travi/any'; import {unitTestFrameworks} from './test-frameworks.js'; +import configs from './javascript-configs.js'; import {defineScaffoldJavascriptOptions, plugins} from './javascript-options.js'; describe('common javascript config', () => { @@ -30,12 +31,7 @@ describe('common javascript config', () => { expect(defineScaffoldJavascriptOptions(decisions, options)).toEqual({ ...options, - configs: { - eslint: {scope: '@travi'}, - commitlint: {name: 'travi', packageName: 'commitlint-config-travi'}, - babelPreset: {name: '@travi', packageName: '@travi/babel-preset'}, - remark: 'remark-preset-lint-travi' - }, + configs, plugins: plugins(), decisions: { ...decisions,