From f8db3ee662f1a19c09004d5b265f40391d966176 Mon Sep 17 00:00:00 2001 From: Tim Fabian Date: Sat, 12 Apr 2025 22:35:49 +0200 Subject: [PATCH 1/2] fixed mx run bug, extends cspellOptions in project eslint configs, disable jsdoc/require-description for eslint configs, disable cspell completely for generated environment.ts files --- package-lock.json | 4 ++-- package.json | 2 +- src/commands/add/add-wordpress/add-wordpress.command.ts | 1 + src/commands/init/init.command.ts | 5 +++-- src/commands/run/run.command.ts | 1 + src/db/db.utilities.ts | 2 ++ src/env/env.utilities.ts | 3 ++- src/eslint/eslint-utilities.test.ts | 1 + src/eslint/eslint.utilities.ts | 6 ++++-- 9 files changed, 17 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 920059c..83aea6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "monux-cli", - "version": "2.0.3", + "version": "2.0.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "monux-cli", - "version": "2.0.3", + "version": "2.0.9", "license": "MIT", "dependencies": { "chalk": "^4.1.2", diff --git a/package.json b/package.json index e7ebe66..0a2771a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "monux-cli", - "version": "2.0.8", + "version": "2.0.9", "license": "MIT", "main": "index.js", "engines": { diff --git a/src/commands/add/add-wordpress/add-wordpress.command.ts b/src/commands/add/add-wordpress/add-wordpress.command.ts index df554e1..4c99d8a 100644 --- a/src/commands/add/add-wordpress/add-wordpress.command.ts +++ b/src/commands/add/add-wordpress/add-wordpress.command.ts @@ -31,6 +31,7 @@ export class AddWordpressCommand extends AddCommand { override async run(): Promise { const config: AddWordpressConfiguration = await this.getConfig(); + // TODO: make calculated variables based on subDomain and port. await EnvUtilities.addStaticVariable({ key: DefaultEnvKeys.domain(config.name), required: true, diff --git a/src/commands/init/init.command.ts b/src/commands/init/init.command.ts index 315954f..da7c163 100644 --- a/src/commands/init/init.command.ts +++ b/src/commands/init/init.command.ts @@ -126,10 +126,11 @@ async function createCspellWords(): Promise { */ async function createEslintConfig(): Promise { await FsUtilities.createFile(ESLINT_CONFIG_FILE_NAME, [ - 'import { configs } from \'eslint-config-service-soft\';', + `import { configs } from '${NpmPackage.ESLINT_CONFIG_SERVICE_SOFT}';`, '', + '// eslint-disable-next-line jsdoc/require-description', '/** @type {import(\'eslint\').Linter.Config} */', - 'export default [...config];' + 'export default [...configs];' ]); } diff --git a/src/commands/run/run.command.ts b/src/commands/run/run.command.ts index 7e7fca7..0a82156 100644 --- a/src/commands/run/run.command.ts +++ b/src/commands/run/run.command.ts @@ -14,6 +14,7 @@ export async function runRun(...args: string[]): Promise { const commands: string = args.slice(1).join(' '); if (!nativeCommand) { await NpmUtilities.run(projectName, commands); + return; } const project: WorkspaceProject = await WorkspaceUtilities.findProjectOrFail(projectName); diff --git a/src/db/db.utilities.ts b/src/db/db.utilities.ts index 90096cb..fc71bd6 100644 --- a/src/db/db.utilities.ts +++ b/src/db/db.utilities.ts @@ -291,6 +291,7 @@ export abstract class DbUtilities { required: true, type: 'string' }); + // TODO: make calculated variable either "localhost" for dev or "serviceName" for local/prod. await EnvUtilities.addStaticVariable({ key: HOST_ENV_VARIABLE, value: 'localhost', @@ -367,6 +368,7 @@ export abstract class DbUtilities { required: true, type: 'string' }); + // TODO: make calculated variable either "localhost" for dev or "serviceName" for local/prod. await EnvUtilities.addStaticVariable({ key: HOST_ENV_VARIABLE, value: 'localhost', diff --git a/src/env/env.utilities.ts b/src/env/env.utilities.ts index 5aaefab..71b04f8 100644 --- a/src/env/env.utilities.ts +++ b/src/env/env.utilities.ts @@ -151,7 +151,7 @@ export abstract class EnvUtilities { */ static async setupProjectEnvironment(projectPath: string, disableCommentRule: boolean): Promise { await FsUtilities.createFile( - getPath(projectPath, 'src', 'environment', 'environment.model.ts'), + getPath(projectPath, 'src', 'environment', ENVIRONMENT_MODEL_TS_FILE_NAME), [ // eslint-disable-next-line stylistic/max-len (disableCommentRule ? '/* eslint-disable jsdoc/require-jsdoc */\n' : '') + 'import { GlobalEnvironment } from \'../../../../global-environment.model\';', @@ -181,6 +181,7 @@ export abstract class EnvUtilities { await FsUtilities.createFile( getPath(projectPath, 'src', 'environment', ENVIRONMENT_TS_FILE_NAME), [ + '/* eslint-disable cspell/spellchecker */', 'import { Environment } from \'./environment.model\';', '', `export const environment: Environment = {${variables.map(v => this.stringifyEnvKeyValue(v)).join(',')}\n};` diff --git a/src/eslint/eslint-utilities.test.ts b/src/eslint/eslint-utilities.test.ts index ef4c86a..a48d9d6 100644 --- a/src/eslint/eslint-utilities.test.ts +++ b/src/eslint/eslint-utilities.test.ts @@ -19,6 +19,7 @@ describe('EslintUtilities', () => { expect(lines).toEqual([ 'import baseConfig from \'../../eslint.config.mjs\';', '', + '// eslint-disable-next-line jsdoc/require-description',, '/** @type {import(\'eslint\').Linter.Config} */', 'export default [', ' ...baseConfig,', diff --git a/src/eslint/eslint.utilities.ts b/src/eslint/eslint.utilities.ts index af6d2bf..0b84aa6 100644 --- a/src/eslint/eslint.utilities.ts +++ b/src/eslint/eslint.utilities.ts @@ -1,7 +1,7 @@ import { ESLINT_CONFIG_FILE_NAME, PACKAGE_JSON_FILE_NAME } from '../constants'; import { FsUtilities } from '../encapsulation'; -import { NpmUtilities } from '../npm'; +import { NpmPackage, NpmUtilities } from '../npm'; import { getPath } from '../utilities'; /** @@ -32,8 +32,10 @@ export abstract class EslintUtilities { await FsUtilities.createFile( getPath(root, ESLINT_CONFIG_FILE_NAME), [ + `import { cspellOptions } from '${NpmPackage.ESLINT_CONFIG_SERVICE_SOFT}';`, `import baseConfig from '${baseEslintConfigPath}';`, '', + '// eslint-disable-next-line jsdoc/require-description', '/** @type {import(\'eslint\').Linter.Config} */', 'export default [', '\t...baseConfig,', @@ -46,11 +48,11 @@ export abstract class EslintUtilities { '\t\t}', '\t},', '\t{', - '\t\tfiles: [\'**/*.ts\', \'**/*.handlebars\', \'**/*.html\', \'**/*.js\', \'**/*.mjs\', \'**/*.cjs\', \'**/*.json\'],', '\t\trules: {' + (disableCommentRule ? '\n\t\t\t\'jsdoc/require-jsdoc\': \'off\',' : ''), '\t\t\t\'cspell/spellchecker\': [', '\t\t\t\t\'warn\',', '\t\t\t\t{', + '\t\t\t\t\t...cspellOptions,', '\t\t\t\t\tcustomWordListFile: \'../../cspell.words.txt\'', '\t\t\t\t}', '\t\t\t]', From e78deb6d9e3b175e818e92a7bb587bae699831ca Mon Sep 17 00:00:00 2001 From: Tim Fabian Date: Sat, 12 Apr 2025 22:44:44 +0200 Subject: [PATCH 2/2] fixed tests --- src/env/env-utilities.test.ts | 1 + src/eslint/eslint-utilities.test.ts | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/env/env-utilities.test.ts b/src/env/env-utilities.test.ts index a305f68..856caf0 100644 --- a/src/env/env-utilities.test.ts +++ b/src/env/env-utilities.test.ts @@ -223,6 +223,7 @@ describe('EnvUtilities', () => { const environmentLines: string[] = await FsUtilities.readFileLines(mockConstants.ANGULAR_ENVIRONMENT); expect(environmentLines).toEqual([ + '/* eslint-disable cspell/spellchecker */', 'import { Environment } from \'./environment.model\';', '', 'export const environment: Environment = {', diff --git a/src/eslint/eslint-utilities.test.ts b/src/eslint/eslint-utilities.test.ts index a48d9d6..08a9914 100644 --- a/src/eslint/eslint-utilities.test.ts +++ b/src/eslint/eslint-utilities.test.ts @@ -17,9 +17,10 @@ describe('EslintUtilities', () => { await EslintUtilities.setupProjectEslint(mockConstants.ANGULAR_APP_DIR, true); const lines: string[] = await FsUtilities.readFileLines(mockConstants.ANGULAR_ESLINT_CONFIG_MJS); expect(lines).toEqual([ + 'import { cspellOptions } from \'eslint-config-service-soft\';', 'import baseConfig from \'../../eslint.config.mjs\';', '', - '// eslint-disable-next-line jsdoc/require-description',, + '// eslint-disable-next-line jsdoc/require-description', '/** @type {import(\'eslint\').Linter.Config} */', 'export default [', ' ...baseConfig,', @@ -32,12 +33,12 @@ describe('EslintUtilities', () => { ' }', ' },', ' {', - ' files: [\'**/*.ts\', \'**/*.handlebars\', \'**/*.html\', \'**/*.js\', \'**/*.mjs\', \'**/*.cjs\', \'**/*.json\'],', ' rules: {', ' \'jsdoc/require-jsdoc\': \'off\',', ' \'cspell/spellchecker\': [', ' \'warn\',', ' {', + ' ...cspellOptions,', ' customWordListFile: \'../../cspell.words.txt\'', ' }', ' ]',