This commit is contained in:
Daniel Holmgren 2022-02-21 16:07:08 -06:00
parent 03491718a2
commit d598d768b9
4 changed files with 20 additions and 17 deletions

@ -14,7 +14,6 @@
"prettier"
],
"rules": {
"no-var": "error",
"@typescript-eslint/no-explicit-any": "off"
"no-var": "error"
}
}

@ -44,9 +44,9 @@ export class IpldStore {
try {
const verified = checkFn(block.value)
return verified
} catch (err: any) {
} catch (err) {
throw new Error(
`Did not find expected object at ${cid.toString()}: ${err.toString()}`,
`Did not find expected object at ${cid.toString()}: ${err}`,
)
}
}

@ -2,7 +2,7 @@ import { CID } from 'multiformats/cid'
import { BlockstoreI } from '../types.js'
export class MemoryBlockstore implements BlockstoreI {
map: Map<string, any>
map: Map<string, Uint8Array>
constructor() {
this.map = new Map()

@ -2,22 +2,22 @@ import { CID } from 'multiformats/cid'
import { Commit, IdMapping, User } from './types.js'
export const assure = <T>(
obj: any,
obj: unknown,
name: string,
check: (obj: any) => obj is T,
check: (obj: unknown) => obj is T,
): T => {
if (check(obj)) return obj
throw new Error(`Not a ${name}`)
}
export const isCID = (obj: any): obj is CID => {
export const isCID = (obj: unknown): obj is CID => {
return !!CID.asCID(obj)
}
// @TODO: maybe split these out as static methods on their classes?
export const isUser = (obj: any): obj is User => {
export const isUser = (obj: unknown): obj is User => {
return (
obj &&
isObject(obj) &&
typeof obj.name === 'string' &&
typeof obj.did === 'string' &&
typeof obj.nextPost === 'number' &&
@ -26,22 +26,26 @@ export const isUser = (obj: any): obj is User => {
)
}
export const assureUser = (obj: any): User => {
export const assureUser = (obj: unknown): User => {
return assure(obj, 'User', isUser)
}
export const isCommit = (obj: any): obj is Commit => {
return obj && isCID(obj.user) && ArrayBuffer.isView(obj.sig)
export const isObject = (obj: unknown): obj is Record<string, unknown> => {
return typeof obj === 'object' && obj !== null
}
export const assureCommit = (obj: any): Commit => {
export const isCommit = (obj: unknown): obj is Commit => {
return isObject(obj) && isCID(obj.user) && ArrayBuffer.isView(obj.sig)
}
export const assureCommit = (obj: unknown): Commit => {
return assure(obj, 'Commit', isCommit)
}
export const isIdMapping = (obj: any): obj is IdMapping => {
return obj && Object.values(obj).every(isCID)
export const isIdMapping = (obj: unknown): obj is IdMapping => {
return isObject(obj) && Object.values(obj).every(isCID)
}
export const assureIdMapping = (obj: any): IdMapping => {
export const assureIdMapping = (obj: unknown): IdMapping => {
return assure(obj, 'IdMapping', isIdMapping)
}