| |
| import { resolveNodeServiceIdentityEnvironment } from "./constants.js"; |
| import type { GatewayService, GatewayServiceInstallArgs } from "./service.js"; |
| import { resolveGatewayService } from "./service.js"; |
|
|
| |
| function withNodeServiceEnv( |
| env: Record<string, string | undefined>, |
| ): Record<string, string | undefined> { |
| |
| |
| return { |
| ...env, |
| ...resolveNodeServiceIdentityEnvironment(), |
| }; |
| } |
|
|
| function withNodeInstallEnv(args: GatewayServiceInstallArgs): GatewayServiceInstallArgs { |
| return { |
| ...args, |
| env: withNodeServiceEnv(args.env), |
| environment: withNodeServiceEnv(args.environment ?? {}), |
| }; |
| } |
|
|
| |
| export function resolveNodeService(): GatewayService { |
| const base = resolveGatewayService("node"); |
| const { hasInstalledDefinition, isAbsent } = base; |
| return { |
| ...base, |
| stage: (args) => base.stage(withNodeInstallEnv(args)), |
| install: (args) => base.install(withNodeInstallEnv(args)), |
| uninstall: (args) => base.uninstall({ ...args, env: withNodeServiceEnv(args.env) }), |
| start: (args) => base.start({ ...args, env: withNodeServiceEnv(args.env ?? {}) }), |
| stop: (args) => base.stop({ ...args, env: withNodeServiceEnv(args.env ?? {}) }), |
| restart: (args) => base.restart({ ...args, env: withNodeServiceEnv(args.env ?? {}) }), |
| isLoaded: (args) => { |
| |
| |
| return base.isLoaded({ env: withNodeServiceEnv(args.env ?? {}), timeoutMs: args.timeoutMs }); |
| }, |
| hasInstalledDefinition: hasInstalledDefinition |
| ? (args) => hasInstalledDefinition({ ...args, env: withNodeServiceEnv(args.env ?? {}) }) |
| : undefined, |
| isAbsent: isAbsent |
| ? (args) => isAbsent({ ...args, env: withNodeServiceEnv(args.env ?? {}) }) |
| : undefined, |
| readCommand: (env, opts) => base.readCommand(withNodeServiceEnv(env), opts), |
| readRuntime: (env, opts) => base.readRuntime(withNodeServiceEnv(env), opts), |
| }; |
| } |
|
|