devstar插件
This commit is contained in:
148
node_modules/search-insights/lib/conversion.ts
generated
vendored
Normal file
148
node_modules/search-insights/lib/conversion.ts
generated
vendored
Normal file
@@ -0,0 +1,148 @@
|
||||
import { addEventType, addEventTypeAndSubtype } from "./_addEventType";
|
||||
import type AlgoliaAnalytics from "./insights";
|
||||
import type { InsightsEvent } from "./types";
|
||||
import type { WithAdditionalParams } from "./utils";
|
||||
import { extractAdditionalParams, storeQueryForObject } from "./utils";
|
||||
|
||||
export interface InsightsSearchConversionEvent {
|
||||
eventName: string;
|
||||
userToken?: string;
|
||||
authenticatedUserToken?: string;
|
||||
timestamp?: number;
|
||||
index: string;
|
||||
|
||||
queryID: string;
|
||||
objectIDs: string[];
|
||||
objectData?: InsightsEvent["objectData"];
|
||||
value?: InsightsEvent["value"];
|
||||
currency?: InsightsEvent["currency"];
|
||||
}
|
||||
|
||||
export function convertedObjectIDsAfterSearch(
|
||||
this: AlgoliaAnalytics,
|
||||
...params: Array<WithAdditionalParams<InsightsSearchConversionEvent>>
|
||||
): ReturnType<AlgoliaAnalytics["sendEvents"]> {
|
||||
const { events, additionalParams } =
|
||||
extractAdditionalParams<InsightsSearchConversionEvent>(params);
|
||||
|
||||
return this.sendEvents(addEventType("conversion", events), additionalParams);
|
||||
}
|
||||
|
||||
export function addedToCartObjectIDsAfterSearch(
|
||||
this: AlgoliaAnalytics,
|
||||
...params: Array<WithAdditionalParams<InsightsSearchConversionEvent>>
|
||||
): ReturnType<AlgoliaAnalytics["sendEvents"]> {
|
||||
const { events, additionalParams } =
|
||||
extractAdditionalParams<InsightsSearchConversionEvent>(params);
|
||||
|
||||
events.forEach(({ index, queryID, objectIDs, objectData }) =>
|
||||
objectIDs.forEach((objectID, i) => {
|
||||
const objQueryID = objectData?.[i]?.queryID ?? queryID;
|
||||
if (!this._userHasOptedOut && objQueryID)
|
||||
storeQueryForObject(index, objectID, objQueryID);
|
||||
})
|
||||
);
|
||||
|
||||
return this.sendEvents(
|
||||
addEventTypeAndSubtype("conversion", "addToCart", events),
|
||||
additionalParams
|
||||
);
|
||||
}
|
||||
|
||||
export type InsightsSearchPurchaseEvent = Omit<
|
||||
InsightsSearchConversionEvent,
|
||||
"queryID"
|
||||
> & {
|
||||
/** @deprecated Use objectData.queryID instead. */
|
||||
queryID?: string;
|
||||
};
|
||||
|
||||
export function purchasedObjectIDsAfterSearch(
|
||||
this: AlgoliaAnalytics,
|
||||
...params: Array<WithAdditionalParams<InsightsSearchPurchaseEvent>>
|
||||
): ReturnType<AlgoliaAnalytics["sendEvents"]> {
|
||||
const { events, additionalParams } =
|
||||
extractAdditionalParams<InsightsSearchPurchaseEvent>(params);
|
||||
|
||||
return this.sendEvents(
|
||||
addEventTypeAndSubtype("conversion", "purchase", events),
|
||||
additionalParams
|
||||
);
|
||||
}
|
||||
|
||||
export interface InsightsSearchConversionObjectIDsEvent {
|
||||
eventName: string;
|
||||
userToken?: string;
|
||||
authenticatedUserToken?: string;
|
||||
timestamp?: number;
|
||||
index: string;
|
||||
|
||||
objectIDs: string[];
|
||||
objectData?: InsightsEvent["objectData"];
|
||||
value?: InsightsEvent["value"];
|
||||
currency?: InsightsEvent["currency"];
|
||||
}
|
||||
|
||||
export function convertedObjectIDs(
|
||||
this: AlgoliaAnalytics,
|
||||
...params: Array<WithAdditionalParams<InsightsSearchConversionObjectIDsEvent>>
|
||||
): ReturnType<AlgoliaAnalytics["sendEvents"]> {
|
||||
const { events, additionalParams } =
|
||||
extractAdditionalParams<InsightsSearchConversionObjectIDsEvent>(params);
|
||||
|
||||
return this.sendEvents(addEventType("conversion", events), additionalParams);
|
||||
}
|
||||
|
||||
export function addedToCartObjectIDs(
|
||||
this: AlgoliaAnalytics,
|
||||
...params: Array<WithAdditionalParams<InsightsSearchConversionObjectIDsEvent>>
|
||||
): ReturnType<AlgoliaAnalytics["sendEvents"]> {
|
||||
const { events, additionalParams } =
|
||||
extractAdditionalParams<InsightsSearchConversionObjectIDsEvent>(params);
|
||||
|
||||
events.forEach(({ index, objectIDs, objectData }) =>
|
||||
objectIDs.forEach((objectID, i) => {
|
||||
const queryID = objectData?.[i]?.queryID;
|
||||
if (!this._userHasOptedOut && queryID)
|
||||
storeQueryForObject(index, objectID, queryID);
|
||||
})
|
||||
);
|
||||
|
||||
return this.sendEvents(
|
||||
addEventTypeAndSubtype("conversion", "addToCart", events),
|
||||
additionalParams
|
||||
);
|
||||
}
|
||||
|
||||
export function purchasedObjectIDs(
|
||||
this: AlgoliaAnalytics,
|
||||
...params: Array<WithAdditionalParams<InsightsSearchConversionObjectIDsEvent>>
|
||||
): ReturnType<AlgoliaAnalytics["sendEvents"]> {
|
||||
const { events, additionalParams } =
|
||||
extractAdditionalParams<InsightsSearchConversionObjectIDsEvent>(params);
|
||||
|
||||
return this.sendEvents(
|
||||
addEventTypeAndSubtype("conversion", "purchase", events),
|
||||
additionalParams
|
||||
);
|
||||
}
|
||||
|
||||
export interface InsightsSearchConversionFiltersEvent {
|
||||
eventName: string;
|
||||
userToken?: string;
|
||||
authenticatedUserToken?: string;
|
||||
timestamp?: number;
|
||||
index: string;
|
||||
|
||||
filters: string[];
|
||||
}
|
||||
|
||||
export function convertedFilters(
|
||||
this: AlgoliaAnalytics,
|
||||
...params: Array<WithAdditionalParams<InsightsSearchConversionFiltersEvent>>
|
||||
): ReturnType<AlgoliaAnalytics["sendEvents"]> {
|
||||
const { events, additionalParams } =
|
||||
extractAdditionalParams<InsightsSearchConversionFiltersEvent>(params);
|
||||
|
||||
return this.sendEvents(addEventType("conversion", events), additionalParams);
|
||||
}
|
Reference in New Issue
Block a user