-
Notifications
You must be signed in to change notification settings - Fork 30
Drop class-is dependecyΒ #110
Description
Suggestion to drop class-is dependency an implementing isCID locally came from the discussion in moxystudio/js-class-is#25
Submitting issue here for further discussions.
Keep the api just without class-is, implement isCID with instanceof with fallback to validating the components
@hugomrdias what do you mean by validating components ?
At the moment as far as I understand isCID just boils down to:
obj && obj[Symbol.for('@ipld/js-cid/CID')]Are you suggesting new CID.isCID should be something along these lines:
class CID {
static typeSymbol: Symbol.for('@ipld/js-cid/CID')
static isCID(value) {
return value instanceof CID || (value && value[CID.typeSymbol])
}
}Or do you meant something like:
class CID {
static isCID(value) {
return value instanceof CID || CIDUtil.checkCIDComponents(other) == null
}
}If later that would be pretty wonderful, and step towards #109. On the other hand it may break some assumptions about the availability of certain instance methods.
I think it would be better to avoid such a dramatic change of isCID and just let it be a glorified instanceof check. Instead I would propose to introduce asCID static method as described in #111 (originally I wrote it up here, but decided it would be better to move into separate thread)