UNPKG

9.06 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/utils.js"],"names":["typeToString","type","isInstance","proto","Constructor","prototype","UndefinedValue","NullValue","StringValue","BooleanValue","NumberValue","SymbolValue","ObjectValue","Value","isTypeCompatibleWith","FunctionValue","undefined","getTypeFromName","typeName","EmptyValue","ArrayValue","IntegralValue","describeValue","value","title","suffix","PrimitiveValue","toDisplayString","AbstractValue","constructor","name","kind","arg","args","t","split","map","u","join","getHash","intrinsicName","__originalName","jsonToDisplayString","instance","depth","result","toDisplayJson","JSON","stringify","replace","verboseToDisplayJson","obj","valueOfProp","prop","Array","isArray","length","valuesArray","x","string","reduce","acc","Object","Set","Map","size","toJSON","toString","key"],"mappings":";;;;;;;;;;;AAWA;;AAgBA;;;;AA3BA;;;;;;;;;AASA;AAoBO,SAASA,YAAT,CAAsBC,IAAtB,EAAyD;AAC9D,WAASC,UAAT,CAAoBC,KAApB,EAA2BC,WAA3B,EAAiD;AAC/C,WAAOD,iBAAiBC,WAAjB,IAAgCD,UAAUC,YAAYC,SAA7D;AACD;;AACD,MAAIF,QAAQF,KAAKI,SAAjB;;AACA,MAAIH,WAAWC,KAAX,EAAkBG,qBAAlB,CAAJ,EAAuC;AACrC,WAAO,WAAP;AACD,GAFD,MAEO,IAAIJ,WAAWC,KAAX,EAAkBI,gBAAlB,CAAJ,EAAkC;AACvC,WAAO,QAAP;AACD,GAFM,MAEA,IAAIL,WAAWC,KAAX,EAAkBK,kBAAlB,CAAJ,EAAoC;AACzC,WAAO,QAAP;AACD,GAFM,MAEA,IAAIN,WAAWC,KAAX,EAAkBM,mBAAlB,CAAJ,EAAqC;AAC1C,WAAO,SAAP;AACD,GAFM,MAEA,IAAIP,WAAWC,KAAX,EAAkBO,kBAAlB,CAAJ,EAAoC;AACzC,WAAO,QAAP;AACD,GAFM,MAEA,IAAIR,WAAWC,KAAX,EAAkBQ,kBAAlB,CAAJ,EAAoC;AACzC,WAAO,QAAP;AACD,GAFM,MAEA,IAAIT,WAAWC,KAAX,EAAkBS,kBAAlB,CAAJ,EAAoC;AACzC,QAAIC,aAAMC,oBAAN,CAA2Bb,IAA3B,EAAiCc,oBAAjC,CAAJ,EAAqD;AACnD,aAAO,UAAP;AACD;;AACD,WAAO,QAAP;AACD,GALM,MAKA;AACL,WAAOC,SAAP;AACD;AACF;;AAEM,SAASC,eAAT,CAAyBC,QAAzB,EAAgE;AACrE,UAAQA,QAAR;AACE,SAAK,OAAL;AACE,aAAOC,iBAAP;;AACF,SAAK,MAAL;AACE,aAAOb,qBAAP;;AACF,SAAK,MAAL;AACE,aAAOC,gBAAP;;AACF,SAAK,SAAL;AACE,aAAOE,mBAAP;;AACF,SAAK,QAAL;AACE,aAAOD,kBAAP;;AACF,SAAK,QAAL;AACE,aAAOG,kBAAP;;AACF,SAAK,QAAL;AACE,aAAOD,kBAAP;;AACF,SAAK,QAAL;AACE,aAAOE,kBAAP;;AACF,SAAK,OAAL;AACE,aAAOQ,iBAAP;;AACF,SAAK,UAAL;AACE,aAAOL,oBAAP;;AACF,SAAK,UAAL;AACE,aAAOM,oBAAP;;AACF;AACE,aAAOL,SAAP;AAxBJ;AA0BD;;AAEM,SAASM,aAAT,CAAuBC,KAAvB,EAA6C;AAClD,MAAIC,KAAJ;AACA,MAAIC,SAAS,EAAb;AACA,MAAIF,iBAAiBG,qBAArB,EAAqCF,QAAQD,MAAMI,eAAN,EAAR,CAArC,KACK,IAAIJ,iBAAiBX,kBAArB,EAAkCY,QAAQ,UAAR,CAAlC,KACA;AACH,4BAAUD,iBAAiBK,oBAA3B,EAA0CL,MAAMM,WAAN,CAAkBC,IAA5D;AACAN,YAAQ,YAAR;AACA,QAAID,MAAMQ,IAAN,KAAef,SAAnB,EAA8BQ,SAAU,WAAUD,MAAMQ,IAAK,EAA/B;;AAC9B,SAAK,IAAIC,GAAT,IAAgBT,MAAMU,IAAtB,EAA4B;AAC1B,UAAIC,IAAIZ,cAAcU,GAAd,CAAR;AACAP,gBACES,EACGC,KADH,CACS,IADT,EAEGC,GAFH,CAEOC,KAAK,OAAOA,CAFnB,EAGGC,IAHH,CAGQ,IAHR,IAGgB,IAJlB;AAKD;AACF;AACDd,WAAU,WAAUD,MAAMgB,OAAN,EAAgB,EAApC;AACA,MAAIhB,MAAMiB,aAAN,KAAwBxB,SAA5B,EAAuCQ,SAAU,qBAAoBD,MAAMiB,aAAc,EAAlD;AACvC,MAAIjB,MAAMkB,cAAN,KAAyBzB,SAA7B,EAAwCQ,SAAU,oBAAmBD,MAAMkB,cAAe,EAAlD;AACxC,SAAOhB,SAAU,GAAED,KAAM,KAAIC,MAAO,EAA7B,GAAiCD,KAAxC;AACD;;AAIM,SAASkB,mBAAT,CAA0EC,QAA1E,EAAuFC,KAAvF,EAA8G;AACnH,MAAIC,SAASF,SAASG,aAAT,CAAuBF,KAAvB,CAAb;AACA,SAAO,OAAOC,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCE,KAAKC,SAAL,CAAeH,MAAf,EAAuB,IAAvB,EAA6B,CAA7B,EAAgCI,OAAhC,CAAwC,KAAxC,EAA+C,EAA/C,CAA7C;AACD;;AAEM,SAASC,oBAAT,CAA8BC,GAA9B,EAAuCP,KAAvC,EAAqE;AAC1E,MAAIC,SAAS,EAAb;;AACA,WAASO,WAAT,CAAqBC,IAArB,EAA2B;AACzB,QAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC,OAAOrC,SAAP;;AAChC,QAAIsC,MAAMC,OAAN,CAAcF,IAAd,CAAJ,EAAyB;AACvB;AACA,UAAIA,KAAKG,MAAL,KAAgB,CAApB,EAAuB,OAAO,IAAP;AACvB,UAAIC,cAAcJ,KAAKjB,GAAL,CAASsB,KAAKN,YAAYM,CAAZ,CAAd,CAAlB;;AACA,UAAID,YAAYD,MAAZ,GAAqB,CAAzB,EAA4B;AAC1B,YAAIG,SACF,MAAMF,YAAYG,MAAZ,CAAmB,CAACC,GAAD,EAAMH,CAAN,KAAa,GAAEG,GAAI,KAAIH,aAAaI,MAAb,GAAsBf,KAAKC,SAAL,CAAeU,CAAf,CAAtB,GAA0CA,CAAE,EAAtF,CAAN,GAAiG,GADnG;AAEAC,iBAASA,OAAOV,OAAP,CAAe,KAAf,EAAsB,EAAtB,CAAT;AACA,YAAIU,OAAOH,MAAP,GAAgB,EAApB,EAAwB,OAAOG,MAAP;AACzB;;AACD,aAAOF,WAAP;AACD;;AACD,QAAIJ,gBAAgBU,GAAhB,IAAuBV,gBAAgBW,GAA3C,EAAgD,OAAQ,GAAEX,KAAKxB,WAAL,CAAiBC,IAAK,IAAGuB,KAAKY,IAAK,GAA7C;AAChD,QAAIZ,KAAKP,aAAT,EAAwB,OAAOO,KAAKP,aAAL,CAAmBF,QAAQ,CAA3B,CAAP;AACxB,QAAIS,KAAK1B,eAAT,EAA0B,OAAO0B,KAAK1B,eAAL,EAAP;AAC1B,QAAI0B,KAAKa,MAAT,EAAiB,OAAOb,KAAKa,MAAL,EAAP;AACjB,WAAOb,KAAKc,QAAL,EAAP;AACD;;AACD,OAAK,IAAIC,GAAT,IAAgBjB,GAAhB,EAAqB;AACnB,QAAIE,OAAOF,IAAIiB,GAAJ,CAAX;AACA,QAAI,CAACf,IAAL,EAAW;AACX,QAAI9B,QAAQ6B,YAAYC,IAAZ,CAAZ;AACA,QAAI9B,SAASA,UAAU,iBAAvB,EAA0CsB,OAAOuB,GAAP,IAAc7C,KAAd;AAC3C;;AACD,SAAOsB,MAAP;AACD","sourcesContent":["/**\n * Copyright (c) 2017-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n/* @flow strict-local */\n\nimport {\n AbstractValue,\n ArrayValue,\n BooleanValue,\n EmptyValue,\n FunctionValue,\n NullValue,\n NumberValue,\n IntegralValue,\n ObjectValue,\n StringValue,\n SymbolValue,\n UndefinedValue,\n PrimitiveValue,\n Value,\n} from \"./values/index.js\";\nimport invariant from \"./invariant.js\";\n\nexport function typeToString(type: typeof Value): void | string {\n function isInstance(proto, Constructor): boolean {\n return proto instanceof Constructor || proto === Constructor.prototype;\n }\n let proto = type.prototype;\n if (isInstance(proto, UndefinedValue)) {\n return \"undefined\";\n } else if (isInstance(proto, NullValue)) {\n return \"object\";\n } else if (isInstance(proto, StringValue)) {\n return \"string\";\n } else if (isInstance(proto, BooleanValue)) {\n return \"boolean\";\n } else if (isInstance(proto, NumberValue)) {\n return \"number\";\n } else if (isInstance(proto, SymbolValue)) {\n return \"symbol\";\n } else if (isInstance(proto, ObjectValue)) {\n if (Value.isTypeCompatibleWith(type, FunctionValue)) {\n return \"function\";\n }\n return \"object\";\n } else {\n return undefined;\n }\n}\n\nexport function getTypeFromName(typeName: string): void | typeof Value {\n switch (typeName) {\n case \"empty\":\n return EmptyValue;\n case \"void\":\n return UndefinedValue;\n case \"null\":\n return NullValue;\n case \"boolean\":\n return BooleanValue;\n case \"string\":\n return StringValue;\n case \"symbol\":\n return SymbolValue;\n case \"number\":\n return NumberValue;\n case \"object\":\n return ObjectValue;\n case \"array\":\n return ArrayValue;\n case \"function\":\n return FunctionValue;\n case \"integral\":\n return IntegralValue;\n default:\n return undefined;\n }\n}\n\nexport function describeValue(value: Value): string {\n let title;\n let suffix = \"\";\n if (value instanceof PrimitiveValue) title = value.toDisplayString();\n else if (value instanceof ObjectValue) title = \"[object]\";\n else {\n invariant(value instanceof AbstractValue, value.constructor.name);\n title = \"[abstract]\";\n if (value.kind !== undefined) title += `, kind: ${value.kind}`;\n for (let arg of value.args) {\n let t = describeValue(arg);\n suffix +=\n t\n .split(\"\\n\")\n .map(u => \" \" + u)\n .join(\"\\n\") + \"\\n\";\n }\n }\n title += `, hash: ${value.getHash()}`;\n if (value.intrinsicName !== undefined) title += `, intrinsic name: ${value.intrinsicName}`;\n if (value.__originalName !== undefined) title += `, original name: ${value.__originalName}`;\n return suffix ? `${title}\\n${suffix}` : title;\n}\n\ntype DisplayResult = {} | string;\n\nexport function jsonToDisplayString<T: { toDisplayJson(number): DisplayResult }>(instance: T, depth: number): string {\n let result = instance.toDisplayJson(depth);\n return typeof result === \"string\" ? result : JSON.stringify(result, null, 2).replace(/\\\"/g, \"\");\n}\n\nexport function verboseToDisplayJson(obj: {}, depth: number): DisplayResult {\n let result = {};\n function valueOfProp(prop) {\n if (typeof prop === \"function\") return undefined;\n if (Array.isArray(prop)) {\n // Try to return a 1-line string if possible\n if (prop.length === 0) return \"[]\";\n let valuesArray = prop.map(x => valueOfProp(x));\n if (valuesArray.length < 5) {\n let string =\n \"[\" + valuesArray.reduce((acc, x) => `${acc}, ${x instanceof Object ? JSON.stringify(x) : x}`) + \"]\";\n string = string.replace(/\\\"/g, \"\");\n if (string.length < 60) return string;\n }\n return valuesArray;\n }\n if (prop instanceof Set || prop instanceof Map) return `${prop.constructor.name}(${prop.size})`;\n if (prop.toDisplayJson) return prop.toDisplayJson(depth - 1);\n if (prop.toDisplayString) return prop.toDisplayString();\n if (prop.toJSON) return prop.toJSON();\n return prop.toString();\n }\n for (let key in obj) {\n let prop = obj[key];\n if (!prop) continue;\n let value = valueOfProp(prop);\n if (value && value !== \"[object Object]\") result[key] = value;\n }\n return result;\n}\n"],"file":"utils.js"}
\No newline at end of file