Skip to content

Commit

Permalink
fix(typeguards): make type guards accept unknowns
Browse files Browse the repository at this point in the history
  • Loading branch information
dtfiedler committed Apr 25, 2024
1 parent 9350f78 commit 7f285bb
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions src/utils/smartweave.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
import Arweave from 'arweave';
import { EvaluationManifest } from 'warp-contracts';

import { ContractConfiguration, SortKey } from '../common.js';
import { RemoteContract, WarpContract } from '../common/index.js';
import { SORT_KEY_REGEX } from '../constants.js';
import { SortKey } from '../types.js';
import { tagsToObject, validateArweaveId } from './arweave.js';

export function isSortKey(sortKey: string): sortKey is SortKey {
Expand Down Expand Up @@ -73,18 +73,20 @@ export async function getContractManifest({
return contractManifest;
}

export function isContractConfiguration<T>(
config: ContractConfiguration,
): config is {
export function isContractConfiguration<T>(config: unknown): config is {
contract: WarpContract<T> | RemoteContract<T>;
} {
return 'contract' in config;
return typeof config === 'object' && config !== null && 'contract' in config;
}

export function isContractTxIdConfiguration(
config: ContractConfiguration,
config: unknown,
): config is { contractTxId: string } {
return (
'contractTxId' in config && validateArweaveId(config.contractTxId) === true
typeof config === 'object' &&
config !== null &&
'contractTxId' in config &&
typeof config.contractTxId === 'string' &&
validateArweaveId(config.contractTxId) === true
);
}

0 comments on commit 7f285bb

Please sign in to comment.