Comparing version 0.0.15 to 0.0.16
import { ClientBase, Pool, QueryConfig } from 'pg'; | ||
import { Awaited, ResolvableValue } from '@duely/core'; | ||
import { ResourceTypes } from './types'; | ||
import { Resource, ResourceDefinitions } from './types'; | ||
export * from './errors'; | ||
@@ -39,3 +39,3 @@ export declare const pool: Pool; | ||
export declare function queryResourceAccess(client: ClientBase, id: string): Promise<string>; | ||
export declare function queryResource<K extends keyof ResourceTypes, F extends Record<string, any> = Record<string, any>>(context: Context, id_or_resource_name: K, filter?: F): Promise<ResourceTypes[K]>; | ||
export declare function queryResource<K extends keyof ResourceDefinitions, F extends Record<string, any> = Record<string, any>>(context: Context, id_or_resource_name: K, filter?: F): Promise<Resource<K>>; | ||
export declare function queryResource<R = any, F extends Record<string, any> = Record<string, any>>(context: Context, id_or_resource_name: string, filter?: F): Promise<R>; | ||
@@ -58,3 +58,3 @@ export declare function queryResource<R = any, F extends Record<string, any> = Record<string, any>>(client: ClientBase, id_or_resource_name: string, filter?: F): Promise<R>; | ||
queryResourceAccess: import("@duely/core").GenericFunction<Promise<string>, [] | [client: ClientBase, id: string] | [id: string]>; | ||
queryResource<K extends string, R_2 = any, F extends Record<string, any> = Record<string, any>>(id_or_resource_name: K, filter?: F | undefined): Promise<K extends keyof ResourceTypes ? ResourceTypes[K] : R_2>; | ||
queryResource<K extends string, R_2 = any, F extends Record<string, any> = Record<string, any>>(id_or_resource_name: K, filter?: F | undefined): Promise<K extends keyof ResourceDefinitions ? Resource<K> : R_2>; | ||
queryResourceAll<R_3 = any, F_1 extends Record<string, any> = Record<string, any>>(resource_name: string, filter?: F_1 | undefined): Promise<R_3[]>; | ||
@@ -61,0 +61,0 @@ createResource<R_4 = any, I_2 extends Record<string, any> = Record<string, any>>(resource_name: string, data: I_2): Promise<R_4>; |
@@ -1,17 +0,201 @@ | ||
export declare type Resource = { | ||
id: string; | ||
export declare type Resource<K extends keyof ResourceDefinitions> = 'resource' extends keyof ResourceDefinitions[K] ? Pick<ResourceDefinitions[K], 'resource'> : never; | ||
export declare type ResourceId<K extends keyof ResourceDefinitions> = `${ResourceDefinitions[K]['prefix']}_${string}`; | ||
export declare type SubdomainResource = { | ||
id: ResourceId<'subdomain'>; | ||
name: string; | ||
}; | ||
export declare type SubdomainResource = Resource & { | ||
export declare type AgencyResource = { | ||
id: ResourceId<'agency'>; | ||
name: string; | ||
livemode: boolean; | ||
agency: AgencyResource; | ||
subdomain_id: ResourceId<'subdomain'>; | ||
subscription_plan_id: ResourceId<'subscription plan'>; | ||
}; | ||
export declare type AgencyResource = Resource & { | ||
export declare type ThemeResource = { | ||
id: ResourceId<'theme'>; | ||
name: string; | ||
livemode: boolean; | ||
subdomain: SubdomainResource; | ||
image_logo_id: ResourceId<'image'>; | ||
image_hero_id: ResourceId<'image'>; | ||
color_primary: string; | ||
color_secondary: string; | ||
color_accent: string; | ||
color_background: string; | ||
color_surface: string; | ||
color_error: string; | ||
color_success: string; | ||
agency_id: ResourceId<'agency'>; | ||
}; | ||
export declare type ResourceTypes = { | ||
agency: AgencyResource; | ||
subdomain: SubdomainResource; | ||
export declare type ImageResource = { | ||
id: ResourceId<'image'>; | ||
name: string; | ||
data: string; | ||
color: string; | ||
agency_id: ResourceId<'agency'>; | ||
access: AccessLevel; | ||
}; | ||
export declare type UserResource = { | ||
id: ResourceId<'user'>; | ||
name: string; | ||
email_address: string; | ||
}; | ||
export declare type ResourceDefinitions = { | ||
subdomain: { | ||
name: 'subdomain'; | ||
prefix: 'sub'; | ||
table_name: 'subdomain'; | ||
resource: SubdomainResource; | ||
}; | ||
agency: { | ||
name: 'agency'; | ||
prefix: 'agcy'; | ||
table_name: 'agency'; | ||
resource: AgencyResource; | ||
}; | ||
theme: { | ||
name: 'theme'; | ||
prefix: 'theme'; | ||
table_name: 'theme'; | ||
resource: ThemeResource; | ||
}; | ||
image: { | ||
name: 'image'; | ||
prefix: 'img'; | ||
table_name: 'image'; | ||
resource: ImageResource; | ||
}; | ||
user: { | ||
name: 'user'; | ||
prefix: 'user'; | ||
table_name: 'user'; | ||
resource: UserResource; | ||
}; | ||
'sign up': { | ||
name: 'sign up'; | ||
prefix: 'su'; | ||
table_name: 'sign_up'; | ||
}; | ||
'password reset': { | ||
name: 'password reset'; | ||
prefix: 'pwd'; | ||
table_name: 'password_reset'; | ||
}; | ||
product: { | ||
name: 'product'; | ||
prefix: 'prod'; | ||
table_name: 'product'; | ||
}; | ||
markdown: { | ||
name: 'markdown'; | ||
prefix: 'md'; | ||
table_name: 'markdown'; | ||
}; | ||
membership: { | ||
name: 'membership'; | ||
prefix: 'member'; | ||
table_name: 'membership'; | ||
}; | ||
'notification definition': { | ||
name: 'notification definition'; | ||
prefix: 'notidef'; | ||
table_name: 'notification_definition'; | ||
}; | ||
'user notification setting': { | ||
name: 'user notification setting'; | ||
prefix: 'set'; | ||
table_name: 'user_notification_setting'; | ||
}; | ||
form: { | ||
name: 'form'; | ||
prefix: 'form'; | ||
table_name: 'form'; | ||
}; | ||
'agency thank you page setting': { | ||
name: 'agency thank you page setting'; | ||
prefix: 'set'; | ||
table_name: 'agency_thank_you_page_setting'; | ||
}; | ||
'page block definition': { | ||
name: 'page block definition'; | ||
prefix: 'pblkdef'; | ||
table_name: 'page_block_definition'; | ||
}; | ||
'product thank you page setting': { | ||
name: 'product thank you page setting'; | ||
prefix: 'set'; | ||
table_name: 'product_thank_you_page_setting'; | ||
}; | ||
'form field': { | ||
name: 'form field'; | ||
prefix: 'formfld'; | ||
table_name: 'form_field'; | ||
}; | ||
'page block': { | ||
name: 'page block'; | ||
prefix: 'pblk'; | ||
table_name: 'page_block'; | ||
}; | ||
'transaction fee': { | ||
name: 'transaction fee'; | ||
prefix: 'txnfee'; | ||
table_name: 'transaction_fee'; | ||
}; | ||
'page definition': { | ||
name: 'page definition'; | ||
prefix: 'pagedef'; | ||
table_name: 'page_definition'; | ||
}; | ||
page: { | ||
name: 'page'; | ||
prefix: 'page'; | ||
table_name: 'page'; | ||
}; | ||
'stripe account': { | ||
name: 'stripe account'; | ||
prefix: 'stripe'; | ||
table_name: 'stripe_account'; | ||
}; | ||
'subscription plan': { | ||
name: 'subscription plan'; | ||
prefix: 'subplan'; | ||
table_name: 'subscription_plan'; | ||
}; | ||
customer: { | ||
name: 'customer'; | ||
prefix: 'cus'; | ||
table_name: 'customer'; | ||
}; | ||
'webhook event': { | ||
name: 'webhook event'; | ||
prefix: 'whevt'; | ||
table_name: 'webhook_event'; | ||
}; | ||
price: { | ||
name: 'price'; | ||
prefix: 'price'; | ||
table_name: 'price'; | ||
}; | ||
order: { | ||
name: 'order'; | ||
prefix: 'ord'; | ||
table_name: 'order'; | ||
}; | ||
credential: { | ||
name: 'credential'; | ||
prefix: 'cred'; | ||
table_name: 'credential'; | ||
}; | ||
integration: { | ||
name: 'integration'; | ||
prefix: 'inte'; | ||
table_name: 'integration'; | ||
}; | ||
'order item': { | ||
name: 'order item'; | ||
prefix: 'orditm'; | ||
table_name: 'order_item'; | ||
}; | ||
}; | ||
export declare type AccessLevel = 'owner' | 'manager' | 'agent' | 'client' | 'public'; | ||
export declare type OperationType = 'query' | 'create' | 'update' | 'delete'; | ||
export declare type ProcessingState = 'pending' | 'processing' | 'processed' | 'failed'; | ||
export declare type VerificationStatus = 'started' | 'verified' | 'cancelled' | 'expired'; |
{ | ||
"name": "@duely/db", | ||
"version": "0.0.15", | ||
"version": "0.0.16", | ||
"description": "Client for querying duely-postgres database.", | ||
@@ -5,0 +5,0 @@ "repository": "github:uoleevi/duely", |
@@ -5,3 +5,3 @@ import { ClientBase, Pool, PoolClient, QueryConfig } from 'pg'; | ||
import { Awaited, ResolvableValue, Util } from '@duely/core'; | ||
import { ResourceTypes } from './types'; | ||
import { Resource, ResourceDefinitions } from './types'; | ||
@@ -245,7 +245,7 @@ export * from './errors'; | ||
export async function queryResource<K extends keyof ResourceTypes, F extends Record<string, any> = Record<string, any>>( | ||
export async function queryResource<K extends keyof ResourceDefinitions, F extends Record<string, any> = Record<string, any>>( | ||
context: Context, | ||
id_or_resource_name: K, | ||
filter?: F | ||
): Promise<ResourceTypes[K]>; | ||
): Promise<Resource<K>>; | ||
export async function queryResource<R = any, F extends Record<string, any> = Record<string, any>>( | ||
@@ -401,3 +401,3 @@ context: Context, | ||
filter?: F | ||
): Promise<K extends keyof ResourceTypes ? ResourceTypes[K] : R> { | ||
): Promise<K extends keyof ResourceDefinitions ? Resource<K> : R> { | ||
return await queryResource(client, id_or_resource_name, filter); | ||
@@ -404,0 +404,0 @@ }, |
139
src/types.ts
@@ -1,20 +0,139 @@ | ||
export type Resource = { | ||
id: string; | ||
export type Resource< | ||
K extends keyof ResourceDefinitions | ||
> = 'resource' extends keyof ResourceDefinitions[K] | ||
? Pick<ResourceDefinitions[K], 'resource'> | ||
: never; | ||
export type ResourceId< | ||
K extends keyof ResourceDefinitions | ||
> = `${ResourceDefinitions[K]['prefix']}_${string}`; | ||
export type SubdomainResource = { | ||
id: ResourceId<'subdomain'>; | ||
name: string; | ||
}; | ||
export type SubdomainResource = Resource & { | ||
export type AgencyResource = { | ||
id: ResourceId<'agency'>; | ||
name: string; | ||
livemode: boolean; | ||
agency: AgencyResource; | ||
subdomain_id: ResourceId<'subdomain'>; | ||
subscription_plan_id: ResourceId<'subscription plan'>; | ||
}; | ||
export type AgencyResource = Resource & { | ||
export type ThemeResource = { | ||
id: ResourceId<'theme'>; | ||
name: string; | ||
livemode: boolean; | ||
subdomain: SubdomainResource; | ||
image_logo_id: ResourceId<'image'>; | ||
image_hero_id: ResourceId<'image'>; | ||
color_primary: string; | ||
color_secondary: string; | ||
color_accent: string; | ||
color_background: string; | ||
color_surface: string; | ||
color_error: string; | ||
color_success: string; | ||
agency_id: ResourceId<'agency'>; | ||
}; | ||
export type ResourceTypes = { | ||
agency: AgencyResource; | ||
subdomain: SubdomainResource; | ||
export type ImageResource = { | ||
id: ResourceId<'image'>; | ||
name: string; | ||
data: string; | ||
color: string; | ||
agency_id: ResourceId<'agency'>; | ||
access: AccessLevel; | ||
}; | ||
export type UserResource = { | ||
id: ResourceId<'user'>; | ||
name: string; | ||
email_address: string; | ||
}; | ||
export type ResourceDefinitions = { | ||
subdomain: { | ||
name: 'subdomain'; | ||
prefix: 'sub'; | ||
table_name: 'subdomain'; | ||
resource: SubdomainResource; | ||
}; | ||
agency: { name: 'agency'; prefix: 'agcy'; table_name: 'agency'; resource: AgencyResource }; | ||
theme: { name: 'theme'; prefix: 'theme'; table_name: 'theme'; resource: ThemeResource }; | ||
image: { name: 'image'; prefix: 'img'; table_name: 'image'; resource: ImageResource }; | ||
user: { name: 'user'; prefix: 'user'; table_name: 'user'; resource: UserResource }; | ||
'sign up': { name: 'sign up'; prefix: 'su'; table_name: 'sign_up' }; | ||
'password reset': { | ||
name: 'password reset'; | ||
prefix: 'pwd'; | ||
table_name: 'password_reset'; | ||
}; | ||
product: { name: 'product'; prefix: 'prod'; table_name: 'product' }; | ||
markdown: { name: 'markdown'; prefix: 'md'; table_name: 'markdown' }; | ||
membership: { name: 'membership'; prefix: 'member'; table_name: 'membership' }; | ||
'notification definition': { | ||
name: 'notification definition'; | ||
prefix: 'notidef'; | ||
table_name: 'notification_definition'; | ||
}; | ||
'user notification setting': { | ||
name: 'user notification setting'; | ||
prefix: 'set'; | ||
table_name: 'user_notification_setting'; | ||
}; | ||
form: { name: 'form'; prefix: 'form'; table_name: 'form' }; | ||
'agency thank you page setting': { | ||
name: 'agency thank you page setting'; | ||
prefix: 'set'; | ||
table_name: 'agency_thank_you_page_setting'; | ||
}; | ||
'page block definition': { | ||
name: 'page block definition'; | ||
prefix: 'pblkdef'; | ||
table_name: 'page_block_definition'; | ||
}; | ||
'product thank you page setting': { | ||
name: 'product thank you page setting'; | ||
prefix: 'set'; | ||
table_name: 'product_thank_you_page_setting'; | ||
}; | ||
'form field': { name: 'form field'; prefix: 'formfld'; table_name: 'form_field' }; | ||
'page block': { name: 'page block'; prefix: 'pblk'; table_name: 'page_block' }; | ||
'transaction fee': { | ||
name: 'transaction fee'; | ||
prefix: 'txnfee'; | ||
table_name: 'transaction_fee'; | ||
}; | ||
'page definition': { | ||
name: 'page definition'; | ||
prefix: 'pagedef'; | ||
table_name: 'page_definition'; | ||
}; | ||
page: { name: 'page'; prefix: 'page'; table_name: 'page' }; | ||
'stripe account': { | ||
name: 'stripe account'; | ||
prefix: 'stripe'; | ||
table_name: 'stripe_account'; | ||
}; | ||
'subscription plan': { | ||
name: 'subscription plan'; | ||
prefix: 'subplan'; | ||
table_name: 'subscription_plan'; | ||
}; | ||
customer: { name: 'customer'; prefix: 'cus'; table_name: 'customer' }; | ||
'webhook event': { | ||
name: 'webhook event'; | ||
prefix: 'whevt'; | ||
table_name: 'webhook_event'; | ||
}; | ||
price: { name: 'price'; prefix: 'price'; table_name: 'price' }; | ||
order: { name: 'order'; prefix: 'ord'; table_name: 'order' }; | ||
credential: { name: 'credential'; prefix: 'cred'; table_name: 'credential' }; | ||
integration: { name: 'integration'; prefix: 'inte'; table_name: 'integration' }; | ||
'order item': { name: 'order item'; prefix: 'orditm'; table_name: 'order_item' }; | ||
}; | ||
export type AccessLevel = 'owner' | 'manager' | 'agent' | 'client' | 'public'; | ||
export type OperationType = 'query' | 'create' | 'update' | 'delete'; | ||
export type ProcessingState = 'pending' | 'processing' | 'processed' | 'failed'; | ||
export type VerificationStatus = 'started' | 'verified' | 'cancelled' | 'expired'; |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1094078
11480