From c6ba24af87f3d17439a63e1ae33545f045bec9b1 Mon Sep 17 00:00:00 2001 From: Ben Allfree Date: Sat, 31 Dec 2022 09:16:54 -0800 Subject: [PATCH] chore: $util refactor --- packages/common/src/schema/Instance.ts | 4 +++- packages/daemon/package.json | 2 +- packages/daemon/src/migrate/migrate.ts | 3 +-- packages/daemon/src/migrate/pexec.ts | 3 +-- packages/daemon/src/migrate/withInstance.ts | 9 ++------- packages/daemon/src/services/BackupService.ts | 2 +- packages/daemon/src/services/InstanceService.ts | 5 ++--- packages/daemon/src/services/PocketBaseService.ts | 14 ++++++++------ .../src/services/clientService/BackupMixin.ts | 2 +- .../src/services/clientService/InstanceMIxin.ts | 2 +- .../src/services/clientService/InvocationMixin.ts | 2 +- .../daemon/src/services/clientService/PbClient.ts | 3 +-- .../daemon/src/services/clientService/RpcHelper.ts | 8 ++++++-- packages/daemon/src/util/backupInstance.ts | 8 ++++++-- packages/daemon/src/util/index.ts | 8 ++++++++ packages/daemon/src/util/promiseHelper.ts | 1 - packages/daemon/src/util/tryFetch.ts | 3 +-- packages/daemon/tsconfig.json | 2 +- 18 files changed, 45 insertions(+), 36 deletions(-) create mode 100644 packages/daemon/src/util/index.ts delete mode 100644 packages/daemon/src/util/promiseHelper.ts diff --git a/packages/common/src/schema/Instance.ts b/packages/common/src/schema/Instance.ts index 7083d251..6c7965ab 100644 --- a/packages/common/src/schema/Instance.ts +++ b/packages/common/src/schema/Instance.ts @@ -1,6 +1,8 @@ -import { PlatformId, VersionId } from '../releases' import { BaseFields, RecordId, Seconds, Subdomain, UserId } from './types' +export type VersionId = string +export type PlatformId = string + export enum InstanceStatus { Unknown = '', Idle = 'idle', diff --git a/packages/daemon/package.json b/packages/daemon/package.json index 603592e2..80eb87a5 100644 --- a/packages/daemon/package.json +++ b/packages/daemon/package.json @@ -4,7 +4,7 @@ "license": "MIT", "scripts": { "build": "echo 'Build complete' `date`", - "dev": "DEBUG=1 tsx watch src/server.ts", + "dev": "tsx watch src/server.ts", "start": "tsx src/server.ts", "pm2": "pm2 del daemon ; pm2 start \"yarn start\" --name=daemon", "migrate": "tsx src/migrate/migrate.ts" diff --git a/packages/daemon/src/migrate/migrate.ts b/packages/daemon/src/migrate/migrate.ts index f7a9ac92..55237c0a 100644 --- a/packages/daemon/src/migrate/migrate.ts +++ b/packages/daemon/src/migrate/migrate.ts @@ -1,7 +1,6 @@ import { pocketbase } from '$services' -import { InstanceStatus, logger } from '@pockethost/common' +import { InstanceStatus, logger, safeCatch } from '@pockethost/common' import { PH_BIN_CACHE, PUBLIC_PB_SUBDOMAIN } from '../constants' -import { safeCatch } from '../util/promiseHelper' import { schema } from './schema' import { withInstance } from './withInstance' ;(async () => { diff --git a/packages/daemon/src/migrate/pexec.ts b/packages/daemon/src/migrate/pexec.ts index 04b03da4..adcfed74 100644 --- a/packages/daemon/src/migrate/pexec.ts +++ b/packages/daemon/src/migrate/pexec.ts @@ -1,6 +1,5 @@ -import { logger } from '@pockethost/common' +import { logger, safeCatch } from '@pockethost/common' import { exec } from 'child_process' -import { safeCatch } from '../util/promiseHelper' export const pexec = safeCatch(`pexec`, (cmd: string) => { const { dbg, error } = logger().create('pexec') diff --git a/packages/daemon/src/migrate/withInstance.ts b/packages/daemon/src/migrate/withInstance.ts index db474305..329a40bf 100644 --- a/packages/daemon/src/migrate/withInstance.ts +++ b/packages/daemon/src/migrate/withInstance.ts @@ -1,9 +1,5 @@ -import { - createPbClient, - PocketbaseClientApi, -} from '$services/clientService/PbClient' -import { pocketbase } from '$services/PocketBaseService' -import { logger } from '@pockethost/common' +import { createPbClient, pocketbase, PocketbaseClientApi } from '$services' +import { logger, safeCatch } from '@pockethost/common' import { DAEMON_PB_PASSWORD, DAEMON_PB_USERNAME, @@ -11,7 +7,6 @@ import { PUBLIC_PB_PROTOCOL, PUBLIC_PB_SUBDOMAIN, } from '../constants' -import { safeCatch } from '../util/promiseHelper' export const withInstance = safeCatch( `withInstance`, diff --git a/packages/daemon/src/services/BackupService.ts b/packages/daemon/src/services/BackupService.ts index 318d67db..3204cbf5 100644 --- a/packages/daemon/src/services/BackupService.ts +++ b/packages/daemon/src/services/BackupService.ts @@ -1,4 +1,5 @@ import { clientService, rpcService } from '$services' +import { backupInstance } from '$util' import { assertTruthy, BackupFields, @@ -15,7 +16,6 @@ import { RpcCommands, } from '@pockethost/common' import Bottleneck from 'bottleneck' -import { backupInstance } from '../util/backupInstance' export const backupService = mkSingleton(async () => { const { dbg } = logger().create('BackupService') diff --git a/packages/daemon/src/services/InstanceService.ts b/packages/daemon/src/services/InstanceService.ts index eecd3b12..8515acd6 100644 --- a/packages/daemon/src/services/InstanceService.ts +++ b/packages/daemon/src/services/InstanceService.ts @@ -1,4 +1,5 @@ import { clientService, rpcService } from '$services' +import { mkInternalUrl, now } from '$util' import { assertTruthy, CreateInstancePayload, @@ -10,6 +11,7 @@ import { logger, mkSingleton, RpcCommands, + safeCatch, } from '@pockethost/common' import { forEachRight, map } from '@s-libs/micro-dash' import Bottleneck from 'bottleneck' @@ -21,9 +23,6 @@ import { PUBLIC_APP_DOMAIN, PUBLIC_APP_PROTOCOL, } from '../constants' -import { mkInternalUrl } from '../util/internal' -import { now } from '../util/now' -import { safeCatch } from '../util/promiseHelper' import { pocketbase, PocketbaseProcess } from './PocketBaseService' type InstanceApi = { diff --git a/packages/daemon/src/services/PocketBaseService.ts b/packages/daemon/src/services/PocketBaseService.ts index f94af2f6..fa5f8e50 100644 --- a/packages/daemon/src/services/PocketBaseService.ts +++ b/packages/daemon/src/services/PocketBaseService.ts @@ -1,4 +1,11 @@ -import { createTimerManager, logger } from '@pockethost/common' +import { + downloadAndExtract, + mkInternalAddress, + mkInternalUrl, + smartFetch, + tryFetch, +} from '$util' +import { createTimerManager, logger, safeCatch } from '@pockethost/common' import { mkSingleton } from '@pockethost/common/src/mkSingleton' import { keys } from '@s-libs/micro-dash' import { spawn } from 'child_process' @@ -9,11 +16,6 @@ import { join } from 'path' import { maxSatisfying, rsort } from 'semver' import { AsyncReturnType } from 'type-fest' import { DAEMON_PB_DATA_DIR } from '../constants' -import { downloadAndExtract } from '../util/downloadAndExtract' -import { mkInternalAddress, mkInternalUrl } from '../util/internal' -import { safeCatch } from '../util/promiseHelper' -import { smartFetch } from '../util/smartFetch' -import { tryFetch } from '../util/tryFetch' export type PocketbaseCommand = 'serve' | 'upgrade' export type SpawnConfig = { diff --git a/packages/daemon/src/services/clientService/BackupMixin.ts b/packages/daemon/src/services/clientService/BackupMixin.ts index 66a1a110..25109723 100644 --- a/packages/daemon/src/services/clientService/BackupMixin.ts +++ b/packages/daemon/src/services/clientService/BackupMixin.ts @@ -7,8 +7,8 @@ import { InstanceFields, InstanceId, logger, + safeCatch, } from '@pockethost/common' -import { safeCatch } from '../../util/promiseHelper' import { MixinContext } from './PbClient' export type BackupApi = ReturnType diff --git a/packages/daemon/src/services/clientService/InstanceMIxin.ts b/packages/daemon/src/services/clientService/InstanceMIxin.ts index 8de82306..e028340b 100644 --- a/packages/daemon/src/services/clientService/InstanceMIxin.ts +++ b/packages/daemon/src/services/clientService/InstanceMIxin.ts @@ -5,12 +5,12 @@ import { InstanceId, InstanceStatus, logger, + safeCatch, UserFields, } from '@pockethost/common' import { reduce } from '@s-libs/micro-dash' import Bottleneck from 'bottleneck' import { endOfMonth, startOfMonth } from 'date-fns' -import { safeCatch } from '../../util/promiseHelper' import { MixinContext } from './PbClient' export type InstanceApi = ReturnType diff --git a/packages/daemon/src/services/clientService/InvocationMixin.ts b/packages/daemon/src/services/clientService/InvocationMixin.ts index c26472e3..21d3ea11 100644 --- a/packages/daemon/src/services/clientService/InvocationMixin.ts +++ b/packages/daemon/src/services/clientService/InvocationMixin.ts @@ -3,8 +3,8 @@ import { InvocationFields, logger, pocketNow, + safeCatch, } from '@pockethost/common' -import { safeCatch } from '../../util/promiseHelper' import { InstanceApi } from './InstanceMIxin' import { MixinContext } from './PbClient' diff --git a/packages/daemon/src/services/clientService/PbClient.ts b/packages/daemon/src/services/clientService/PbClient.ts index dc14fa27..18c43c1a 100644 --- a/packages/daemon/src/services/clientService/PbClient.ts +++ b/packages/daemon/src/services/clientService/PbClient.ts @@ -1,4 +1,4 @@ -import { logger } from '@pockethost/common' +import { logger, safeCatch } from '@pockethost/common' import { Knex } from 'knex' import { Collection, @@ -7,7 +7,6 @@ import { } from 'pocketbase' import { DAEMON_PB_DATA_DIR, PUBLIC_PB_SUBDOMAIN } from '../../constants' import { Collection_Serialized } from '../../migrate/schema' -import { safeCatch } from '../../util/promiseHelper' import { createBackupMixin } from './BackupMixin' import { createInstanceMixin } from './InstanceMIxin' import { createInvocationMixin } from './InvocationMixin' diff --git a/packages/daemon/src/services/clientService/RpcHelper.ts b/packages/daemon/src/services/clientService/RpcHelper.ts index a11c003a..59bb45c1 100644 --- a/packages/daemon/src/services/clientService/RpcHelper.ts +++ b/packages/daemon/src/services/clientService/RpcHelper.ts @@ -1,6 +1,10 @@ -import { RpcFields, RpcStatus, RPC_COLLECTION } from '@pockethost/common' +import { + RpcFields, + RpcStatus, + RPC_COLLECTION, + safeCatch, +} from '@pockethost/common' import { JsonObject } from 'type-fest' -import { safeCatch } from '../../util/promiseHelper' import { MixinContext } from './PbClient' export enum RecordSubscriptionActions { diff --git a/packages/daemon/src/util/backupInstance.ts b/packages/daemon/src/util/backupInstance.ts index 7ed3200a..aaf79bb1 100644 --- a/packages/daemon/src/util/backupInstance.ts +++ b/packages/daemon/src/util/backupInstance.ts @@ -1,4 +1,9 @@ -import { BackupRecordId, InstanceId, logger } from '@pockethost/common' +import { + BackupRecordId, + InstanceId, + logger, + safeCatch, +} from '@pockethost/common' import { statSync } from 'fs' import { basename, resolve } from 'path' import { chdir, cwd } from 'process' @@ -7,7 +12,6 @@ import tmp from 'tmp' import { DAEMON_PB_DATA_DIR } from '../constants' import { pexec } from '../migrate/pexec' import { ensureDirExists } from './ensureDirExists' -import { safeCatch } from './promiseHelper' export type BackupProgress = { current: number diff --git a/packages/daemon/src/util/index.ts b/packages/daemon/src/util/index.ts new file mode 100644 index 00000000..5dfa10a3 --- /dev/null +++ b/packages/daemon/src/util/index.ts @@ -0,0 +1,8 @@ +export * from './backupInstance' +export * from './downloadAndExtract' +export * from './ensureDirExists' +export * from './env' +export * from './internal' +export * from './now' +export * from './smartFetch' +export * from './tryFetch' diff --git a/packages/daemon/src/util/promiseHelper.ts b/packages/daemon/src/util/promiseHelper.ts deleted file mode 100644 index 613181e3..00000000 --- a/packages/daemon/src/util/promiseHelper.ts +++ /dev/null @@ -1 +0,0 @@ -export { safeCatch } from '@pockethost/common' diff --git a/packages/daemon/src/util/tryFetch.ts b/packages/daemon/src/util/tryFetch.ts index f4bd78fd..29c9bc44 100644 --- a/packages/daemon/src/util/tryFetch.ts +++ b/packages/daemon/src/util/tryFetch.ts @@ -1,5 +1,4 @@ -import { logger } from '@pockethost/common' -import { safeCatch } from './promiseHelper' +import { logger, safeCatch } from '@pockethost/common' export const tryFetch = safeCatch(`tryFetch`, (url: string) => { const { dbg } = logger().create('tryFetch') diff --git a/packages/daemon/tsconfig.json b/packages/daemon/tsconfig.json index 36aa597a..7a5cc19f 100644 --- a/packages/daemon/tsconfig.json +++ b/packages/daemon/tsconfig.json @@ -16,7 +16,7 @@ "noEmit": true, "baseUrl": ".", "paths": { - "$util/*": ["src/util/*"], + "$util": ["src/util/index"], "$services": ["src/services/index"], "$src/*": ["src/*"] }