Skip to content

Commit 7fc433d

Browse files
committed
fix(monaco): use toRecordOrNull and type the block mapper test helpers
1 parent 244a1f2 commit 7fc433d

2 files changed

Lines changed: 14 additions & 18 deletions

File tree

‎apps/sim/blocks/blocks/monaco.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ function requestBody(tool: ToolConfig, params: Record<string, unknown>) {
1818
return body(params)
1919
}
2020

21-
function workflowParams(inputs: Record<string, unknown>) {
21+
function workflowParams(inputs: Record<string, unknown>): Record<string, unknown> {
2222
const mapped = MonacoBlock.tools.config?.params?.(inputs) ?? {}
2323
return { ...inputs, ...mapped, accessToken: CREDENTIAL.accessToken }
2424
}
2525

26-
function agentParams(operation: string, args: Record<string, unknown>) {
26+
function agentParams(operation: string, args: Record<string, unknown>): Record<string, unknown> {
2727
const inputs = { ...CREDENTIAL, ...args }
2828
const mapped = MonacoBlock.tools.config?.params?.(inputs, { operation }) ?? {}
2929
return { ...inputs, ...mapped, accessToken: CREDENTIAL.accessToken }

‎apps/sim/tools/monaco/utils.ts‎

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
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'
33
import type {
44
MonacoAccount,
55
MonacoAccountCandidate,
@@ -199,7 +199,7 @@ export function toMonacoStringArray(value: unknown): string[] {
199199
/** Maps Monaco's documented `ContactResponse` fields. */
200200
export function mapMonacoContact(value: unknown): MonacoContact {
201201
const contact = toRecord(value)
202-
const scoring = isRecordLike(contact.scoring) ? contact.scoring : null
202+
const scoring = toRecordOrNull(contact.scoring)
203203
return {
204204
id: toStringOrNull(contact.id) ?? '',
205205
account_id: toStringOrNull(contact.account_id),
@@ -574,9 +574,9 @@ function mapMonacoAccountCompany(value: unknown): MonacoAccountCompany | null {
574574
/** Maps Monaco's documented `AccountResponse` fields. */
575575
export function mapMonacoAccount(value: unknown): MonacoAccount {
576576
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)
580580
return {
581581
id: toStringOrNull(account.id) ?? '',
582582
name: toStringOrNull(account.name),
@@ -793,7 +793,7 @@ function mapMonacoMessageDraft(value: unknown): MonacoMessageDraft | null {
793793
/** Maps Monaco's documented `TaskResponse` fields. */
794794
export function mapMonacoTask(value: unknown): MonacoTask {
795795
const task = toRecord(value)
796-
const assignee = isRecordLike(task.assignee) ? task.assignee : null
796+
const assignee = toRecordOrNull(task.assignee)
797797
return {
798798
id: toStringOrNull(task.id) ?? '',
799799
account_id: toStringOrNull(task.account_id),
@@ -830,7 +830,7 @@ function mapMonacoAccountCandidates(value: unknown): MonacoAccountCandidate[] {
830830
/** Maps Monaco's documented `MeetingResponse` fields. */
831831
export function mapMonacoMeeting(value: unknown): MonacoMeeting {
832832
const meeting = toRecord(value)
833-
const organizer = isRecordLike(meeting.organizer) ? meeting.organizer : null
833+
const organizer = toRecordOrNull(meeting.organizer)
834834
return {
835835
id: toStringOrNull(meeting.id) ?? '',
836836
account_id: toStringOrNull(meeting.account_id),
@@ -1004,10 +1004,8 @@ export function mapMonacoCurrentUser(value: unknown): MonacoCurrentUser {
10041004
/** Maps Monaco's documented `FieldSchemaResponse` fields. */
10051005
export function mapMonacoFieldSchema(value: unknown): MonacoFieldSchema {
10061006
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)
10111009
return {
10121010
name: toStringOrNull(field.name) ?? '',
10131011
key: toStringOrNull(field.key) ?? '',
@@ -1052,7 +1050,7 @@ export function parseMonacoOptionalIdList(value: unknown, name: string): string[
10521050
/** Maps Monaco's documented `SequenceResponse` fields. */
10531051
export function mapMonacoSequence(value: unknown): MonacoSequence {
10541052
const sequence = toRecord(value)
1055-
const exclusion = isRecordLike(sequence.exclusion_info) ? sequence.exclusion_info : null
1053+
const exclusion = toRecordOrNull(sequence.exclusion_info)
10561054
return {
10571055
id: toStringOrNull(sequence.id) ?? '',
10581056
contact_id: toStringOrNull(sequence.contact_id) ?? '',
@@ -1193,9 +1191,7 @@ function mapMonacoStopAndDismissRule(value: unknown): MonacoStopAndDismissRule |
11931191

11941192
function mapMonacoRulesOfEngagement(value: unknown): MonacoRulesOfEngagement | null {
11951193
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)
11991195
return {
12001196
do_not_contact: mapMonacoToggleRule(value.do_not_contact),
12011197
allow_sequence_stop_on_meeting_booked: mapMonacoToggleRule(
@@ -1224,7 +1220,7 @@ export function mapMonacoCampaignDetail(value: unknown): MonacoCampaignDetail {
12241220
const campaign = toRecord(value)
12251221
const autopilot = toRecord(campaign.autopilot_settings)
12261222
const readiness = toRecord(campaign.contact_readiness_settings)
1227-
const email = isRecordLike(readiness.email) ? readiness.email : null
1223+
const email = toRecordOrNull(readiness.email)
12281224
return {
12291225
...mapMonacoCampaign(campaign),
12301226
distribution: mapMonacoCampaignDistribution(campaign.distribution),

0 commit comments

Comments
 (0)