Skip to content

Commit

Permalink
Write few externs to allow advanced compilation.
Browse files Browse the repository at this point in the history
  • Loading branch information
Gozala committed Mar 28, 2014
1 parent 6d7269c commit 6eec7c5
Show file tree
Hide file tree
Showing 7 changed files with 795 additions and 0 deletions.
94 changes: 94 additions & 0 deletions externs/binding.os.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/**
BEGIN_NODE_INCLUDE
var os = process.binding('os');
END_NODE_INCLUDE
*/

var os = {};

/**
* @return {string}
* @nosideeffects
*/
os.tmdDir = function() {};

/**
* @return {string}
* @nosideeffects
*/
os.hostname = function() {};

/**
* @return {string}
* @nosideeffects
*/
os.type = function() {};

/**
* @return {string}
* @nosideeffects
*/
os.platform = function() {};

/**
* @return {string}
* @nosideeffects
*/
os.arch = function() {};

/**
* @return {string}
* @nosideeffects
*/
os.release = function() {};

/**
* @return {number}
* @nosideeffects
*/
os.uptime = function() {};

/**
* @return {Array.<number>}
* @nosideeffects
*/
os.loadavg = function() {};

/**
* @return {number}
* @nosideeffects
*/
os.totalmem = function() {};

/**
* @return {number}
* @nosideeffects
*/
os.freemem = function() {};

/**
* @typedef {{model: string, speed: number, times: {user: number, nice: number, sys: number, idle: number, irg: number}}}
*/
var osCpusInfo;

/**
* @return {Array.<osCpusInfo>}
* @nosideeffects
*/
os.cpus = function() {};

/**
* @typedef {{address: string, family: string, internal: boolean}}
*/
var osNetworkInterfacesInfo;

/**
* @return {Object.<string,osNetworkInterfacesInfo>}
* @nosideeffects
*/
os.networkInterfaces = function() {};

/**
* @type {string}
*/
os.EOL;
10 changes: 10 additions & 0 deletions externs/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* @param name
* @return {*}
*/
var require = function(name) {}

/**
* @type {Object.<string,*>}
*/
var global = {};
139 changes: 139 additions & 0 deletions externs/process.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
/**
* @constructor
* @extends events.EventEmitter
*/
var process = function() {
};

/**
* @param name
* @return {*}
*/
process.binding = function(name) {};

/**
* @type {stream.ReadableStream}
*/
process.stdin;

/**
* @type {stream.WritableStream}
*/
process.stdout;

/**
* @type {stream.WritableStream}
*/
process.stderr;

/**
* @type {Array.<string>}
*/
process.argv;

/**
*/
process.abort = function() {};

/**
* @param {string} directory
*/
process.chdir = function(directory) {};

/**
* @return {string}
* @nosideeffects
*/
process.cwd = function() {};

/**
* @type {Object.<string,string>}
*/
process.env;

/**
* @param {number=} code
*/
process.exit = function(code) {};

/**
* @return {number}
* @nosideeffects
*/
process.getgid = function() {};

/**
* @param {number} id
*/
process.setgid = function(id) {};

/**
* @return {number}
* @nosideeffects
*/
process.getuid = function() {};

/**
* @param {number} id
*/
process.setuid = function(id) {};

/**
* @type {!string}
*/
process.version;


/**
* @param {number} pid
* @param {string=} signal
*/
process.kill = function(pid, signal) {};

/**
* @type {number}
*/
process.pid;

/**
* @type {string}
*/
process.title;

/**
* @type {string}
*/
process.arch;

/**
* @type {string}
*/
process.platform;

/**
* @return {Object.<string,number>}
* @nosideeffects
*/
process.memoryUsage = function() {};

/**
* @param {!function()} callback
*/
process.nextTick = function(callback) {};

/**
* @param {number=} mask
*/
process.umask = function(mask) {};

/**
* @return {number}
* @nosideeffects
*/
process.uptime = function() {};

/**
* @return {number}
* @nosideeffects
*/
process.hrtime = function() {};
80 changes: 80 additions & 0 deletions externs/require.events.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/**
BEGIN_NODE_INCLUDE
var events = require('events');
END_NODE_INCLUDE
*/

/**
* @type {Object.<string,*>}
*/
var events = {};

/**
* @constructor
*/
events.EventEmitter = function() {};

/**
* @param {string} event
* @param {function(...)} listener
* @return {events.EventEmitter}
*/
events.EventEmitter.prototype.addListener = function(event, listener) {};

/**
* @param {string} event
* @param {function(...)} listener
* @return {events.EventEmitter}
*/
events.EventEmitter.prototype.on = function(event, listener) {};

/**
* @param {string} event
* @param {function(...)} listener
* @return {events.EventEmitter}
*/
events.EventEmitter.prototype.once = function(event, listener) {};

/**
* @param {string} event
* @param {function(...)} listener
* @return {events.EventEmitter}
*/
events.EventEmitter.prototype.removeListener = function(event, listener) {};

/**
* @param {string=} event
* @return {events.EventEmitter}
*/
events.EventEmitter.prototype.removeAllListeners = function(event) {};

/**
* @param {number} n
*/
events.EventEmitter.prototype.setMaxListeners = function(n) {};

/**
* @param {string} event
* @return {Array.<function(...)>}
*/
events.EventEmitter.prototype.listeners = function(event) {};

/**
* @param {string} event
* @param {...*} var_args
* @return {boolean}
*/
events.EventEmitter.prototype.emit = function(event, var_args) {};

// Undocumented

/**
* @type {boolean}
*/
events.usingDomains;

/**
* @param {events.EventEmitter} emitter
* @param {string} type
*/
events.EventEmitter.listenerCount = function(emitter, type) {};
Loading

0 comments on commit 6eec7c5

Please sign in to comment.