             name: name
             ignoreName: true
         ###
-    
+
     # Inject result into defined namespace
     if Object.hasOwnProperty.call udefine.inject.modules, name
       injectObject = udefine.inject.modules[name]
       {root: injectRoot, name: injectName, ignoreName} = injectObject
-      
+
       udefine.inject(injectRoot, injectName, ignoreName)(result)
-        
+
     result
-  
+
   # Allow auto injection of modules in a browser environment
   udefine.autoInject = true
-  
+
   # Helper function to inject function/object into any object
   # TODO: Reflect if helper function should be exposed
   udefine.inject = (obj, name, ignoreName) -> (res) ->
     return unless obj? and name?
-    
+
     if ignoreName then obj or= res else obj[name] or= res
-  
+
   udefine.inject.modules = {}
-  
+
   udefine.inject.add = (name, value) ->
     return unless name?
     value = {} unless value?
     value.root = root unless value.root?
     value.name = name unless value.name?
-    
+
     udefine.inject.modules[name] = value
     @
 
   udefine.inject.remove = (name) ->
     delete udefine.inject.modules[name]
     @
-    
+
   udefine.inject.clear = ->
     udefine.inject.modules = {}
     @
-  
+
   # Dependencies
   udefine.modules =
     globals: {}
     commonjs: {}
-  
+
     # TODO: Reflect if previously defined modules should be overwritten
     add: (name, value) ->
       if typeof name is 'object'

  # TODO: Find a better wording than platform and platforms
  platforms = ['commonjs', 'globals']
  platform = if hasModule then 'commonjs' else 'globals'
  
  # Helper function to resolve a module (either function or object)
  resolveModule = (factory, deps) ->
    if typeof factory is 'function'
      factory.apply @, deps
    else
      factory
  
  loadModule = (name, type) ->
    if hasModule and typeof udefine.modules[type][name] is 'string'
      path = require 'path'
      prePath = do ->
        if udefine.paths[type].base

        else
          udefine.modules[platform][name] = undefined
      @

    remove: (name) ->
      for p in platforms
        if Object.hasOwnProperty.call udefine.modules[p], name
          delete udefine.modules[p][name]
      @

    get: (name) -> udefine.modules[platform][name]
    set: (name, value) ->
      if typeof value is 'object'
