UNPKG

@ceramicnetwork/codecs

Version:

Ceramic Codecs

51 lines 1.34 kB
import { CID } from 'multiformats/cid'; import { Type } from 'codeco'; import { CAR, CARFactory } from 'cartonne'; import * as DAG_JOSE from 'dag-jose'; export const cid = new Type('CID', (input) => { try { return !!CID.asCID(input); } catch (e) { return false; } }, (input, context) => { try { const cid = CID.asCID(input); if (!cid) return context.failure(`Value ${cid} can not be accepted as CID`); return context.success(cid); } catch { return context.failure(); } }, (cid) => cid); export const cidAsString = new Type('CID-as-string', (input) => { try { return !!CID.asCID(input); } catch (e) { return false; } }, (input, context) => { try { const cid = CID.parse(input); return context.success(cid); } catch { return context.failure(); } }, (cid) => cid.toString()); const carFactory = new CARFactory(); carFactory.codecs.add(DAG_JOSE); export const carAsUint8Array = new Type('CAR-as-uint8array', (input) => { return input != null && input instanceof CAR; }, (input, context) => { try { return context.success(carFactory.fromBytes(input)); } catch { return context.failure(); } }, (car) => car.bytes); //# sourceMappingURL=ipld.js.map