@@ -17,74 +17,95 @@ var define: IDefine = (
1717
1818 const loader = AmdLoader . instance ;
1919
20- function bindFactory ( module : Module , requireList : string [ ] , fx : IAnyFunction ) {
21- if ( module . factory ) {
22- return ;
23- }
24- module . dependencies = [ ] ;
25- let requires : string [ ] = requireList ;
26- requires = requireList ;
27-
28- const args : any [ ] = [ ] ;
29- for ( const s of requires ) {
30- if ( s === "require" ) {
31- args . push ( module . require ) ;
32- continue ;
33- }
34- if ( s === "exports" ) {
35- args . push ( module . emptyExports ) ;
36- continue ;
37- }
38- if ( / ^ g l o b a l / . test ( s ) ) {
39- args . push ( loader . get ( s ) . exports ) ;
40- }
41- const name : string = loader . resolveRelativePath ( s , module . name ) ;
42- const child : Module = loader . get ( name ) ;
43- module . addDependency ( child ) ;
44- }
45- module . factory = ( ) => {
46- return fx . apply ( module , args ) ;
47- } ;
48- }
20+ const { currentScript } = document ;
4921
50- if ( nested ) {
51- // this means this was executed as packed modules..
52- // first parameter is name, second is array and third is factory...
22+ let module : Module ;
5323
54- const name = requiresOrFactory as unknown as string ;
55- const rList = factory as unknown as string [ ] ;
56- const f = nested as unknown as ( ) => void ;
24+ if ( currentScript ) {
5725
58- const module = AmdLoader . instance . get ( name ) ;
26+ module = currentScript [ currentModuleSymbol ] ;
27+ if ( module ) {
28+ AmdLoader . current = module ;
29+ }
30+ }
5931
60- bindFactory ( module , rList , f ) ;
32+ if ( ! module ) {
33+ factory ( ) ;
6134 return ;
6235 }
6336
64- AmdLoader . instance . define = ( ) => {
37+ if ( module . factory ) {
38+ return ;
39+ }
40+ module . dependencies = [ ] ;
6541
66- if ( ! AmdLoader . current ) {
67- // dynamic loader
68- const amdModule = document . currentScript ?. [ currentModuleSymbol ] ;
42+ let requires = [ ] ;
6943
70- if ( amdModule ) {
71- AmdLoader . current = amdModule ;
72- }
73- }
44+ if ( typeof requiresOrFactory !== "function" ) {
45+ requires = requiresOrFactory ;
46+ } else {
47+ factory = requiresOrFactory ;
48+ }
7449
75- const current : Module = AmdLoader . current ;
76- if ( ! current ) {
77- return ;
50+ const args : any [ ] = [ ] ;
51+ for ( const s of requires ) {
52+ if ( s === "require" ) {
53+ args . push ( module . require ) ;
54+ continue ;
7855 }
79- if ( current . factory ) {
80- return ;
56+ if ( s === "exports" ) {
57+ args . push ( module . emptyExports ) ;
58+ continue ;
8159 }
82- if ( typeof requiresOrFactory === "function" ) {
83- bindFactory ( current , [ ] , requiresOrFactory ) ;
84- } else {
85- bindFactory ( current , requiresOrFactory , factory ) ;
60+ if ( / ^ g l o b a l / . test ( s ) ) {
61+ args . push ( loader . get ( s ) . exports ) ;
8662 }
63+ const name : string = loader . resolveRelativePath ( s , module . name ) ;
64+ const child : Module = loader . get ( name ) ;
65+ module . addDependency ( child ) ;
66+ }
67+ module . factory = ( ) => {
68+ return factory . apply ( module , args ) ;
8769 } ;
70+
71+ // if (nested) {
72+ // // this means this was executed as packed modules..
73+ // // first parameter is name, second is array and third is factory...
74+
75+ // const name = requiresOrFactory as unknown as string;
76+ // const rList = factory as unknown as string[];
77+ // const f = nested as unknown as () => void;
78+
79+ // const module = AmdLoader.instance.get(name);
80+
81+ // bindFactory(module, rList, f);
82+ // return;
83+ // }
84+
85+ // AmdLoader.instance.define = () => {
86+
87+ // if (!AmdLoader.current) {
88+ // // dynamic loader
89+ // const amdModule = document.currentScript?.[currentModuleSymbol];
90+
91+ // if (amdModule) {
92+ // AmdLoader.current = amdModule;
93+ // }
94+ // }
95+
96+ // const current: Module = AmdLoader.current;
97+ // if (!current) {
98+ // return;
99+ // }
100+ // if (current.factory) {
101+ // return;
102+ // }
103+ // if (typeof requiresOrFactory === "function") {
104+ // bindFactory(current, [], requiresOrFactory);
105+ // } else {
106+ // bindFactory(current, requiresOrFactory, factory);
107+ // }
108+ // };
88109} ;
89110
90111define . amd = { } ;
0 commit comments