Skip to content

Commit 9a240b0

Browse files
committed
Loader fixed
1 parent 7af2e37 commit 9a240b0

File tree

1 file changed

+72
-33
lines changed

1 file changed

+72
-33
lines changed

umd/src/System.ts

Lines changed: 72 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -98,38 +98,65 @@ class System {
9898

9999
module.loader = promiseDone;
100100

101-
const postResolve = new Promise<void>((resolve, reject) => {
102-
module.factory = () => {
103-
const r = module.setup((key, value) => {
104-
if (typeof key === "object") {
105-
merge(module.exports, key);
106-
return module.exports;
107-
}
108-
module.exports[key] = value;
109-
return value;
110-
}, module);
111-
112-
var list = module.dependencies;
113-
114-
const { setters } = r;
115-
for (let index = 0; index < list.length; index++) {
116-
const element = list[index];
117-
setters[index](element.getExports());
118-
}
119-
120-
const rp = r.execute() as any;
121-
if (rp?.then) {
122-
rp.then(resolve, reject);
123-
// rp.catch((error) => {
124-
// console.error(error);
125-
// });
126-
} else {
127-
resolve();
128-
}
129-
101+
const r = module.setup((key, value) => {
102+
if (typeof key === "object") {
103+
merge(module.exports, key);
130104
return module.exports;
131-
};
132-
});
105+
}
106+
module.exports[key] = value;
107+
return value;
108+
}, module);
109+
110+
// var list = module.dependencies;
111+
112+
// const postResolve = new Promise<void>((resolve, reject) => {
113+
// module.factory = () => {
114+
// const r = module.setup((key, value) => {
115+
// if (typeof key === "object") {
116+
// merge(module.exports, key);
117+
// return module.exports;
118+
// }
119+
// module.exports[key] = value;
120+
// return value;
121+
// }, module);
122+
123+
// var list = module.dependencies;
124+
125+
// // wait here...
126+
// const ds = [];
127+
// for (const iterator of list) {
128+
// if (iterator.isResolved
129+
// // || iterator.ignoreModule === module
130+
// // || iterator === module.ignoreModule
131+
// || (iterator.importPromise && iterator.isDependentOn(module))) {
132+
// continue;
133+
// }
134+
// ds.push(this.import(iterator));
135+
// }
136+
137+
// Promise.all(ds).then(() => {
138+
139+
// const { setters } = r;
140+
// for (let index = 0; index < list.length; index++) {
141+
// const element = list[index];
142+
// setters[index](element.getExports());
143+
// }
144+
145+
// const rp = r.execute() as any;
146+
// if (rp?.then) {
147+
// rp.then(resolve, reject);
148+
// // rp.catch((error) => {
149+
// // console.error(error);
150+
// // });
151+
// } else {
152+
// resolve();
153+
// }
154+
// });
155+
156+
// return module.exports;
157+
158+
// };
159+
// });
133160

134161
module.resolver = async () => {
135162

@@ -144,9 +171,21 @@ class System {
144171
ds.push(this.import(iterator));
145172
}
146173
await Promise.all(ds);
147-
module.getExports();
148-
await postResolve;
174+
175+
const { setters } = r;
176+
var list = module.dependencies;
177+
for (let index = 0; index < list.length; index++) {
178+
const element = list[index];
179+
setters[index](element.getExports());
180+
}
181+
182+
const rp = r.execute() as any;
149183
module.isResolved = true;
184+
if (rp?.then) {
185+
await rp;
186+
}
187+
188+
module.getExports();
150189
if (module.postExports) {
151190
module.postExports();
152191
}

0 commit comments

Comments
 (0)