sfcc-cip-analytics-client
Version:
SFCC Commerce Intelligence Platform Analytics Client
35 lines (34 loc) • 1.42 kB
TypeScript
import { CIPClient } from '../cip-client';
import { DateRange } from './types';
export interface QueryTemplateParams {
dateRange: DateRange;
}
export interface SiteSpecificQueryTemplateParams extends QueryTemplateParams {
siteId: string;
}
export type SqlTemplateFunction<T extends QueryTemplateParams = QueryTemplateParams> = (params: T) => {
sql: string;
parameters: any[];
};
export interface QueryMetadata {
name: string;
description: string;
category: string;
requiredParams: string[];
optionalParams?: string[];
}
export interface EnhancedQueryFunction<TResult = any, TParams extends QueryTemplateParams = QueryTemplateParams> {
(client: CIPClient, params: TParams, batchSize?: number): AsyncGenerator<TResult[], void, unknown>;
metadata: QueryMetadata;
QUERY: (params: TParams) => {
sql: string;
parameters: any[];
};
}
export declare function executeQuery<T>(client: CIPClient, sql: string, batchSize?: number): AsyncGenerator<T[], void, unknown>;
export declare function executeParameterizedQuery<T>(client: CIPClient, sql: string, parameters?: any[], batchSize?: number): AsyncGenerator<T[], void, unknown>;
export declare function formatDateRange(dateRange: DateRange): {
startDate: string;
endDate: string;
};
export declare function validateRequiredParams<T extends Record<string, any>>(params: T, requiredFields: (keyof T)[]): void;