summaryrefslogtreecommitdiff
path: root/js/resources.ts
diff options
context:
space:
mode:
Diffstat (limited to 'js/resources.ts')
-rw-r--r--js/resources.ts20
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;
}