|
@@ -1,16 +1,43 @@
|
|
|
var gutil = require('gulp-util');
|
|
|
var through = require('through2');
|
|
|
|
|
|
-module.exports = function (varName) {
|
|
|
+module.exports = function (varName, subModule) {
|
|
|
return through.obj(function (file, enc, cb) {
|
|
|
|
|
|
- var moduleExportsAddition =
|
|
|
- '\nif (((typeof window != "undefined" && window.module) || (typeof module != "undefined")) && typeof module.exports != "undefined") {\n' +
|
|
|
- ' module.exports = ' + varName + ';\n' +
|
|
|
- '};\n';
|
|
|
+ var optionalRequire = 'var BABYLON = BABYLON || (typeof require !== \'undefined\' && require("babylonjs"));\n'
|
|
|
+
|
|
|
+ var moduleExportsAddition = `(function universalModuleDefinition(root, factory) {
|
|
|
+ if(typeof exports === 'object' && typeof module === 'object')
|
|
|
+ module.exports = factory();
|
|
|
+ else if(typeof define === 'function' && define.amd)
|
|
|
+ define([], factory);
|
|
|
+ else if(typeof exports === 'object')
|
|
|
+ exports["BABYLON"] = factory();
|
|
|
+ else
|
|
|
+ root["BABYLON"] = factory();
|
|
|
+ })(this, function() {
|
|
|
+ return BABYLON;
|
|
|
+ });
|
|
|
+ `;
|
|
|
+
|
|
|
+ function moduleExportAddition(varName) {
|
|
|
+ return `(function universalModuleDefinition(root, factory) {
|
|
|
+ if(typeof exports === 'object' && typeof module === 'object')
|
|
|
+ module.exports = factory();
|
|
|
+ else if(typeof define === 'function' && define.amd)
|
|
|
+ define([], factory);
|
|
|
+ else if(typeof exports === 'object')
|
|
|
+ exports["${varName}"] = factory();
|
|
|
+ else
|
|
|
+ root["BABYLON"]${subModule ? '["' + varName + '"]' : ''} = factory();
|
|
|
+ })(this, function() {
|
|
|
+ return BABYLON${subModule ? '.' + varName : ''};
|
|
|
+ });
|
|
|
+ `;
|
|
|
+ }
|
|
|
|
|
|
var extendsAddition =
|
|
|
- `var __extends = (this && this.__extends) || (function () {
|
|
|
+ `var __extends = (this && this.__extends) || (function () {
|
|
|
var extendStatics = Object.setPrototypeOf ||
|
|
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
|
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
@@ -23,12 +50,12 @@ module.exports = function (varName) {
|
|
|
`;
|
|
|
|
|
|
var decorateAddition =
|
|
|
- 'var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n' +
|
|
|
+ 'var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n' +
|
|
|
'var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n' +
|
|
|
'if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n' +
|
|
|
'else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n' +
|
|
|
'return c > 3 && r && Object.defineProperty(target, key, r), r;\n' +
|
|
|
- '};\n';
|
|
|
+ '};\n';
|
|
|
|
|
|
if (file.isNull()) {
|
|
|
cb(null, file);
|
|
@@ -41,7 +68,8 @@ module.exports = function (varName) {
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
- file.contents = new Buffer(decorateAddition.concat(new Buffer(extendsAddition.concat(String(file.contents)).concat(moduleExportsAddition))));
|
|
|
+ let pretext = subModule ? optionalRequire : '';
|
|
|
+ file.contents = new Buffer(pretext.concat(decorateAddition).concat(new Buffer(extendsAddition.concat(String(file.contents)).concat(moduleExportAddition(varName)))));
|
|
|
this.push(file);
|
|
|
|
|
|
} catch (err) {
|