2.14.6. Custom adapters

GateIn uses the AMD format to adapt to the web. As a result, sometimes you can have to deal with included script that does not match with the self-executing function declaration format or the requirejs format expected by GateIn and is RequireJS integration. Custom code is required for adapting the script to the expected format. To provide this bit of flexibility, it is possible to declare an adapter that will wrap the adapted script.

The jQuery library is a good example on how a custom adapter is useful. Thanks to the adapter, you can reuse the jQuery without any change, ease the integration and maintain of this library in GateIn. jQuery uses the following constructor to define itself:

(function(window, undefined) {
})(window);

The main issue with this constructor is that it will bind jQuery to the window but most importantly it will not return any value as expected by the dependency system. Thanks to the custom adapter, you can integrate it trivially:


<module>
 <name>jquery</name>
 <script>
   <adapter>
     (function() {
       <include>/jquery.js</include>
       return jQuery.noConflict(true);
     })();
   </adapter>
 </script>
</module>

The adapter tag can contain mixed content and the include tag will perform a merge inclusion (as C language) of the original jQuery script in the resulting module:

define("SHARED/jquery", [], function() {
  return (function() {
    (function(window, undefined) {
    })(window);
   return jQuery.noConflict(true);
  })();
});
Copyright ©. All rights reserved. eXo Platform SAS
blog comments powered byDisqus