Add capacitorjs runtime
This commit is contained in:
parent
d0ece489ee
commit
f90c0e6c40
8362 changed files with 1502407 additions and 1 deletions
111
node_modules/native-run/dist/ios/lib/protocol/protocol.js
generated
vendored
Normal file
111
node_modules/native-run/dist/ios/lib/protocol/protocol.js
generated
vendored
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ProtocolClient = exports.PlistProtocolReader = exports.ProtocolReader = exports.ProtocolReaderFactory = void 0;
|
||||
const bplistParser = require("bplist-parser");
|
||||
const plist = require("plist");
|
||||
const BPLIST_MAGIC = Buffer.from('bplist00');
|
||||
class ProtocolReaderFactory {
|
||||
constructor(ProtocolReader) {
|
||||
this.ProtocolReader = ProtocolReader;
|
||||
}
|
||||
create(callback) {
|
||||
return new this.ProtocolReader(callback);
|
||||
}
|
||||
}
|
||||
exports.ProtocolReaderFactory = ProtocolReaderFactory;
|
||||
class ProtocolReader {
|
||||
constructor(headerSize, callback) {
|
||||
this.headerSize = headerSize;
|
||||
this.callback = callback;
|
||||
this.buffer = Buffer.alloc(0);
|
||||
this.onData = this.onData.bind(this);
|
||||
}
|
||||
onData(data) {
|
||||
try {
|
||||
// if there's data, add it on to existing buffer
|
||||
this.buffer = data ? Buffer.concat([this.buffer, data]) : this.buffer;
|
||||
// we haven't gotten the body length from the header yet
|
||||
if (!this.bodyLength) {
|
||||
if (this.buffer.length < this.headerSize) {
|
||||
// partial header, wait for rest
|
||||
return;
|
||||
}
|
||||
this.bodyLength = this.parseHeader(this.buffer);
|
||||
// move on to body
|
||||
this.buffer = this.buffer.slice(this.headerSize);
|
||||
if (!this.buffer.length) {
|
||||
// only got header, wait for body
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (this.buffer.length < this.bodyLength) {
|
||||
// wait for rest of body
|
||||
return;
|
||||
}
|
||||
if (this.bodyLength === -1) {
|
||||
this.callback(this.parseBody(this.buffer));
|
||||
this.buffer = Buffer.alloc(0);
|
||||
}
|
||||
else {
|
||||
this.body = this.buffer.slice(0, this.bodyLength);
|
||||
this.bodyLength -= this.body.length;
|
||||
if (!this.bodyLength) {
|
||||
this.callback(this.parseBody(this.body));
|
||||
}
|
||||
this.buffer = this.buffer.slice(this.body.length);
|
||||
// There are multiple messages here, call parse again
|
||||
if (this.buffer.length) {
|
||||
this.onData();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
this.callback(null, err);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.ProtocolReader = ProtocolReader;
|
||||
class PlistProtocolReader extends ProtocolReader {
|
||||
parseBody(body) {
|
||||
if (BPLIST_MAGIC.compare(body, 0, 8) === 0) {
|
||||
return bplistParser.parseBuffer(body);
|
||||
}
|
||||
else {
|
||||
return plist.parse(body.toString('utf8'));
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.PlistProtocolReader = PlistProtocolReader;
|
||||
class ProtocolClient {
|
||||
constructor(socket, readerFactory, writer) {
|
||||
this.socket = socket;
|
||||
this.readerFactory = readerFactory;
|
||||
this.writer = writer;
|
||||
}
|
||||
sendMessage(msg, callback) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = this.readerFactory.create(async (resp, err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
if (callback) {
|
||||
callback(resp, (value) => {
|
||||
this.socket.removeListener('data', reader.onData);
|
||||
resolve(value);
|
||||
}, reject);
|
||||
}
|
||||
else {
|
||||
this.socket.removeListener('data', reader.onData);
|
||||
resolve(resp);
|
||||
}
|
||||
});
|
||||
this.socket.on('error', (err) => {
|
||||
throw err;
|
||||
});
|
||||
this.socket.on('data', reader.onData);
|
||||
this.writer.write(this.socket, msg);
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.ProtocolClient = ProtocolClient;
|
||||
Loading…
Add table
Add a link
Reference in a new issue