better-ajv-errors
Version:
JSON Schema validation for Human
8 lines (7 loc) • 2.01 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/json/get-decorated-data-path.js"],
"sourcesContent": ["import { getPointers } from './utils';\n\nexport default function getDecoratedDataPath(jsonAst, dataPath) {\n let decoratedPath = '';\n getPointers(dataPath).reduce((obj, pointer) => {\n switch (obj.type) {\n case 'Object': {\n decoratedPath += `/${pointer}`;\n const filtered = obj.members.filter(\n child => child.name.value === pointer\n );\n if (filtered.length !== 1) {\n throw new Error(`Couldn't find property ${pointer} of ${dataPath}`);\n }\n return filtered[0].value;\n }\n case 'Array': {\n decoratedPath += `/${pointer}${getTypeName(obj.elements[pointer])}`;\n return obj.elements[pointer];\n }\n default:\n // eslint-disable-next-line no-console\n console.log(obj);\n }\n }, jsonAst.body);\n return decoratedPath;\n}\n\nfunction getTypeName(obj) {\n if (!obj || !obj.elements) {\n return '';\n }\n const type = obj.elements.filter(\n child => child && child.name && child.name.value === 'type'\n );\n\n if (!type.length) {\n return '';\n }\n\n return (type[0].value && `:${type[0].value.value}`) || '';\n}\n"],
"mappings": ";AAAA;AAEe,8BAA8B,SAAS,UAAU;AAC9D,MAAI,gBAAgB;AACpB,cAAY,QAAQ,EAAE,OAAO,CAAC,KAAK,YAAY;AAC7C,YAAQ,IAAI;AAAA,WACL,UAAU;AACb,yBAAiB,IAAI;AACrB,cAAM,WAAW,IAAI,QAAQ,OAC3B,WAAS,MAAM,KAAK,UAAU,OAChC;AACA,YAAI,SAAS,WAAW,GAAG;AACzB,gBAAM,IAAI,MAAM,0BAA0B,cAAc,UAAU;AAAA,QACpE;AACA,eAAO,SAAS,GAAG;AAAA,MACrB;AAAA,WACK,SAAS;AACZ,yBAAiB,IAAI,UAAU,YAAY,IAAI,SAAS,QAAQ;AAChE,eAAO,IAAI,SAAS;AAAA,MACtB;AAAA;AAGE,gBAAQ,IAAI,GAAG;AAAA;AAAA,EAErB,GAAG,QAAQ,IAAI;AACf,SAAO;AACT;AAEA,qBAAqB,KAAK;AACxB,MAAI,CAAC,OAAO,CAAC,IAAI,UAAU;AACzB,WAAO;AAAA,EACT;AACA,QAAM,OAAO,IAAI,SAAS,OACxB,WAAS,SAAS,MAAM,QAAQ,MAAM,KAAK,UAAU,MACvD;AAEA,MAAI,CAAC,KAAK,QAAQ;AAChB,WAAO;AAAA,EACT;AAEA,SAAQ,KAAK,GAAG,SAAS,IAAI,KAAK,GAAG,MAAM,WAAY;AACzD;",
"names": []
}