diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index c7c5a7222..50ea55f77 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -9,9 +9,9 @@ import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/sy import { PROPERTY_CURRENCIES, PROPERTY_IS_READ_ONLY_MODE, - PROPERTY_IS_USER_SIGNUP_ENABLED, - PropertyKey + PROPERTY_IS_USER_SIGNUP_ENABLED } from '@ghostfolio/common/config'; +import { PropertyKey } from '@ghostfolio/common/types'; import { getAssetProfileIdentifier, getCurrencyFromSymbol diff --git a/apps/api/src/services/property/property.service.ts b/apps/api/src/services/property/property.service.ts index 907ef1ae9..80643482f 100644 --- a/apps/api/src/services/property/property.service.ts +++ b/apps/api/src/services/property/property.service.ts @@ -1,9 +1,9 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; import { PROPERTY_CURRENCIES, - PROPERTY_IS_USER_SIGNUP_ENABLED, - PropertyKey + PROPERTY_IS_USER_SIGNUP_ENABLED } from '@ghostfolio/common/config'; +import { PropertyKey } from '@ghostfolio/common/types'; import { Injectable } from '@nestjs/common'; diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index 110e3bb9a..4f3e9dd9d 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -267,35 +267,6 @@ export const PROPERTY_SYSTEM_MESSAGE = 'SYSTEM_MESSAGE'; export const PROPERTY_UPTIME = 'UPTIME'; export const PROPERTY_WEB_FETCH_ROUTES = 'WEB_FETCH_ROUTES'; -export type PropertyKey = - | typeof PROPERTY_API_KEY_GHOSTFOLIO - | typeof PROPERTY_API_KEY_OPENROUTER - | typeof PROPERTY_BENCHMARKS - | typeof PROPERTY_BETTER_UPTIME_MONITOR_ID - | typeof PROPERTY_COUNTRIES_OF_SUBSCRIBERS - | typeof PROPERTY_COUPONS - | typeof PROPERTY_CURRENCIES - | typeof PROPERTY_CUSTOM_CRYPTOCURRENCIES - | typeof PROPERTY_DATA_SOURCE_MAPPING - | typeof PROPERTY_DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER_MAX_REQUESTS - | typeof PROPERTY_DEMO_ACCOUNT_ID - | typeof PROPERTY_DEMO_USER_ID - | typeof PROPERTY_DOCKER_HUB_PULLS - | typeof PROPERTY_GITHUB_CONTRIBUTORS - | typeof PROPERTY_GITHUB_STARGAZERS - | typeof PROPERTY_IS_DATA_GATHERING_ENABLED - | typeof PROPERTY_IS_READ_ONLY_MODE - | typeof PROPERTY_IS_USER_SIGNUP_ENABLED - | typeof PROPERTY_OPENROUTER_MODEL - | typeof PROPERTY_OPENROUTER_MODEL_WEB_FETCH - | typeof PROPERTY_PROXY_ROUTES - | typeof PROPERTY_REFERRAL_PARTNERS - | typeof PROPERTY_SLACK_COMMUNITY_USERS - | typeof PROPERTY_STRIPE_CONFIG - | typeof PROPERTY_SYSTEM_MESSAGE - | typeof PROPERTY_UPTIME - | typeof PROPERTY_WEB_FETCH_ROUTES; - export const QUEUE_JOB_STATUS_LIST = [ 'active', 'completed', diff --git a/libs/common/src/lib/types/index.ts b/libs/common/src/lib/types/index.ts index b6e513a51..b6186c9e7 100644 --- a/libs/common/src/lib/types/index.ts +++ b/libs/common/src/lib/types/index.ts @@ -16,6 +16,7 @@ import type { MarketDataPreset } from './market-data-preset.type'; import type { MarketState } from './market-state.type'; import type { Market } from './market.type'; import type { OrderWithAccount } from './order-with-account.type'; +import type { PropertyKey } from './property-key.type'; import type { RequestWithUser } from './request-with-user.type'; import type { SectorName } from './sector-name.type'; import type { SubscriptionOfferKey } from './subscription-offer-key.type'; @@ -41,6 +42,7 @@ export type { MarketDataPreset, MarketState, OrderWithAccount, + PropertyKey, RequestWithUser, SectorName, SubscriptionOfferKey, diff --git a/libs/common/src/lib/types/property-key.type.ts b/libs/common/src/lib/types/property-key.type.ts new file mode 100644 index 000000000..6c89a5054 --- /dev/null +++ b/libs/common/src/lib/types/property-key.type.ts @@ -0,0 +1,7 @@ +import type * as config from '../config'; + +export type PropertyKey = { + [Key in keyof typeof config]: Key extends `PROPERTY_${string}` + ? (typeof config)[Key] + : never; +}[keyof typeof config];