UNPKG

@metamask/ocap-kernel

Version:
1 lines 2.3 kB
{"version":3,"file":"reachable.cjs","sourceRoot":"","sources":["../../../src/store/utils/reachable.ts"],"names":[],"mappings":";;AAQA,4DAiBC;AAUD,4DAKC;AAxCD,sDAAqD;AAErD;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,KAAa;IAIpD,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,gBAAI,EAAA,qBAAqB,KAAK,EAAE,CAAC;IAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,kBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,WAAW,CAAC;IAChB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;SAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACxB,WAAW,GAAG,KAAK,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,IAAA,gBAAI,EAAA,SAAS,IAAI,sBAAsB,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC;AACD,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEjC;;;;;;GAMG;AACH,SAAgB,wBAAwB,CACtC,WAAoB,EACpB,OAAe;IAEf,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;AACjD,CAAC;AACD,MAAM,CAAC,wBAAwB,CAAC,CAAC","sourcesContent":["import { assert, Fail } from '../../utils/assert.ts';\n\n/**\n * Parse a string into an object with `isReachable` and `vatSlot` properties.\n *\n * @param value - The string to parse.\n * @returns An object with `isReachable` and `vatSlot` properties.\n */\nexport function parseReachableAndVatSlot(value: string): {\n isReachable: boolean;\n vatSlot: string;\n} {\n typeof value === 'string' || Fail`non-string value: ${value}`;\n const flag = value.slice(0, 1);\n assert.equal(value.slice(1, 2), ' ');\n const vatSlot = value.slice(2);\n let isReachable;\n if (flag === 'R') {\n isReachable = true;\n } else if (flag === '_') {\n isReachable = false;\n } else {\n throw Fail`flag (${flag}) must be 'R' or '_'`;\n }\n return { isReachable, vatSlot };\n}\nharden(parseReachableAndVatSlot);\n\n/**\n * Build a string from an object with `isReachable` and `vatSlot` properties.\n *\n * @param isReachable - The `isReachable` property of the object.\n * @param vatSlot - The `vatSlot` property of the object.\n * @returns A string with the `isReachable` and `vatSlot` properties.\n */\nexport function buildReachableAndVatSlot(\n isReachable: boolean,\n vatSlot: string,\n): string {\n return `${isReachable ? 'R' : '_'} ${vatSlot}`;\n}\nharden(buildReachableAndVatSlot);\n"]}