From d21496ba800aadab45be619214d605b3c634f65a Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Thu, 29 Oct 2026 08:56:06 +0100 Subject: [PATCH] refactor(cli): share the apt service of the prepare base class Co-Authored-By: Claude Opus 5.5 --- src/cli/prepare-tool/base-prepare.service.ts | 4 ++-- src/cli/tools/dotnet/index.ts | 6 +----- src/cli/tools/golang.ts | 6 +----- src/cli/tools/node/index.ts | 6 +----- src/cli/tools/php/index.ts | 6 +----- src/cli/tools/python/conan.ts | 6 +----- src/cli/tools/python/index.ts | 6 +----- src/cli/tools/ruby/index.ts | 6 +----- 8 files changed, 9 insertions(+), 37 deletions(-) diff --git a/src/cli/prepare-tool/base-prepare.service.ts b/src/cli/prepare-tool/base-prepare.service.ts index ef571733cc..cf5ee50e0a 100644 --- a/src/cli/prepare-tool/base-prepare.service.ts +++ b/src/cli/prepare-tool/base-prepare.service.ts @@ -18,7 +18,7 @@ export abstract class BasePrepareService { @inject(EnvService) protected readonly envSvc!: EnvService; @inject(AptService) - private readonly _aptSvc!: AptService; + protected readonly aptSvc!: AptService; abstract readonly name: string; @@ -57,7 +57,7 @@ export abstract class BasePrepareService { distroPackages: Record, ...common: string[] ): Promise { - await this._aptSvc.installDistroPackages( + await this.aptSvc.installDistroPackages( this.name, distroPackages, ...common, diff --git a/src/cli/tools/dotnet/index.ts b/src/cli/tools/dotnet/index.ts index 4363996bba..9ce8e61cbe 100644 --- a/src/cli/tools/dotnet/index.ts +++ b/src/cli/tools/dotnet/index.ts @@ -1,16 +1,12 @@ import { join } from 'node:path'; -import { inject, injectFromHierarchy, injectable } from 'inversify'; +import { injectFromHierarchy, injectable } from 'inversify'; import { BaseInstallService } from '../../install-tool/base-install.service.ts'; import { BasePrepareService } from '../../prepare-tool/base-prepare.service.ts'; -import { AptService } from '../../services/index.ts'; import { getDistro, parse, pathExists } from '../../utils/index.ts'; @injectable() @injectFromHierarchy() export class DotnetPrepareService extends BasePrepareService { - @inject(AptService) - private readonly aptSvc!: AptService; - readonly name = 'dotnet'; /** diff --git a/src/cli/tools/golang.ts b/src/cli/tools/golang.ts index 87f37cfa1c..30ae85b413 100644 --- a/src/cli/tools/golang.ts +++ b/src/cli/tools/golang.ts @@ -1,17 +1,13 @@ import { join } from 'node:path'; -import { inject, injectFromHierarchy, injectable } from 'inversify'; +import { injectFromHierarchy, injectable } from 'inversify'; import { z } from 'zod'; import { BaseInstallService } from '../install-tool/base-install.service.ts'; import { BasePrepareService } from '../prepare-tool/base-prepare.service.ts'; -import { AptService } from '../services/index.ts'; import { parse } from '../utils/index.ts'; @injectable() @injectFromHierarchy() export class GolangPrepareService extends BasePrepareService { - @inject(AptService) - private readonly aptSvc!: AptService; - override readonly name = 'golang'; /** diff --git a/src/cli/tools/node/index.ts b/src/cli/tools/node/index.ts index f2333f532d..83c13e3b56 100644 --- a/src/cli/tools/node/index.ts +++ b/src/cli/tools/node/index.ts @@ -1,9 +1,8 @@ import fs from 'node:fs/promises'; import { join } from 'node:path'; import { env as penv } from 'node:process'; -import { inject, injectFromHierarchy, injectable } from 'inversify'; +import { injectFromHierarchy, injectable } from 'inversify'; import { BasePrepareService } from '../../prepare-tool/base-prepare.service.ts'; -import { AptService } from '../../services/index.ts'; import { fileContent, parse } from '../../utils/index.ts'; import { NodeBaseInstallService, @@ -14,9 +13,6 @@ import { @injectable() @injectFromHierarchy() export class NodePrepareService extends BasePrepareService { - @inject(AptService) - private readonly aptSvc!: AptService; - override name = 'node'; /** diff --git a/src/cli/tools/php/index.ts b/src/cli/tools/php/index.ts index 38836a10d1..72fd4b262c 100644 --- a/src/cli/tools/php/index.ts +++ b/src/cli/tools/php/index.ts @@ -1,18 +1,14 @@ import { join } from 'node:path'; import { isNonEmptyStringAndNotWhitespace } from '@sindresorhus/is'; -import { inject, injectFromHierarchy, injectable } from 'inversify'; +import { injectFromHierarchy, injectable } from 'inversify'; import { BaseInstallService } from '../../install-tool/base-install.service.ts'; import { ToolVersionResolver } from '../../install-tool/tool-version-resolver.ts'; import { BasePrepareService } from '../../prepare-tool/base-prepare.service.ts'; -import { AptService } from '../../services/index.ts'; import { getDistro } from '../../utils/index.ts'; @injectable() @injectFromHierarchy() export class PhpPrepareService extends BasePrepareService { - @inject(AptService) - private readonly aptSvc!: AptService; - override readonly name = 'php'; /** diff --git a/src/cli/tools/python/conan.ts b/src/cli/tools/python/conan.ts index a816628832..10cbe22f71 100644 --- a/src/cli/tools/python/conan.ts +++ b/src/cli/tools/python/conan.ts @@ -1,7 +1,6 @@ import { join } from 'node:path'; -import { inject, injectFromHierarchy, injectable } from 'inversify'; +import { injectFromHierarchy, injectable } from 'inversify'; import { BasePrepareService } from '../../prepare-tool/base-prepare.service.ts'; -import { AptService } from '../../services/index.ts'; import { type Distro, fileContent, getDistro } from '../../utils/index.ts'; import { PipVersionResolver } from './pip.ts'; import { PipBaseInstallService } from './utils.ts'; @@ -9,9 +8,6 @@ import { PipBaseInstallService } from './utils.ts'; @injectable() @injectFromHierarchy() export class ConanPrepareService extends BasePrepareService { - @inject(AptService) - private readonly aptSvc!: AptService; - override readonly name: string = 'conan'; /** diff --git a/src/cli/tools/python/index.ts b/src/cli/tools/python/index.ts index 42a13b3b12..4dd292e5e7 100644 --- a/src/cli/tools/python/index.ts +++ b/src/cli/tools/python/index.ts @@ -1,8 +1,7 @@ import fs from 'node:fs/promises'; import { join } from 'node:path'; -import { inject, injectFromHierarchy, injectable } from 'inversify'; +import { injectFromHierarchy, injectable } from 'inversify'; import { BasePrepareService } from '../../prepare-tool/base-prepare.service.ts'; -import { AptService } from '../../services/index.ts'; import { getDistro, parse } from '../../utils/index.ts'; import { PrebuildInstallService } from '../utils/prebuild.ts'; import { pipIndexEnv } from './utils.ts'; @@ -13,9 +12,6 @@ const supportedDistros = ['jammy', 'noble', 'resolute']; @injectable() @injectFromHierarchy() export class PythonPrepareService extends BasePrepareService { - @inject(AptService) - private readonly aptSvc!: AptService; - override readonly name = 'python'; /** diff --git a/src/cli/tools/ruby/index.ts b/src/cli/tools/ruby/index.ts index 1de8e70626..4bc964985b 100644 --- a/src/cli/tools/ruby/index.ts +++ b/src/cli/tools/ruby/index.ts @@ -1,7 +1,6 @@ import { join } from 'node:path'; -import { inject, injectFromHierarchy, injectable } from 'inversify'; +import { injectFromHierarchy, injectable } from 'inversify'; import { BasePrepareService } from '../../prepare-tool/base-prepare.service.ts'; -import { AptService } from '../../services/index.ts'; import { fileContent, getDistro } from '../../utils/index.ts'; import { PrebuildInstallService } from '../utils/prebuild.ts'; @@ -14,9 +13,6 @@ const linkedDirs = ['.gem', '.cocoapods', 'Library']; @injectable() @injectFromHierarchy() export class RubyPrepareService extends BasePrepareService { - @inject(AptService) - private readonly aptSvc!: AptService; - override readonly name = 'ruby'; /**