| Index: frog/lib/node/http.dart
|
| ===================================================================
|
| --- frog/lib/node/http.dart (revision 0)
|
| +++ frog/lib/node/http.dart (revision 0)
|
| @@ -0,0 +1,556 @@
|
| +// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +#library('http');
|
| +#import('node.dart');
|
| +#import('net.dart', prefix:'net');
|
| +#import('url.dart');
|
| +
|
| +// module http
|
| +
|
| +class http native "require('http')" {
|
| + static Server createServer([ServerRequestListener listener]) native;
|
| + static ClientRequest request(UrlObject options, void response(ServerResponse
|
| + res))
|
| + native;
|
| + static ClientRequest get(UrlObject options, void response(ServerResponse res))
|
| + native;
|
| + static Agent globalAgent;
|
| +}
|
| +
|
| +typedef void ServerRequestListener(
|
| + ServerRequest request, ServerResponse response);
|
| +typedef void ServerConnectionListener(net.Socket socket);
|
| +typedef void ServerCloseListener();
|
| +typedef void ServerCheckContinueListener(
|
| + ServerRequest request, ServerResponse response);
|
| +typedef void ServerUpgradeListener(
|
| + ServerRequest request, net.Socket socket, Buffer head);
|
| +typedef void ServerClientErrorListener(Error exception);
|
| +
|
| +class Server native "require('http').Server" {
|
| + // Implement EventEmitter
|
| + void removeAllListeners(String event)
|
| + native "this.removeAllListeners(event);";
|
| + void setMaxListeners(num n)
|
| + native "this.setMaxListeners(n);";
|
| + var _listeners(String key)
|
| + native "return this.listeners(key);";
|
| +
|
| + // request event
|
| + void emitRequest(ServerRequest request, ServerResponse response)
|
| + native "this.emit('request');";
|
| + void addListenerRequest(ServerRequestListener listener)
|
| + native "this.addListener('request', listener);";
|
| + void onRequest(ServerRequestListener listener)
|
| + native "this.on('request', listener);";
|
| + void onceRequest(ServerRequestListener listener)
|
| + native "this.once('request', listener);";
|
| + void removeListenerRequest(ServerRequestListener listener)
|
| + native "this.removeListener('request', listener);";
|
| + List<ServerRequestListener> listenersRequest()
|
| + => new _NativeListPrimitiveElement<ServerRequestListener>(
|
| + _listeners('request'));
|
| +
|
| + // connection event
|
| + void emitConnection(net.Socket socket)
|
| + native "this.emit('connection');";
|
| + void addListenerConnection(ServerConnectionListener listener)
|
| + native "this.addListener('connection', listener);";
|
| + void onConnection(ServerConnectionListener listener)
|
| + native "this.on('connection', listener);";
|
| + void onceConnection(ServerConnectionListener listener)
|
| + native "this.once('connection', listener);";
|
| + void removeListenerConnection(ServerConnectionListener listener)
|
| + native "this.removeListener('connection', listener);";
|
| + List<ServerConnectionListener> listenersConnection()
|
| + => new _NativeListPrimitiveElement<ServerConnectionListener>(
|
| + _listeners('connection'));
|
| +
|
| + // close event
|
| + void emitClose()
|
| + native "this.emit('close');";
|
| + void addListenerClose(ServerCloseListener listener)
|
| + native "this.addListener('close', listener);";
|
| + void onClose(ServerCloseListener listener)
|
| + native "this.on('close', listener);";
|
| + void onceClose(ServerCloseListener listener)
|
| + native "this.once('close', listener);";
|
| + void removeListenerClose(ServerCloseListener listener)
|
| + native "this.removeListener('close', listener);";
|
| + List<ServerCloseListener> listenersClose()
|
| + => new _NativeListPrimitiveElement<ServerCloseListener>(
|
| + _listeners('close'));
|
| +
|
| + // checkContinue event
|
| + void emitCheckContinue(ServerRequest request, ServerResponse response)
|
| + native "this.emit('checkContinue');";
|
| + void addListenerCheckContinue(ServerCheckContinueListener listener)
|
| + native "this.addListener('checkContinue', listener);";
|
| + void onCheckContinue(ServerCheckContinueListener listener)
|
| + native "this.on('checkContinue', listener);";
|
| + void onceCheckContinue(ServerCheckContinueListener listener)
|
| + native "this.once('checkContinue', listener);";
|
| + void removeListenerCheckContinue(ServerCheckContinueListener listener)
|
| + native "this.removeListener('checkContinue', listener);";
|
| + List<ServerCheckContinueListener> listenersCheckContinue()
|
| + => new _NativeListPrimitiveElement<ServerCheckContinueListener>(
|
| + _listeners('checkContinue'));
|
| +
|
| + // upgrade event
|
| + void emitUpgrade(ServerRequest request, net.Socket socket, Buffer head)
|
| + native "this.emit('upgrade');";
|
| + void addListenerUpgrade(ServerUpgradeListener listener)
|
| + native "this.addListener('upgrade', listener);";
|
| + void onUpgrade(ServerUpgradeListener listener)
|
| + native "this.on('upgrade', listener);";
|
| + void onceUpgrade(ServerUpgradeListener listener)
|
| + native "this.once('upgrade', listener);";
|
| + void removeListenerUpgrade(ServerUpgradeListener listener)
|
| + native "this.removeListener('upgrade', listener);";
|
| + List<ServerUpgradeListener> listenersUpgrade()
|
| + => new _NativeListPrimitiveElement<ServerUpgradeListener>(
|
| + _listeners('upgrade'));
|
| +
|
| + // clientError event
|
| + void emitClientError(Error exception)
|
| + native "this.emit('clientError');";
|
| + void addListenerClientError(ServerClientErrorListener listener)
|
| + native "this.addListener('clientError', listener);";
|
| + void onClientError(ServerClientErrorListener listener)
|
| + native "this.on('clientError', listener);";
|
| + void onceClientError(ServerClientErrorListener listener)
|
| + native "this.once('clientError', listener);";
|
| + void removeListenerClientError(ServerClientErrorListener listener)
|
| + native "this.removeListener('clientError', listener);";
|
| + List<ServerClientErrorListener> listenersClientError()
|
| + => new _NativeListPrimitiveElement<ServerClientErrorListener>(
|
| + _listeners('clientError'));
|
| +
|
| + void listen(int port, [String hostname, void callback()]) native;
|
| + void listenUnix(String path, [void callback()]) native;
|
| + void close() native;
|
| +}
|
| +
|
| +typedef void ServerRequestDataListener(var chunk);
|
| +typedef void ServerRequestEndListener();
|
| +typedef void ServerRequestCloseListener();
|
| +
|
| +class ServerRequest implements EventEmitter native
|
| + "request('http').IncomingMessage" {
|
| + // EventEmitter
|
| + void removeAllListeners(String event)
|
| + native "this.removeAllListeners(event);";
|
| + void setMaxListeners(num n)
|
| + native "this.setMaxListeners(n);";
|
| + var _listeners(String key)
|
| + native "return this.listeners(key);";
|
| +
|
| + // data event
|
| + void emitData(var chunk)
|
| + native "this.emit('data');";
|
| + void addListenerData(ServerRequestDataListener listener)
|
| + native "this.addListener('data', listener);";
|
| + void onData(ServerRequestDataListener listener)
|
| + native "this.on('data', listener);";
|
| + void onceData(ServerRequestDataListener listener)
|
| + native "this.once('data', listener);";
|
| + void removeListenerData(ServerRequestDataListener listener)
|
| + native "this.removeListener('data', listener);";
|
| + List<ServerRequestDataListener> listenersData()
|
| + => new _NativeListPrimitiveElement<ServerRequestDataListener>(
|
| + _listeners('data'));
|
| +
|
| + // end event
|
| + void emitEnd()
|
| + native "this.emit('end');";
|
| + void addListenerEnd(ServerRequestEndListener listener)
|
| + native "this.addListener('end', listener);";
|
| + void onEnd(ServerRequestEndListener listener)
|
| + native "this.on('end', listener);";
|
| + void onceEnd(ServerRequestEndListener listener)
|
| + native "this.once('end', listener);";
|
| + void removeListenerEnd(ServerRequestEndListener listener)
|
| + native "this.removeListener('end', listener);";
|
| + List<ServerRequestEndListener> listenersEnd()
|
| + => new _NativeListPrimitiveElement<ServerRequestEndListener>(
|
| + _listeners('end'));
|
| +
|
| + // close event
|
| + void emitClose()
|
| + native "this.emit('close');";
|
| + void addListenerClose(ServerRequestCloseListener listener)
|
| + native "this.addListener('close', listener);";
|
| + void onClose(ServerRequestCloseListener listener)
|
| + native "this.on('close', listener);";
|
| + void onceClose(ServerRequestCloseListener listener)
|
| + native "this.once('close', listener);";
|
| + void removeListenerClose(ServerRequestCloseListener listener)
|
| + native "this.removeListener('close', listener);";
|
| + List<ServerRequestCloseListener> listenersClose()
|
| + => new _NativeListPrimitiveElement<ServerRequestCloseListener>(
|
| + _listeners('close'));
|
| +
|
| + final String method;
|
| + final String url;
|
| + Map<String, String> get headers()
|
| + => new _NativeMapPrimitiveValue<String>(_headers());
|
| + var _headers() native "return this.headers;";
|
| + final String httpVersion;
|
| +
|
| + void setEncoding([String encoding]) native;
|
| + void pause() native;
|
| + void resume() native;
|
| + net.Socket connection;
|
| +}
|
| +
|
| +class ServerResponse implements WritableStream native "http.ServerResponse" {
|
| + // EventEmitter
|
| + void removeAllListeners(String event)
|
| + native "this._writeStream.removeAllListeners(event);";
|
| + void setMaxListeners(num n) native;
|
| + var _listeners(String key)
|
| + native "return this.listeners(key);";
|
| +
|
| + // CommonStream
|
| +
|
| + // Error event
|
| + void emitError(Error error)
|
| + native "this.emit('error', error);";
|
| + void addListenerError(StreamErrorListener listener)
|
| + native "this.addListener('error', listener);";
|
| + void onError(StreamErrorListener listener)
|
| + native "this.on('error', listener);";
|
| + void onceError(StreamErrorListener listener)
|
| + native "this.once('error', listener);";
|
| + void removeListenerError(StreamErrorListener listener)
|
| + native "this.removeListener('error', listener);";
|
| + List<StreamErrorListener> listenersError()
|
| + => new _NativeListPrimitiveElement<StreamErrorListener>(_listeners(
|
| + 'error'));
|
| +
|
| + // Close event
|
| + void emitClose()
|
| + native "this.emit('close');";
|
| + void addListenerClose(StreamCloseListener listener)
|
| + native "this.addListener('close', listener);";
|
| + void onClose(StreamCloseListener listener)
|
| + native "this.on('close', listener);";
|
| + void onceClose(StreamCloseListener listener)
|
| + native "this.once('close', listener);";
|
| + void removeListenerClose(StreamCloseListener listener)
|
| + native "this.removeListener('close', listener);";
|
| + List<StreamCloseListener> listenersClose()
|
| + => new _NativeListPrimitiveElement<StreamCloseListener>(_listeners(
|
| + 'close'));
|
| +
|
| + // WritableStream
|
| +
|
| + // Drain event
|
| + void emitDrain()
|
| + native "this.emit('drain');";
|
| + void addListenerDrain(WritableStreamDrainListener listener)
|
| + native "this.addListener('drain', listener);";
|
| + void onDrain(WritableStreamDrainListener listener)
|
| + native "this.on('drain', listener);";
|
| + void onceDrain(WritableStreamDrainListener listener)
|
| + native "this.once('drain', listener);";
|
| + void removeListenerDrain(WritableStreamDrainListener listener)
|
| + native "this.removeListener('drain', listener);";
|
| + List<WritableStreamDrainListener> listenersDrain()
|
| + => new _NativeListPrimitiveElement<WritableStreamDrainListener>(_listeners(
|
| + 'drain'));
|
| +
|
| + // Pipe event
|
| + void emitPipe(ReadableStream src)
|
| + native "this.emit('pipe', src);";
|
| + void addListenerPipe(WritableStreamPipeListener listener)
|
| + native "this.addListener('pipe', listener);";
|
| + void onPipe(WritableStreamPipeListener listener)
|
| + native "this.on('pipe', listener);";
|
| + void oncePipe(WritableStreamPipeListener listener)
|
| + native "this.once('pipe', listener);";
|
| + void removeListenerPipe(WritableStreamPipeListener listener)
|
| + native "this.removeListener('pipe', listener);";
|
| + List<WritableStreamPipeListener> listenersPipe()
|
| + => new _NativeListPrimitiveElement<WritableStreamPipeListener>(_listeners(
|
| + 'pipe'));
|
| +
|
| +
|
| + void writeContinue() native;
|
| + void writeHead(int statusCode, [String reasonPhrase, Map<String,String>
|
| + headers])
|
| + native;
|
| + int statusCode;
|
| + void setHeader(String name, String value) native;
|
| + String getHeader(String name) native;
|
| + void removeHeader(String name) native;
|
| +
|
| +
|
| + void write(String data, [String encoding = 'utf8']) native;
|
| + void writeBuffer(Buffer data)
|
| + native "this.write(data);";
|
| +
|
| + void addTrailers(Map<String,String> headers) native;
|
| +
|
| + void end([String data, String encoding = 'utf8']) native;
|
| +}
|
| +
|
| +class Agent native "require('http').Agent" {
|
| + int maxSockets;
|
| +}
|
| +
|
| +typedef void ClientRequestResponseListener(ClientResponse response);
|
| +typedef void ClientRequestSocketListener(net.Socket socket);
|
| +typedef void ClientRequestUpgradeListener(
|
| + ClientResponse response, net.Socket socket, Buffer head);
|
| +typedef void ClientRequestContinueListener();
|
| +
|
| +class ClientRequest implements WritableStream native
|
| + "require('http').ClientRequest" {
|
| + // EventEmitter
|
| + void removeAllListeners(String event)
|
| + native "this._writeStream.removeAllListeners(event);";
|
| + void setMaxListeners(num n) native;
|
| + var _listeners(String key)
|
| + native "return this.listeners(key);";
|
| +
|
| + // CommonStream
|
| +
|
| + // Error event
|
| + void emitError(Error error)
|
| + native "this.emit('error', error);";
|
| + void addListenerError(StreamErrorListener listener)
|
| + native "this.addListener('error', listener);";
|
| + void onError(StreamErrorListener listener)
|
| + native "this.on('error', listener);";
|
| + void onceError(StreamErrorListener listener)
|
| + native "this.once('error', listener);";
|
| + void removeListenerError(StreamErrorListener listener)
|
| + native "this.removeListener('error', listener);";
|
| + List<StreamErrorListener> listenersError()
|
| + => new _NativeListPrimitiveElement<StreamErrorListener>(_listeners(
|
| + 'error'));
|
| +
|
| + // Close event
|
| + void emitClose()
|
| + native "this.emit('close');";
|
| + void addListenerClose(StreamCloseListener listener)
|
| + native "this.addListener('close', listener);";
|
| + void onClose(StreamCloseListener listener)
|
| + native "this.on('close', listener);";
|
| + void onceClose(StreamCloseListener listener)
|
| + native "this.once('close', listener);";
|
| + void removeListenerClose(StreamCloseListener listener)
|
| + native "this.removeListener('close', listener);";
|
| + List<StreamCloseListener> listenersClose()
|
| + => new _NativeListPrimitiveElement<StreamCloseListener>(_listeners(
|
| + 'close'));
|
| +
|
| + // WritableStream
|
| +
|
| + // Drain event
|
| + void emitDrain()
|
| + native "this.emit('drain');";
|
| + void addListenerDrain(WritableStreamDrainListener listener)
|
| + native "this.addListener('drain', listener);";
|
| + void onDrain(WritableStreamDrainListener listener)
|
| + native "this.on('drain', listener);";
|
| + void onceDrain(WritableStreamDrainListener listener)
|
| + native "this.once('drain', listener);";
|
| + void removeListenerDrain(WritableStreamDrainListener listener)
|
| + native "this.removeListener('drain', listener);";
|
| + List<WritableStreamDrainListener> listenersDrain()
|
| + => new _NativeListPrimitiveElement<WritableStreamDrainListener>(_listeners(
|
| + 'drain'));
|
| +
|
| + // Pipe event
|
| + void emitPipe(ReadableStream src)
|
| + native "this.emit('pipe', src);";
|
| + void addListenerPipe(WritableStreamPipeListener listener)
|
| + native "this.addListener('pipe', listener);";
|
| + void onPipe(WritableStreamPipeListener listener)
|
| + native "this.on('pipe', listener);";
|
| + void oncePipe(WritableStreamPipeListener listener)
|
| + native "this.once('pipe', listener);";
|
| + void removeListenerPipe(WritableStreamPipeListener listener)
|
| + native "this.removeListener('pipe', listener);";
|
| + List<WritableStreamPipeListener> listenersPipe()
|
| + => new _NativeListPrimitiveElement<WritableStreamPipeListener>(_listeners(
|
| + 'pipe'));
|
| +
|
| +
|
| + // ClientRequest specific events
|
| +
|
| + // response event
|
| + void emitResponse(ClientResponse response)
|
| + native "this.emit('response');";
|
| + void addListenerResponse(ClientRequestResponseListener listener)
|
| + native "this.addListener('response', listener);";
|
| + void onResponse(ClientRequestResponseListener listener)
|
| + native "this.on('response', listener);";
|
| + void onceResponse(ClientRequestResponseListener listener)
|
| + native "this.once('response', listener);";
|
| + void removeListenerResponse(ClientRequestResponseListener listener)
|
| + native "this.removeListener('response', listener);";
|
| + List<ClientRequestResponseListener> listenersResponse()
|
| + => new _NativeListPrimitiveElement<ClientRequestResponseListener>(
|
| + _listeners('response'));
|
| +
|
| + // socket event
|
| + void emitSocket(net.Socket socket)
|
| + native "this.emit('socket');";
|
| + void addListenerSocket(ClientRequestSocketListener listener)
|
| + native "this.addListener('socket', listener);";
|
| + void onSocket(ClientRequestSocketListener listener)
|
| + native "this.on('socket', listener);";
|
| + void onceSocket(ClientRequestSocketListener listener)
|
| + native "this.once('socket', listener);";
|
| + void removeListenerSocket(ClientRequestSocketListener listener)
|
| + native "this.removeListener('socket', listener);";
|
| + List<ClientRequestSocketListener> listenersSocket()
|
| + => new _NativeListPrimitiveElement<ClientRequestSocketListener>(
|
| + _listeners('socket'));
|
| +
|
| + // upgrade event
|
| + void emitUpgrade(ClientResponse response, net.Socket socket, Buffer head)
|
| + native "this.emit('upgrade');";
|
| + void addListenerUpgrade(ClientRequestUpgradeListener listener)
|
| + native "this.addListener('upgrade', listener);";
|
| + void onUpgrade(ClientRequestUpgradeListener listener)
|
| + native "this.on('upgrade', listener);";
|
| + void onceUpgrade(ClientRequestUpgradeListener listener)
|
| + native "this.once('upgrade', listener);";
|
| + void removeListenerUpgrade(ClientRequestUpgradeListener listener)
|
| + native "this.removeListener('upgrade', listener);";
|
| + List<ClientRequestUpgradeListener> listenersUpgrade()
|
| + => new _NativeListPrimitiveElement<ClientRequestUpgradeListener>(
|
| + _listeners('upgrade'));
|
| +
|
| + // continue event
|
| + void emitContinue()
|
| + native "this.emit('continue');";
|
| + void addListenerContinue(ClientRequestContinueListener listener)
|
| + native "this.addListener('continue', listener);";
|
| + void onContinue(ClientRequestContinueListener listener)
|
| + native "this.on('continue', listener);";
|
| + void onceContinue(ClientRequestContinueListener listener)
|
| + native "this.once('continue', listener);";
|
| + void removeListenerContinue(ClientRequestContinueListener listener)
|
| + native "this.removeListener('continue', listener);";
|
| + List<ClientRequestContinueListener> listenersContinue()
|
| + => new _NativeListPrimitiveElement<ClientRequestContinueListener>(
|
| + _listeners('continue'));
|
| +
|
| + // WritableStream methods and instance variables
|
| +
|
| + bool writable;
|
| + bool write(String string, [String encoding='utf8', int fd]) native;
|
| + bool writeBuffer(Buffer buffer) native;
|
| + void end([String string, String encoding]) native;
|
| + void endBuffer(Buffer buffer) native "this.end(buffer);";
|
| + void destroy() native;
|
| + void destroySoon() native;
|
| +
|
| + // ClientRequest methods
|
| + void abort() native;
|
| + void setTimeout(int timeout, void callback()) native;
|
| + void setNoDelay([bool noDelay]) native;
|
| + void setSocketKeepAlive([bool enable, int initialDelay]) native;
|
| +}
|
| +
|
| +class ClientResponse implements ReadableStream native
|
| + "require('http').ClientResponse" {
|
| + // EventEmitter
|
| + void removeAllListeners(String event) native;
|
| + void setMaxListeners(num n) native;
|
| + var _listeners(String key)
|
| + native "return this.listeners(key);";
|
| +
|
| + // CommonStream
|
| +
|
| + // Error event
|
| + void emitError(Error error)
|
| + native "this.emit('error', error);";
|
| + void addListenerError(StreamErrorListener listener)
|
| + native "this.addListener('error', listener);";
|
| + void onError(StreamErrorListener listener)
|
| + native "this.on('error', listener);";
|
| + void onceError(StreamErrorListener listener)
|
| + native "this.once('error', listener);";
|
| + void removeListenerError(StreamErrorListener listener)
|
| + native "this.removeListener('error', listener);";
|
| + List<StreamErrorListener> listenersError()
|
| + => new _NativeListPrimitiveElement<StreamErrorListener>(_listeners(
|
| + 'error'));
|
| +
|
| + // Close event
|
| + void emitClose()
|
| + native "this.emit('close');";
|
| + void addListenerClose(StreamCloseListener listener)
|
| + native "this.addListener('close', listener);";
|
| + void onClose(StreamCloseListener listener)
|
| + native "this.on('close', listener);";
|
| + void onceClose(StreamCloseListener listener)
|
| + native "this.once('close', listener);";
|
| + void removeListenerClose(StreamCloseListener listener)
|
| + native "this.removeListener('close', listener);";
|
| + List<StreamCloseListener> listenersClose()
|
| + => new _NativeListPrimitiveElement<StreamCloseListener>(_listeners(
|
| + 'close'));
|
| +
|
| + // ReadableStream
|
| +
|
| + // Data event
|
| + void emitData(var data)
|
| + native "this.emit('data', data);";
|
| + void addListenerData(ReadableStreamDataListener listener)
|
| + native "this.addListener('data', listener);";
|
| + void onData(ReadableStreamDataListener listener)
|
| + native "this.on('data', listener);";
|
| + void onceData(ReadableStreamDataListener listener)
|
| + native "this.once('data', listener);";
|
| + void removeListenerData(ReadableStreamDataListener listener)
|
| + native "this.removeListener('data', listener);";
|
| + List<ReadableStreamDataListener> listenerData()
|
| + => new _NativeListPrimitiveElement<ReadableStreamDataListener>(_listeners(
|
| + 'data'));
|
| +
|
| + // End event
|
| + void emitEnd()
|
| + native "this.emit('end');";
|
| + void addListenerEnd(ReadableStreamEndListener listener)
|
| + native "this.addListener('end', listener);";
|
| + void onEnd(ReadableStreamEndListener listener)
|
| + native "this.on('end', listener);";
|
| + void onceEnd(ReadableStreamEndListener listener)
|
| + native "this.once('end', listener);";
|
| + void removeListenerEnd(ReadableStreamEndListener listener)
|
| + native "this.removeListener('end', listener);";
|
| + List<ReadableStreamEndListener> listenersEnd()
|
| + => new _NativeListPrimitiveElement<ReadableStreamEndListener>(_listeners(
|
| + 'end'));
|
| +
|
| + // ReadableStream methods and instance variables
|
| +
|
| + bool readable;
|
| + void setEncoding(String encoding) native;
|
| + void pause() native;
|
| + void resume() native;
|
| + void destroy() native;
|
| + void destroySoon() native;
|
| + WritableStream pipe(WritableStream destination, [Map options]) native;
|
| +
|
| + // class specific methods and instance variables
|
| + int statusCode;
|
| + String httpVersion;
|
| + int httpVersionMajor;
|
| + int httpVersionMinor;
|
| + Map<String, String> get headers()
|
| + => new _NativeMapPrimitiveValue<String>(_headers());
|
| + var _headers() native "return this.headers;";
|
| + Map<String, String> trailers()
|
| + => new _NativeMapPrimitiveValue<String>(_trailers());
|
| + var _trailers() native "return this.trailers;";
|
| +}
|
|
|