From e095edd20f475320041425e3c1fc9a374430cf6b Mon Sep 17 00:00:00 2001 From: MARCROCK22 Date: Thu, 22 May 2025 17:01:12 -0400 Subject: [PATCH] fix: update ObjectToLower and ObjectToSnake types to preserve numeric keys --- src/common/types/util.ts | 8 ++++---- src/index.ts | 14 +++++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/common/types/util.ts b/src/common/types/util.ts index c595002..7c68058 100644 --- a/src/common/types/util.ts +++ b/src/common/types/util.ts @@ -107,7 +107,7 @@ export type SnakeCase = S extends `${infer A}${infer Rest}` export type ObjectToLower = T extends unknown[] ? ObjectToLower[] : Identify<{ - [K in keyof T as CamelCase>]: T[K] extends unknown[] + [K in keyof T as K extends number ? K : CamelCase>]: T[K] extends unknown[] ? Identify[]> : T[K] extends object ? Identify> @@ -119,7 +119,7 @@ export type ObjectToLower = T extends unknown[] export type ObjectToLowerUndefined = T extends unknown[] ? ObjectToLower[] : Identify<{ - [K in keyof T as CamelCase>]: T[K] extends unknown[] + [K in keyof T as K extends number ? K : CamelCase>]: T[K] extends unknown[] ? ObjectToLower[] : T[K] extends object ? ObjectToLower @@ -127,7 +127,7 @@ export type ObjectToLowerUndefined = T extends unknown[] }>; export type ObjectToSnake = Identify<{ - [K in keyof T as SnakeCase>]: T[K] extends unknown[] + [K in keyof T as K extends number ? K : SnakeCase>]: T[K] extends unknown[] ? Identify[]> : T[K] extends object ? Identify> @@ -139,7 +139,7 @@ export type ObjectToSnake = Identify<{ export type ObjectToSnakeUndefined = T extends unknown[] ? ObjectToSnake[] : Identify<{ - [K in keyof T as SnakeCase>]: T[K] extends unknown[] + [K in keyof T as K extends number ? K : SnakeCase>]: T[K] extends unknown[] ? ObjectToSnake[] : T[K] extends object ? ObjectToSnake diff --git a/src/index.ts b/src/index.ts index 00f8556..b5ff4d6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,9 +7,10 @@ import { type RuntimeConfig, type RuntimeConfigHTTP, } from './client/base'; -import { isCloudfareWorker } from './common'; +import { type ObjectToLower, isCloudfareWorker } from './common'; import type { ClientNameEvents, CustomEventsKeys, ResolveEventParams } from './events'; import { GatewayIntentBits } from './types'; +import type { APIMessageInteractionMetadata } from './types/payloads/_interactions/base'; export { Logger, PermissionStrings, Formatter } from './common'; // export { Collection, LimitedCollection } from './collection'; @@ -105,3 +106,14 @@ export function extendContext( ) { return cb; } + +declare const authorizedIntegrationOwners: ObjectToLower< + APIMessageInteractionMetadata['authorizing_integration_owners'] +>; +authorizedIntegrationOwners; +// ^? + +declare const interactionMetadataLowercase: ObjectToLower; + +interactionMetadataLowercase.authorizingIntegrationOwners; +//. ^?