// Copyright (c) 2014 Tom Zhou<iwebpp@gmail.com>
package com.iwebpp.node.js;
import com.iwebpp.node.NodeContext;
/*
* @description
* NodeJS host env interface implemented by JS engine
* */
public interface JS {
/*
* @description
* Authored javascript content
* */
public String content();
/*
* @description
* Node.js require
* @param module - module path, like file path, URL
* @return generic JS Object, JS engine dependent
* */
public Object require(String module) throws Exception;
/*
* @description
* Async Node.js require
* @param module - module path, like file path, URL
* @param cb - callback on require done
* */
public void require(String module, RequireCallback cb) throws Exception;
public interface RequireCallback {
public void onResponse(Object exports) throws Exception;
}
/*
* @description
* Node.js context execute
* @return false on error
* */
public void execute() throws Exception;
/*
* @description
* node-android native context
* */
public NodeContext getNodeContext();
}