Skip to content

Commit d408003

Browse files
committed
tighten identity type annotations per PR review
1 parent 85a0f3c commit d408003

5 files changed

Lines changed: 47 additions & 39 deletions

File tree

src/forwarders.interfaces.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ export interface ConfiguredKit
8585
removeUserAttribute(key: string): string;
8686
setUserAttribute(key: string, value: string): string;
8787
setUserIdentity(id: UserIdentityId, type: UserIdentityType): void;
88+
// Legacy method present on some kit implementations; invoked on logout.
89+
logOut?: (evt: SDKEvent) => void;
8890

8991
// TODO: https://go.mparticle.com/work/SQDSDKS-5156
9092
isSandbox: boolean;

src/identity-utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export type IParseCachedIdentityResponse = (
3434
callback: IdentityCallback,
3535
identityApiData: IdentityApiData,
3636
identityMethod: string,
37-
knownIdentities: IKnownIdentities | UserIdentities,
37+
knownIdentities: IKnownIdentities,
3838
fromCachedIdentity: boolean
3939
) => void;
4040

src/identity.interfaces.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ export interface IIdentity {
227227
user: IMParticleUser
228228
): IUserAttributeChangeEvent;
229229
createUserIdentityChange(
230-
identityType: SDKIdentityTypeEnum | string,
230+
identityType: SDKIdentityTypeEnum,
231231
newIdentity: string,
232232
oldIdentity: string,
233233
newCreatedThisBatch: boolean,
@@ -239,7 +239,7 @@ export interface IIdentity {
239239
callback: IdentityCallback,
240240
identityApiData: IdentityApiData,
241241
method: IdentityAPIMethod,
242-
knownIdentities: IKnownIdentities | UserIdentities,
242+
knownIdentities: IKnownIdentities,
243243
parsingCachedResponse: boolean
244244
): void;
245245
sendUserAttributeChangeEvent(

src/identity.ts

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Constants, { HTTP_OK } from './constants';
22
import Types, { IdentityType } from './types';
3+
import AudienceManager, { IAudienceMemberships } from './audienceManager';
34
import {
45
cacheOrClearIdCache,
56
createKnownIdentities,
@@ -9,40 +10,45 @@ import {
910
normalizeUserIdentityKeys,
1011
tryCacheIdentity,
1112
} from './identity-utils';
12-
import AudienceManager, { IAudienceMemberships } from './audienceManager';
13-
const { Messages, HTTPCodes, FeatureFlags, IdentityMethods } = Constants;
14-
const { ErrorMessages } = Messages;
15-
const { CacheIdentity } = FeatureFlags;
16-
const { Identify, Modify, Login, Logout } = IdentityMethods;
17-
import {
18-
Environment,
19-
generateDeprecationMessage,
20-
isEmpty,
21-
isFunction,
22-
isObject,
23-
} from './utils';
24-
import { hasMPIDAndUserLoginChanged, hasMPIDChanged } from './user-utils';
25-
import { processReadyQueue } from './pre-init-utils';
2613
import {
2714
IdentityCallback,
2815
IIdentityResponse,
2916
IMParticleUser,
3017
mParticleUserCart,
3118
} from './identity-user-interfaces';
3219
import {
20+
AliasRequestScope,
21+
IAliasCallback,
22+
IAliasRequest,
23+
IdentityAPIMethod,
3324
IIdentity,
3425
IIdentityAPIRequestData,
35-
IdentityAPIMethod,
36-
IAliasRequest,
37-
IAliasCallback,
38-
AliasRequestScope,
3926
SDKIdentityTypeEnum,
4027
} from './identity.interfaces';
28+
import { IdentitySearchCallback } from './identity/search';
4129
import { IMParticleWebSDKInstance } from './mp-instance';
42-
import { IdentityApiData, UserIdentities, MPID, ConsentState, UserAttributesValue } from '@mparticle/web-sdk';
43-
import { Context } from '@mparticle/event-models';
30+
import { processReadyQueue } from './pre-init-utils';
4431
import { BaseEvent, SDKEvent, SDKLoggerApi } from './sdkRuntimeModels';
45-
import { IdentitySearchCallback } from './identity/search';
32+
import { hasMPIDAndUserLoginChanged, hasMPIDChanged } from './user-utils';
33+
import {
34+
generateDeprecationMessage,
35+
isEmpty,
36+
isFunction,
37+
isObject,
38+
} from './utils';
39+
import {
40+
ConsentState,
41+
IdentityApiData,
42+
MPID,
43+
UserAttributesValue,
44+
UserIdentities,
45+
} from '@mparticle/web-sdk';
46+
import { Context } from '@mparticle/event-models';
47+
48+
const { Messages, HTTPCodes, FeatureFlags, IdentityMethods } = Constants;
49+
const { ErrorMessages } = Messages;
50+
const { CacheIdentity } = FeatureFlags;
51+
const { Identify, Modify, Login, Logout } = IdentityMethods;
4652

4753
export default function Identity(
4854
this: IIdentity,
@@ -423,9 +429,8 @@ export default function Identity(
423429
mpInstance._Store.activeForwarders.forEach(function(
424430
forwarder
425431
) {
426-
const fwd = forwarder as unknown as Record<string, Function>;
427-
if (typeof fwd.logOut === 'function') {
428-
fwd.logOut(evt);
432+
if (typeof forwarder.logOut === 'function') {
433+
forwarder.logOut(evt);
429434
}
430435
});
431436
}
@@ -1435,7 +1440,7 @@ export default function Identity(
14351440
callback: IdentityCallback,
14361441
identityApiData: IdentityApiData,
14371442
method: IdentityAPIMethod,
1438-
knownIdentities: IKnownIdentities | UserIdentities,
1443+
knownIdentities: IKnownIdentities,
14391444
parsingCachedResponse: boolean
14401445
): void {
14411446
const prevUser = mpInstance.Identity.getUser(previousMPID);
@@ -1687,17 +1692,19 @@ export default function Identity(
16871692
for (const identityType in newUserIdentities) {
16881693
// Verifies a change actually happened
16891694
if (
1690-
prevUserIdentities[identityType] !==
1691-
newUserIdentities[identityType]
1695+
prevUserIdentities[identityType as keyof UserIdentities] !==
1696+
newUserIdentities[identityType as keyof UserIdentities]
16921697
) {
16931698
// If a new identity type was introduced when the identity changes
16941699
// we need to notify the server so that the user profile is updated in
16951700
// the mParticle UI.
1696-
const isNewUserIdentityType = !prevUserIdentities[identityType];
1701+
const isNewUserIdentityType = !prevUserIdentities[
1702+
identityType as keyof UserIdentities
1703+
];
16971704
const userIdentityChangeEvent = self.createUserIdentityChange(
1698-
identityType,
1699-
newUserIdentities[identityType],
1700-
prevUserIdentities[identityType],
1705+
identityType as SDKIdentityTypeEnum,
1706+
newUserIdentities[identityType as keyof UserIdentities],
1707+
prevUserIdentities[identityType as keyof UserIdentities],
17011708
isNewUserIdentityType,
17021709
currentUserInMemory
17031710
);
@@ -1709,7 +1716,7 @@ export default function Identity(
17091716
};
17101717

17111718
this.createUserIdentityChange = function(
1712-
identityType: string,
1719+
identityType: SDKIdentityTypeEnum,
17131720
newIdentity: string,
17141721
oldIdentity: string,
17151722
isIdentityTypeNewToBatch: boolean,

src/identityApiClient.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
XHRUploader,
66
IFetchPayload,
77
} from './uploaders';
8-
import { CACHE_HEADER } from './identity-utils';
8+
import { CACHE_HEADER, IKnownIdentities } from './identity-utils';
99
import { obfuscateData, parseNumber, valueof } from './utils';
1010
import {
1111
IAliasCallback,
@@ -18,7 +18,6 @@ import {
1818
import {
1919
IdentityApiData,
2020
MPID,
21-
UserIdentities,
2221
} from '@mparticle/web-sdk';
2322
import {
2423
IdentityCallback,
@@ -44,7 +43,7 @@ export interface IIdentityApiClient {
4443
originalIdentityApiData: IdentityApiData,
4544
parseIdentityResponse: IIdentity['parseIdentityResponse'],
4645
mpid: MPID,
47-
knownIdentities?: UserIdentities
46+
knownIdentities?: IKnownIdentities
4847
) => Promise<void>;
4948
getUploadUrl: (method: IdentityAPIMethod, mpid: MPID) => string;
5049
getIdentityResponseFromFetch: (
@@ -193,7 +192,7 @@ export default function IdentityAPIClient(
193192
originalIdentityApiData: IdentityApiData,
194193
parseIdentityResponse: IIdentity['parseIdentityResponse'],
195194
mpid: MPID,
196-
knownIdentities?: UserIdentities
195+
knownIdentities?: IKnownIdentities
197196
) {
198197
if (mpInstance._RoktManager?.isInitialized) {
199198
mpInstance._Store.identifyRequestCount = (mpInstance._Store.identifyRequestCount || 0) + 1;

0 commit comments

Comments
 (0)