diff options
Diffstat (limited to 'js/resources.ts')
-rw-r--r-- | js/resources.ts | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/js/resources.ts b/js/resources.ts index 6e2ec202b..49093fab1 100644 --- a/js/resources.ts +++ b/js/resources.ts @@ -1,6 +1,6 @@ // Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. -import * as dispatch from "./dispatch"; -import { sendSync } from "./dispatch_json"; +import { assert } from "./util"; +import { sendSync, msg, flatbuffers } from "./dispatch_flatbuffers"; export interface ResourceMap { [rid: number]: string; @@ -10,10 +10,20 @@ export interface ResourceMap { * representation. */ export function resources(): ResourceMap { - const res = sendSync(dispatch.OP_RESOURCES) as Array<[number, string]>; + const builder = flatbuffers.createBuilder(); + const inner = msg.Resource.createResource(builder, 0, 0); + const baseRes = sendSync(builder, msg.Any.Resources, inner); + assert(baseRes !== null); + assert(msg.Any.ResourcesRes === baseRes!.innerType()); + const res = new msg.ResourcesRes(); + assert(baseRes!.inner(res) !== null); + const resources: ResourceMap = {}; - for (const resourceTuple of res) { - resources[resourceTuple[0]] = resourceTuple[1]; + + for (let i = 0; i < res.resourcesLength(); i++) { + const item = res.resources(i)!; + resources[item.rid()!] = item.repr()!; } + return resources; } |