Alexander Blom 6a1783210b Add JS agent support
Summary:
Adds the possibility to define agents in Javascript. Javascript agents are simple classes that extend `InspectorAgent` and pass down the
given `EventSender` to the super constructor. The library will then call methods on the object for each received method call over the protocol.

Reviewed By: davidaurelio

Differential Revision: D4021508

fbshipit-source-id: bbe609e92ea726cbbbec833df81705ebd3346c77
2016-11-02 12:29:15 -07:00

38 lines
975 B
JavaScript

/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @providesModule JSInspector
* @flow
*/
'use strict';
import type EventSender from 'InspectorAgent';
interface Agent {
constructor(eventSender: EventSender): void
}
// Flow doesn't support static declarations in interface
type AgentClass = Class<Agent> & { DOMAIN: string };
declare function __registerInspectorAgent(type: AgentClass): void;
declare function __inspectorTimestamp(): number;
const JSInspector = {
registerAgent(type: AgentClass) {
if (global.__registerInspectorAgent) {
global.__registerInspectorAgent(type);
}
},
getTimestamp(): number {
return global.__inspectorTimestamp();
},
};
module.exports = JSInspector;