|
1 | 1 | import { toNumberOrNull, toStringOrNull } from '@sim/utils/coerce' |
2 | | -import { isRecordLike, toArray, toRecord } from '@sim/utils/object' |
| 2 | +import { isRecordLike, toArray, toRecord, toRecordOrNull } from '@sim/utils/object' |
3 | 3 | import type { |
4 | 4 | MonacoAccount, |
5 | 5 | MonacoAccountCandidate, |
@@ -199,7 +199,7 @@ export function toMonacoStringArray(value: unknown): string[] { |
199 | 199 | /** Maps Monaco's documented `ContactResponse` fields. */ |
200 | 200 | export function mapMonacoContact(value: unknown): MonacoContact { |
201 | 201 | const contact = toRecord(value) |
202 | | - const scoring = isRecordLike(contact.scoring) ? contact.scoring : null |
| 202 | + const scoring = toRecordOrNull(contact.scoring) |
203 | 203 | return { |
204 | 204 | id: toStringOrNull(contact.id) ?? '', |
205 | 205 | account_id: toStringOrNull(contact.account_id), |
@@ -574,9 +574,9 @@ function mapMonacoAccountCompany(value: unknown): MonacoAccountCompany | null { |
574 | 574 | /** Maps Monaco's documented `AccountResponse` fields. */ |
575 | 575 | export function mapMonacoAccount(value: unknown): MonacoAccount { |
576 | 576 | const account = toRecord(value) |
577 | | - const owner = isRecordLike(account.owner) ? account.owner : null |
578 | | - const parent = isRecordLike(account.parent_account) ? account.parent_account : null |
579 | | - const scoring = isRecordLike(account.scoring) ? account.scoring : null |
| 577 | + const owner = toRecordOrNull(account.owner) |
| 578 | + const parent = toRecordOrNull(account.parent_account) |
| 579 | + const scoring = toRecordOrNull(account.scoring) |
580 | 580 | return { |
581 | 581 | id: toStringOrNull(account.id) ?? '', |
582 | 582 | name: toStringOrNull(account.name), |
@@ -793,7 +793,7 @@ function mapMonacoMessageDraft(value: unknown): MonacoMessageDraft | null { |
793 | 793 | /** Maps Monaco's documented `TaskResponse` fields. */ |
794 | 794 | export function mapMonacoTask(value: unknown): MonacoTask { |
795 | 795 | const task = toRecord(value) |
796 | | - const assignee = isRecordLike(task.assignee) ? task.assignee : null |
| 796 | + const assignee = toRecordOrNull(task.assignee) |
797 | 797 | return { |
798 | 798 | id: toStringOrNull(task.id) ?? '', |
799 | 799 | account_id: toStringOrNull(task.account_id), |
@@ -830,7 +830,7 @@ function mapMonacoAccountCandidates(value: unknown): MonacoAccountCandidate[] { |
830 | 830 | /** Maps Monaco's documented `MeetingResponse` fields. */ |
831 | 831 | export function mapMonacoMeeting(value: unknown): MonacoMeeting { |
832 | 832 | const meeting = toRecord(value) |
833 | | - const organizer = isRecordLike(meeting.organizer) ? meeting.organizer : null |
| 833 | + const organizer = toRecordOrNull(meeting.organizer) |
834 | 834 | return { |
835 | 835 | id: toStringOrNull(meeting.id) ?? '', |
836 | 836 | account_id: toStringOrNull(meeting.account_id), |
@@ -1004,10 +1004,8 @@ export function mapMonacoCurrentUser(value: unknown): MonacoCurrentUser { |
1004 | 1004 | /** Maps Monaco's documented `FieldSchemaResponse` fields. */ |
1005 | 1005 | export function mapMonacoFieldSchema(value: unknown): MonacoFieldSchema { |
1006 | 1006 | const field = toRecord(value) |
1007 | | - const customSettings = isRecordLike(field.custom_field_settings) |
1008 | | - ? field.custom_field_settings |
1009 | | - : null |
1010 | | - const enumSettings = isRecordLike(field.enum_field_settings) ? field.enum_field_settings : null |
| 1007 | + const customSettings = toRecordOrNull(field.custom_field_settings) |
| 1008 | + const enumSettings = toRecordOrNull(field.enum_field_settings) |
1011 | 1009 | return { |
1012 | 1010 | name: toStringOrNull(field.name) ?? '', |
1013 | 1011 | key: toStringOrNull(field.key) ?? '', |
@@ -1052,7 +1050,7 @@ export function parseMonacoOptionalIdList(value: unknown, name: string): string[ |
1052 | 1050 | /** Maps Monaco's documented `SequenceResponse` fields. */ |
1053 | 1051 | export function mapMonacoSequence(value: unknown): MonacoSequence { |
1054 | 1052 | const sequence = toRecord(value) |
1055 | | - const exclusion = isRecordLike(sequence.exclusion_info) ? sequence.exclusion_info : null |
| 1053 | + const exclusion = toRecordOrNull(sequence.exclusion_info) |
1056 | 1054 | return { |
1057 | 1055 | id: toStringOrNull(sequence.id) ?? '', |
1058 | 1056 | contact_id: toStringOrNull(sequence.contact_id) ?? '', |
@@ -1193,9 +1191,7 @@ function mapMonacoStopAndDismissRule(value: unknown): MonacoStopAndDismissRule | |
1193 | 1191 |
|
1194 | 1192 | function mapMonacoRulesOfEngagement(value: unknown): MonacoRulesOfEngagement | null { |
1195 | 1193 | if (!isRecordLike(value)) return null |
1196 | | - const maxContacts = isRecordLike(value.max_contacts_in_sequence) |
1197 | | - ? value.max_contacts_in_sequence |
1198 | | - : null |
| 1194 | + const maxContacts = toRecordOrNull(value.max_contacts_in_sequence) |
1199 | 1195 | return { |
1200 | 1196 | do_not_contact: mapMonacoToggleRule(value.do_not_contact), |
1201 | 1197 | allow_sequence_stop_on_meeting_booked: mapMonacoToggleRule( |
@@ -1224,7 +1220,7 @@ export function mapMonacoCampaignDetail(value: unknown): MonacoCampaignDetail { |
1224 | 1220 | const campaign = toRecord(value) |
1225 | 1221 | const autopilot = toRecord(campaign.autopilot_settings) |
1226 | 1222 | const readiness = toRecord(campaign.contact_readiness_settings) |
1227 | | - const email = isRecordLike(readiness.email) ? readiness.email : null |
| 1223 | + const email = toRecordOrNull(readiness.email) |
1228 | 1224 | return { |
1229 | 1225 | ...mapMonacoCampaign(campaign), |
1230 | 1226 | distribution: mapMonacoCampaignDistribution(campaign.distribution), |
|
0 commit comments