UNPKG

2.15 kBJavaScriptView Raw
1/** @internal */
2/** @internal */
3import { isString, isObject, isNum, isBool } from "../../common/index.js";
4export const isFile = (obj) => {
5 return isObject(obj) && obj.content !== undefined;
6};
7export const isTree = (obj) => {
8 return isObject(obj) && obj.ls !== undefined;
9};
10export const isBaseLink = (obj) => {
11 return isObject(obj)
12 && isString(obj.name)
13 && isNum(obj.size)
14 && isBool(obj.isFile);
15};
16export const isLink = (obj) => {
17 return isBaseLink(obj)
18 && isCID(obj.cid);
19};
20export const isLinks = (obj) => {
21 return isObject(obj)
22 && Object.values(obj).every(isLink);
23};
24export const isUnixMeta = (obj) => {
25 return isObject(obj)
26 && isNum(obj.mtime)
27 && isNum(obj.ctime)
28 && isNum(obj.mode)
29 && isString(obj._type);
30};
31export const isMetadata = (obj) => {
32 return isObject(obj)
33 && isUnixMeta(obj.unixMeta)
34 && isBool(obj.isFile)
35 && isSemVer(obj.version);
36};
37export const isSkeleton = (obj) => {
38 return isObject(obj)
39 && Object.values(obj).every(val => (isObject(val)
40 && isCID(val.cid)
41 && isCID(val.userland)
42 && isCID(val.metadata)
43 && isSkeleton(val.subSkeleton)));
44};
45export const isTreeHeader = (obj) => {
46 return isObject(obj)
47 && isSkeleton(obj.skeleton)
48 && isMetadata(obj.metadata)
49 && obj.metadata.isFile === false;
50};
51export const isTreeInfo = (obj) => {
52 return isTreeHeader(obj)
53 && isCID(obj.userland);
54};
55export const isFileHeader = (obj) => {
56 return isObject(obj)
57 && isMetadata(obj.metadata)
58 && obj.metadata.isFile === true;
59};
60export const isFileInfo = (obj) => {
61 return isFileHeader(obj)
62 && isCID(obj.userland);
63};
64export const isCID = (obj) => {
65 return isString(obj);
66};
67export const isCIDList = (obj) => {
68 return Array.isArray(obj)
69 && obj.every(isCID);
70};
71export const isSemVer = (obj) => {
72 if (!isObject(obj))
73 return false;
74 const { major, minor, patch } = obj;
75 return isNum(major) && isNum(minor) && isNum(patch);
76};
77//# sourceMappingURL=check.js.map
\No newline at end of file