com.google.javascript.jscomp
Class ProcessCommonJSModules

java.lang.Object
  extended by com.google.javascript.jscomp.ProcessCommonJSModules
All Implemented Interfaces:
CompilerPass

public class ProcessCommonJSModules
extends Object
implements CompilerPass

Rewrites a Common JS module http://wiki.commonjs.org/wiki/Modules/1.1.1 into a form that can be safely concatenated. Does not add a function around the module body but instead adds suffixes to global variables to avoid conflicts. Calls to require are changed to reference the required module directly. goog.provide and goog.require are emitted for closure compiler automatic ordering.


Field Summary
static String DEFAULT_FILENAME_PREFIX
           
 
Method Summary
 void process(Node externs, Node root)
          Process the JS with root node root.
static String toModuleName(String filename)
          Turns a filename into a JS identifier that is used for moduleNames in rewritten code.
static String toModuleName(String requiredFilename, String currentFilename)
          Turn a filename into a moduleName with support for relative addressing with ./ and ../ based on currentFilename;
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_FILENAME_PREFIX

public static final String DEFAULT_FILENAME_PREFIX
Method Detail

process

public void process(Node externs,
                    Node root)
Description copied from interface: CompilerPass
Process the JS with root node root. Can modify the contents of each Node tree

Specified by:
process in interface CompilerPass
Parameters:
externs - Top of external JS tree
root - Top of JS tree

toModuleName

public static String toModuleName(String filename)
Turns a filename into a JS identifier that is used for moduleNames in rewritten code. Removes leading ./, replaces / with $, removes trailing .js and replaces - with _. All moduleNames get a "module$" prefix.


toModuleName

public static String toModuleName(String requiredFilename,
                                  String currentFilename)
Turn a filename into a moduleName with support for relative addressing with ./ and ../ based on currentFilename;