(function (root, factory) {
  if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module unless amdModuleId is set
    define('{{amdModuleId}}', [{{{amdDependencies.wrapped}}}], function ({{{dependencies}}}) {
      return (root['{{objectToExport}}'] = factory({{dependencies}}));
    });
  } else if (typeof exports === 'object') {
    // Node. Does not work with strict CommonJS, but
    // only CommonJS-like environments that support module.exports,
    // like Node.
    module.exports = factory({{{cjsDependencies.wrapped}}});
  } else {
    root['{{globalAlias}}'] = factory({{{globalDependencies.wrapped}}});
  }
}(this, function ({{dependencies}}) {

{{{code}}}
{{#if objectToExport}}
return {{objectToExport}};
{{/if}}

}));
