massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-json / node_modules / vscode-jsonrpc / lib / browser / ril.js
1 "use strict";
2 /* --------------------------------------------------------------------------------------------
3  * Copyright (c) Microsoft Corporation. All rights reserved.
4  * Licensed under the MIT License. See License.txt in the project root for license information.
5  * ------------------------------------------------------------------------------------------ */
6 Object.defineProperty(exports, "__esModule", { value: true });
7 const ral_1 = require("../common/ral");
8 const disposable_1 = require("../common/disposable");
9 const events_1 = require("../common/events");
10 const messageBuffer_1 = require("../common/messageBuffer");
11 class MessageBuffer extends messageBuffer_1.AbstractMessageBuffer {
12     constructor(encoding = 'utf-8') {
13         super(encoding);
14         this.asciiDecoder = new TextDecoder('ascii');
15     }
16     emptyBuffer() {
17         return MessageBuffer.emptyBuffer;
18     }
19     fromString(value, _encoding) {
20         return (new TextEncoder()).encode(value);
21     }
22     toString(value, encoding) {
23         if (encoding === 'ascii') {
24             return this.asciiDecoder.decode(value);
25         }
26         else {
27             return (new TextDecoder(encoding)).decode(value);
28         }
29     }
30     asNative(buffer, length) {
31         if (length === undefined) {
32             return buffer;
33         }
34         else {
35             return buffer.slice(0, length);
36         }
37     }
38     allocNative(length) {
39         return new Uint8Array(length);
40     }
41 }
42 MessageBuffer.emptyBuffer = new Uint8Array(0);
43 class ReadableStreamWrapper {
44     constructor(socket) {
45         this.socket = socket;
46         this._onData = new events_1.Emitter();
47         this._messageListener = (event) => {
48             const blob = event.data;
49             blob.arrayBuffer().then((buffer) => {
50                 this._onData.fire(new Uint8Array(buffer));
51             });
52         };
53         this.socket.addEventListener('message', this._messageListener);
54     }
55     onClose(listener) {
56         this.socket.addEventListener('close', listener);
57         return disposable_1.Disposable.create(() => this.socket.removeEventListener('close', listener));
58     }
59     onError(listener) {
60         this.socket.addEventListener('error', listener);
61         return disposable_1.Disposable.create(() => this.socket.removeEventListener('error', listener));
62     }
63     onEnd(listener) {
64         this.socket.addEventListener('end', listener);
65         return disposable_1.Disposable.create(() => this.socket.removeEventListener('end', listener));
66     }
67     onData(listener) {
68         return this._onData.event(listener);
69     }
70 }
71 class WritableStreamWrapper {
72     constructor(socket) {
73         this.socket = socket;
74     }
75     onClose(listener) {
76         this.socket.addEventListener('close', listener);
77         return disposable_1.Disposable.create(() => this.socket.removeEventListener('close', listener));
78     }
79     onError(listener) {
80         this.socket.addEventListener('error', listener);
81         return disposable_1.Disposable.create(() => this.socket.removeEventListener('error', listener));
82     }
83     onEnd(listener) {
84         this.socket.addEventListener('end', listener);
85         return disposable_1.Disposable.create(() => this.socket.removeEventListener('end', listener));
86     }
87     write(data, encoding) {
88         if (typeof data === 'string') {
89             if (encoding !== undefined && encoding !== 'utf-8') {
90                 throw new Error(`In a Browser environments only utf-8 text encding is supported. But got encoding: ${encoding}`);
91             }
92             this.socket.send(data);
93         }
94         else {
95             this.socket.send(data);
96         }
97         return Promise.resolve();
98     }
99     end() {
100         this.socket.close();
101     }
102 }
103 const _textEncoder = new TextEncoder();
104 const _ril = Object.freeze({
105     messageBuffer: Object.freeze({
106         create: (encoding) => new MessageBuffer(encoding)
107     }),
108     applicationJson: Object.freeze({
109         encoder: Object.freeze({
110             name: 'application/json',
111             encode: (msg, options) => {
112                 if (options.charset !== 'utf-8') {
113                     throw new Error(`In a Browser environments only utf-8 text encding is supported. But got encoding: ${options.charset}`);
114                 }
115                 return Promise.resolve(_textEncoder.encode(JSON.stringify(msg, undefined, 0)));
116             }
117         }),
118         decoder: Object.freeze({
119             name: 'application/json',
120             decode: (buffer, options) => {
121                 if (!(buffer instanceof Uint8Array)) {
122                     throw new Error(`In a Browser environments only Uint8Arrays are supported.`);
123                 }
124                 return Promise.resolve(JSON.parse(new TextDecoder(options.charset).decode(buffer)));
125             }
126         })
127     }),
128     stream: Object.freeze({
129         asReadableStream: (socket) => new ReadableStreamWrapper(socket),
130         asWritableStream: (socket) => new WritableStreamWrapper(socket)
131     }),
132     console: console,
133     timer: Object.freeze({
134         setTimeout(callback, ms, ...args) {
135             return setTimeout(callback, ms, ...args);
136         },
137         clearTimeout(handle) {
138             clearTimeout(handle);
139         },
140         setImmediate(callback, ...args) {
141             return setTimeout(callback, 0, ...args);
142         },
143         clearImmediate(handle) {
144             clearTimeout(handle);
145         }
146     })
147 });
148 function RIL() {
149     return _ril;
150 }
151 (function (RIL) {
152     function install() {
153         ral_1.default.install(_ril);
154     }
155     RIL.install = install;
156 })(RIL || (RIL = {}));
157 exports.default = RIL;
158 //# sourceMappingURL=ril.js.map