Browse Source

Improve type safety of key in PropertyService

pull/7219/head
AkashNegi1 2 weeks ago
parent
commit
fc40de5220
  1. 4
      apps/api/src/app/admin/admin.service.ts
  2. 4
      apps/api/src/services/property/property.service.ts
  3. 29
      libs/common/src/lib/config.ts
  4. 2
      libs/common/src/lib/types/index.ts
  5. 7
      libs/common/src/lib/types/property-key.type.ts

4
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

4
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';

29
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',

2
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,

7
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];
Loading…
Cancel
Save