|
@@ -1954,36 +1954,62 @@ selector: "exportPackagePrologueOf:on:",
|
|
|
protocol: 'output',
|
|
|
fn: function (aPackage,aStream){
|
|
|
var self=this;
|
|
|
-var namedImports,anonImports,importVarNames,loadDependencies;
|
|
|
+var importsForOutput,loadDependencies,pragmaStart,pragmaEnd;
|
|
|
+function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
|
|
|
|
|
|
return $core.withContext(function($ctx1) {
|
|
|
|
|
|
-var $1,$5,$4,$3,$2,$6;
|
|
|
-namedImports=[];
|
|
|
-anonImports=[];
|
|
|
-importVarNames=[];
|
|
|
-$recv($recv(aPackage)._imports())._do_((function(each){
|
|
|
+var $1,$3,$2,$4,$6,$5,$7,$13,$12,$11,$10,$9,$8,$17,$16,$15,$14,$18;
|
|
|
+pragmaStart="";
|
|
|
+pragmaEnd="";
|
|
|
+importsForOutput=self._importsForOutput_(aPackage);
|
|
|
+loadDependencies=self._amdNamesOfPackages_($recv(aPackage)._loadDependencies());
|
|
|
+$1=$recv(importsForOutput)._value();
|
|
|
+
|
|
|
+$ctx1.sendIdx["value"]=1;
|
|
|
+
|
|
|
+$recv($1)._ifNotEmpty_((function(){
|
|
|
|
|
|
return $core.withContext(function($ctx2) {
|
|
|
|
|
|
-$1=$recv(each)._isString();
|
|
|
-if($core.assert($1)){
|
|
|
-return $recv(anonImports)._add_(each);
|
|
|
+$3=$recv($String())._lf();
|
|
|
|
|
|
-$ctx2.sendIdx["add:"]=1;
|
|
|
+$ctx2.sendIdx["lf"]=1;
|
|
|
|
|
|
-} else {
|
|
|
-$recv(namedImports)._add_($recv(each)._value());
|
|
|
+$2=$recv($3).__comma("//>>excludeStart(\x22imports\x22, pragmas.excludeImports);");
|
|
|
|
|
|
-$ctx2.sendIdx["add:"]=2;
|
|
|
+$ctx2.sendIdx[","]=2;
|
|
|
|
|
|
-return $recv(importVarNames)._add_($recv(each)._key());
|
|
|
-};
|
|
|
+$4=$recv($String())._lf();
|
|
|
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
|
|
|
+$ctx2.sendIdx["lf"]=2;
|
|
|
+
|
|
|
+pragmaStart=$recv($2).__comma($4);
|
|
|
+
|
|
|
+$ctx2.sendIdx[","]=1;
|
|
|
+
|
|
|
+pragmaStart;
|
|
|
+$6=$recv($String())._lf();
|
|
|
+
|
|
|
+$ctx2.sendIdx["lf"]=3;
|
|
|
+
|
|
|
+$5=$recv($6).__comma("//>>excludeEnd(\x22imports\x22);");
|
|
|
+
|
|
|
+$ctx2.sendIdx[","]=4;
|
|
|
+
|
|
|
+$7=$recv($String())._lf();
|
|
|
+
|
|
|
+$ctx2.sendIdx["lf"]=4;
|
|
|
+
|
|
|
+pragmaEnd=$recv($5).__comma($7);
|
|
|
+
|
|
|
+$ctx2.sendIdx[","]=3;
|
|
|
+
|
|
|
+return pragmaEnd;
|
|
|
+
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
|
|
|
|
|
|
}));
|
|
|
-loadDependencies=self._amdNamesOfPackages_($recv(aPackage)._loadDependencies());
|
|
|
$recv(aStream)._nextPutAll_("define(\x22");
|
|
|
|
|
|
$ctx1.sendIdx["nextPutAll:"]=1;
|
|
@@ -2004,20 +2030,28 @@ $recv(aStream)._nextPutAll_("\x22, ");
|
|
|
|
|
|
$ctx1.sendIdx["nextPutAll:"]=5;
|
|
|
|
|
|
-$5=["amber/boot"].__comma(namedImports);
|
|
|
+$13=["amber/boot", ":1:"].__comma($recv(importsForOutput)._value());
|
|
|
|
|
|
-$ctx1.sendIdx[","]=3;
|
|
|
+$ctx1.sendIdx[","]=7;
|
|
|
|
|
|
-$4=$recv($5).__comma(anonImports);
|
|
|
+$12=$recv($13).__comma([":2:"]);
|
|
|
|
|
|
-$ctx1.sendIdx[","]=2;
|
|
|
+$ctx1.sendIdx[","]=6;
|
|
|
|
|
|
-$3=$recv($4).__comma(loadDependencies);
|
|
|
+$11=$recv($12).__comma(loadDependencies);
|
|
|
|
|
|
-$ctx1.sendIdx[","]=1;
|
|
|
+$ctx1.sendIdx[","]=5;
|
|
|
|
|
|
-$2=$recv($3)._asJavascript();
|
|
|
-$recv(aStream)._nextPutAll_($2);
|
|
|
+$10=$recv($11)._asJavascript();
|
|
|
+$9=$recv($10)._replace_with_(",\x5cs*[\x22']:1:[\x22']",pragmaStart);
|
|
|
+
|
|
|
+$ctx1.sendIdx["replace:with:"]=2;
|
|
|
+
|
|
|
+$8=$recv($9)._replace_with_(",\x5cs*[\x22']:2:[\x22']",pragmaEnd);
|
|
|
+
|
|
|
+$ctx1.sendIdx["replace:with:"]=1;
|
|
|
+
|
|
|
+$recv(aStream)._nextPutAll_($8);
|
|
|
|
|
|
$ctx1.sendIdx["nextPutAll:"]=6;
|
|
|
|
|
@@ -2025,7 +2059,17 @@ $recv(aStream)._nextPutAll_(", function(");
|
|
|
|
|
|
$ctx1.sendIdx["nextPutAll:"]=7;
|
|
|
|
|
|
-$recv(aStream)._nextPutAll_($recv(["$boot"].__comma(importVarNames))._join_(","));
|
|
|
+$17=$recv(["$boot", ":1:"].__comma($recv(importsForOutput)._key())).__comma([":2:"]);
|
|
|
+
|
|
|
+$ctx1.sendIdx[","]=8;
|
|
|
+
|
|
|
+$16=$recv($17)._join_(",");
|
|
|
+$15=$recv($16)._replace_with_(",\x5cs*:1:",pragmaStart);
|
|
|
+$14=$recv($15)._replace_with_(",\x5cs*:2:",pragmaEnd);
|
|
|
+
|
|
|
+$ctx1.sendIdx["replace:with:"]=3;
|
|
|
+
|
|
|
+$recv(aStream)._nextPutAll_($14);
|
|
|
|
|
|
$ctx1.sendIdx["nextPutAll:"]=8;
|
|
|
|
|
@@ -2035,21 +2079,71 @@ $ctx1.sendIdx["nextPutAll:"]=9;
|
|
|
|
|
|
$recv(aStream)._lf();
|
|
|
|
|
|
-$ctx1.sendIdx["lf"]=1;
|
|
|
+$ctx1.sendIdx["lf"]=5;
|
|
|
|
|
|
$recv(aStream)._nextPutAll_("var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;");
|
|
|
-$6=$recv(aStream)._lf();
|
|
|
+$18=$recv(aStream)._lf();
|
|
|
return self;
|
|
|
|
|
|
-}, function($ctx1) {$ctx1.fill(self,"exportPackagePrologueOf:on:",{aPackage:aPackage,aStream:aStream,namedImports:namedImports,anonImports:anonImports,importVarNames:importVarNames,loadDependencies:loadDependencies},$globals.AmdExporter)});
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"exportPackagePrologueOf:on:",{aPackage:aPackage,aStream:aStream,importsForOutput:importsForOutput,loadDependencies:loadDependencies,pragmaStart:pragmaStart,pragmaEnd:pragmaEnd},$globals.AmdExporter)});
|
|
|
|
|
|
},
|
|
|
|
|
|
args: ["aPackage", "aStream"],
|
|
|
-source: "exportPackagePrologueOf: aPackage on: aStream\x0a\x09| namedImports anonImports importVarNames loadDependencies |\x0a\x09namedImports := #().\x0a\x09anonImports := #().\x0a\x09importVarNames := #().\x0a\x09aPackage imports do: [ :each | each isString\x0a\x09\x09ifTrue: [ anonImports add: each ]\x0a\x09\x09ifFalse: [ namedImports add: each value.\x0a\x09\x09\x09importVarNames add: each key ]].\x0a\x09loadDependencies := self amdNamesOfPackages: aPackage loadDependencies.\x0a\x09aStream\x0a\x09\x09nextPutAll: 'define(\x22';\x0a\x09\x09nextPutAll: (self amdNamespaceOfPackage: aPackage);\x0a\x09\x09nextPutAll: '/'; \x0a\x09\x09nextPutAll: aPackage name;\x0a\x09\x09nextPutAll: '\x22, ';\x0a\x09\x09nextPutAll: (#('amber/boot'), namedImports, anonImports, loadDependencies) asJavascript;\x0a\x09\x09nextPutAll: ', function(';\x0a\x09\x09nextPutAll: (#('$boot'), importVarNames join: ',');\x0a\x09\x09nextPutAll: '){';\x0a\x09\x09lf;\x0a\x09\x09nextPutAll: 'var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;';\x0a\x09\x09lf",
|
|
|
+source: "exportPackagePrologueOf: aPackage on: aStream\x0a\x09| importsForOutput loadDependencies pragmaStart pragmaEnd |\x0a\x09pragmaStart := ''.\x0a\x09pragmaEnd := ''.\x0a\x09importsForOutput := self importsForOutput: aPackage.\x0a\x09loadDependencies := self amdNamesOfPackages: aPackage loadDependencies.\x0a\x09importsForOutput value ifNotEmpty: [\x0a\x09\x09pragmaStart := String lf, '//>>excludeStart(\x22imports\x22, pragmas.excludeImports);', String lf.\x0a\x09\x09pragmaEnd := String lf, '//>>excludeEnd(\x22imports\x22);', String lf ].\x0a\x09aStream\x0a\x09\x09nextPutAll: 'define(\x22';\x0a\x09\x09nextPutAll: (self amdNamespaceOfPackage: aPackage);\x0a\x09\x09nextPutAll: '/'; \x0a\x09\x09nextPutAll: aPackage name;\x0a\x09\x09nextPutAll: '\x22, ';\x0a\x09\x09nextPutAll: (((\x0a\x09\x09\x09(#('amber/boot' ':1:'), importsForOutput value, #(':2:'), loadDependencies) asJavascript)\x0a\x09\x09\x09replace: ',\x5cs*[\x22'']:1:[\x22'']' with: pragmaStart) replace: ',\x5cs*[\x22'']:2:[\x22'']' with: pragmaEnd);\x0a\x09\x09nextPutAll: ', function(';\x0a\x09\x09nextPutAll: (((\x0a\x09\x09\x09(#('$boot' ':1:'), importsForOutput key, #(':2:')) join: ',')\x0a\x09\x09\x09replace: ',\x5cs*:1:' with: pragmaStart) replace: ',\x5cs*:2:' with: pragmaEnd);\x0a\x09\x09nextPutAll: '){';\x0a\x09\x09lf;\x0a\x09\x09nextPutAll: 'var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;';\x0a\x09\x09lf",
|
|
|
+referencedClasses: ["String"],
|
|
|
+
|
|
|
+messageSends: ["importsForOutput:", "amdNamesOfPackages:", "loadDependencies", "ifNotEmpty:", "value", ",", "lf", "nextPutAll:", "amdNamespaceOfPackage:", "name", "replace:with:", "asJavascript", "join:", "key"]
|
|
|
+}),
|
|
|
+$globals.AmdExporter);
|
|
|
+
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "importsForOutput:",
|
|
|
+protocol: 'private',
|
|
|
+fn: function (aPackage){
|
|
|
+var self=this;
|
|
|
+var namedImports,anonImports,importVarNames;
|
|
|
+
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+
|
|
|
+var $1,$2;
|
|
|
+namedImports=[];
|
|
|
+anonImports=[];
|
|
|
+importVarNames=[];
|
|
|
+$recv($recv(aPackage)._imports())._do_((function(each){
|
|
|
+
|
|
|
+return $core.withContext(function($ctx2) {
|
|
|
+
|
|
|
+$1=$recv(each)._isString();
|
|
|
+if($core.assert($1)){
|
|
|
+return $recv(anonImports)._add_(each);
|
|
|
+
|
|
|
+$ctx2.sendIdx["add:"]=1;
|
|
|
+
|
|
|
+} else {
|
|
|
+$recv(namedImports)._add_($recv(each)._value());
|
|
|
+
|
|
|
+$ctx2.sendIdx["add:"]=2;
|
|
|
+
|
|
|
+return $recv(importVarNames)._add_($recv(each)._key());
|
|
|
+};
|
|
|
+
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
|
|
|
+
|
|
|
+}));
|
|
|
+$2=$recv(importVarNames).__minus_gt($recv(namedImports).__comma(anonImports));
|
|
|
+return $2;
|
|
|
+
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"importsForOutput:",{aPackage:aPackage,namedImports:namedImports,anonImports:anonImports,importVarNames:importVarNames},$globals.AmdExporter)});
|
|
|
+
|
|
|
+},
|
|
|
+
|
|
|
+args: ["aPackage"],
|
|
|
+source: "importsForOutput: aPackage\x0a\x09\x22Returns an association where key is list of import variables\x0a\x09and value is list of external dependencies, with ones imported as variables\x0a\x09put at the beginning with same order as is in key.\x0a\x09\x0a\x09For example imports:{'jQuery'->'jquery'. 'bootstrap'} would yield\x0a\x09#('jQuery') -> #('jquery' 'bootstrap')\x22\x0a\x09| namedImports anonImports importVarNames |\x0a\x09namedImports := #().\x0a\x09anonImports := #().\x0a\x09importVarNames := #().\x0a\x09aPackage imports do: [ :each | each isString\x0a\x09\x09ifTrue: [ anonImports add: each ]\x0a\x09\x09ifFalse: [ namedImports add: each value.\x0a\x09\x09\x09importVarNames add: each key ]].\x0a\x09^ importVarNames -> (namedImports, anonImports)",
|
|
|
referencedClasses: [],
|
|
|
|
|
|
-messageSends: ["do:", "imports", "ifTrue:ifFalse:", "isString", "add:", "value", "key", "amdNamesOfPackages:", "loadDependencies", "nextPutAll:", "amdNamespaceOfPackage:", "name", "asJavascript", ",", "join:", "lf"]
|
|
|
+messageSends: ["do:", "imports", "ifTrue:ifFalse:", "isString", "add:", "value", "key", "->", ","]
|
|
|
}),
|
|
|
$globals.AmdExporter);
|
|
|
|