recycleactor commited on
Commit
2288dcc
·
verified ·
1 Parent(s): 4aa94d5

Upload server.js

Browse files
Files changed (1) hide show
  1. server.js +29 -1
server.js CHANGED
@@ -115,6 +115,7 @@ function jsWrapper(serverBase, baseUrl, transpiledCode, needRegenerator) {
115
  safeBaseUrl +
116
  ';' +
117
  'var __es5_active=true;' +
 
118
  'function t(v){return (v===null||v===undefined)?\'\':String(v);}' +
119
  'function baseDir(u){u=t(u);u=u.replace(/[?#].*$/,"");return u.replace(/[^\\/]*$/,"");}' +
120
  'var __es5_base_dir=baseDir(__es5_base);' +
@@ -127,7 +128,7 @@ function jsWrapper(serverBase, baseUrl, transpiledCode, needRegenerator) {
127
  'function proxyRaw(u){var a=abs(u);if(!/^https?:\\/\\//i.test(a))return u;if(__es5_server&&a.indexOf(__es5_server)===-1){return __es5_server+"/r?url="+encodeURIComponent(a).replace(/%3A/gi, ":").replace(/%2F/gi, "/");}return a;}' +
128
  'function mapArr(items, fn){if(!items||!items.length)return items;for(var i=0;i<items.length;i++){items[i]=fn(items[i]);}return items;}' +
129
  'try{' +
130
- 'if(window.Lampa&&Lampa.Utils){' +
131
  'if(Lampa.Utils.putScriptAsync&&!Lampa.Utils.putScriptAsync.__es5_proxy){var o=Lampa.Utils.putScriptAsync;var w=function(items,complite,error,success,show_logs){try{items=mapArr(items,proxyJs);}catch(e){}return o.call(this,items,complite,error,success,show_logs);};w.__es5_proxy=1;Lampa.Utils.putScriptAsync=w;}' +
132
  'if(Lampa.Utils.putScript&&!Lampa.Utils.putScript.__es5_proxy){var o2=Lampa.Utils.putScript;var w2=function(items,complite,error,success,show_logs){try{items=mapArr(items,proxyJs);}catch(e){}return o2.call(this,items,complite,error,success,show_logs);};w2.__es5_proxy=1;Lampa.Utils.putScript=w2;}' +
133
  'if(Lampa.Utils.putStyle&&!Lampa.Utils.putStyle.__es5_proxy){var o3=Lampa.Utils.putStyle;var w3=function(items,complite,error){try{items=mapArr(items,proxyCss);}catch(e){}return o3.call(this,items,complite,error);};w3.__es5_proxy=1;Lampa.Utils.putStyle=w3;}' +
@@ -173,6 +174,33 @@ function jsWrapper(serverBase, baseUrl, transpiledCode, needRegenerator) {
173
  '};' +
174
  'return xhr;' +
175
  '};' +
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
  'try{' +
177
  'var __mock_script = document.createElement("script");' +
178
  '__mock_script.src = __es5_base;' +
 
115
  safeBaseUrl +
116
  ';' +
117
  'var __es5_active=true;' +
118
+ 'var Lampa=window.Lampa;' +
119
  'function t(v){return (v===null||v===undefined)?\'\':String(v);}' +
120
  'function baseDir(u){u=t(u);u=u.replace(/[?#].*$/,"");return u.replace(/[^\\/]*$/,"");}' +
121
  'var __es5_base_dir=baseDir(__es5_base);' +
 
128
  'function proxyRaw(u){var a=abs(u);if(!/^https?:\\/\\//i.test(a))return u;if(__es5_server&&a.indexOf(__es5_server)===-1){return __es5_server+"/r?url="+encodeURIComponent(a).replace(/%3A/gi, ":").replace(/%2F/gi, "/");}return a;}' +
129
  'function mapArr(items, fn){if(!items||!items.length)return items;for(var i=0;i<items.length;i++){items[i]=fn(items[i]);}return items;}' +
130
  'try{' +
131
+ 'if(Lampa&&Lampa.Utils){' +
132
  'if(Lampa.Utils.putScriptAsync&&!Lampa.Utils.putScriptAsync.__es5_proxy){var o=Lampa.Utils.putScriptAsync;var w=function(items,complite,error,success,show_logs){try{items=mapArr(items,proxyJs);}catch(e){}return o.call(this,items,complite,error,success,show_logs);};w.__es5_proxy=1;Lampa.Utils.putScriptAsync=w;}' +
133
  'if(Lampa.Utils.putScript&&!Lampa.Utils.putScript.__es5_proxy){var o2=Lampa.Utils.putScript;var w2=function(items,complite,error,success,show_logs){try{items=mapArr(items,proxyJs);}catch(e){}return o2.call(this,items,complite,error,success,show_logs);};w2.__es5_proxy=1;Lampa.Utils.putScript=w2;}' +
134
  'if(Lampa.Utils.putStyle&&!Lampa.Utils.putStyle.__es5_proxy){var o3=Lampa.Utils.putStyle;var w3=function(items,complite,error){try{items=mapArr(items,proxyCss);}catch(e){}return o3.call(this,items,complite,error);};w3.__es5_proxy=1;Lampa.Utils.putStyle=w3;}' +
 
174
  '};' +
175
  'return xhr;' +
176
  '};' +
177
+ // Локальный шим Lampa.Reguest — только для кода этого плагина.
178
+ // network.silent(url,...) / network["native"](url,...) — основной способ,
179
+ // которым плагины (в т.ч. этот) реально ходят за данными, минуя fetch/XHR напрямую.
180
+ 'try{' +
181
+ 'if(Lampa&&Lampa.Reguest){' +
182
+ 'var _RealReguest=Lampa.Reguest;' +
183
+ 'var _reguestMethods=["silent","native","send","get","post","ajax"];' +
184
+ 'var ReguestShim=function(){' +
185
+ 'var inst=new _RealReguest();' +
186
+ 'for(var i=0;i<_reguestMethods.length;i++){' +
187
+ '(function(mName){' +
188
+ 'var orig=inst[mName];' +
189
+ 'if(typeof orig==="function"){' +
190
+ 'inst[mName]=function(url){' +
191
+ 'var args=Array.prototype.slice.call(arguments);' +
192
+ 'try{args[0]=proxyRaw(url);}catch(e){}' +
193
+ 'return orig.apply(inst,args);' +
194
+ '};' +
195
+ '}' +
196
+ '})(_reguestMethods[i]);' +
197
+ '}' +
198
+ 'return inst;' +
199
+ '};' +
200
+ 'Lampa=Object.create(Lampa);' +
201
+ 'Lampa.Reguest=ReguestShim;' +
202
+ '}' +
203
+ '}catch(e){}' +
204
  'try{' +
205
  'var __mock_script = document.createElement("script");' +
206
  '__mock_script.src = __es5_base;' +