mirror of https://github.com/webpack/webpack.git
wip on fakeSystem
This commit is contained in:
parent
88f4d1fe0b
commit
aabcb3ceac
|
|
@ -32,19 +32,6 @@ module.exports = {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
scope.DEF = {
|
|
||||||
get(module) {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
setTimeout(() => {
|
|
||||||
resolve(() => ({
|
|
||||||
__esModule: true,
|
|
||||||
module,
|
|
||||||
default: "def"
|
|
||||||
}));
|
|
||||||
}, 100);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
},
|
},
|
||||||
afterExecute: () => {
|
afterExecute: () => {
|
||||||
System.execute("(anonym)");
|
System.execute("(anonym)");
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,15 @@ const System = {
|
||||||
fn = deps;
|
fn = deps;
|
||||||
deps = [];
|
deps = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let entry = {
|
||||||
|
name,
|
||||||
|
deps,
|
||||||
|
fn,
|
||||||
|
executed: false,
|
||||||
|
exports: undefined
|
||||||
|
};
|
||||||
|
|
||||||
const dynamicExport = result => {
|
const dynamicExport = result => {
|
||||||
if (System.registry[name] !== entry) {
|
if (System.registry[name] !== entry) {
|
||||||
throw new Error(`Module ${name} calls dynamicExport too late`);
|
throw new Error(`Module ${name} calls dynamicExport too late`);
|
||||||
|
|
@ -26,30 +35,25 @@ const System = {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (name in System.registry) {
|
if (name in System.registry) {
|
||||||
throw new Error(`Module ${name} is already registered`);
|
throw new Error(`Module ${name} is already registered`);
|
||||||
}
|
}
|
||||||
const mod = fn(dynamicExport, systemContext);
|
|
||||||
|
System.registry[name] = entry;
|
||||||
|
entry.mod = fn(dynamicExport, systemContext);
|
||||||
if (deps.length > 0) {
|
if (deps.length > 0) {
|
||||||
if (!Array.isArray(mod.setters)) {
|
if (!Array.isArray(entry.mod.setters)) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Module ${name} must have setters, because it has dependencies`
|
`Module ${name} must have setters, because it has dependencies`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (mod.setters.length !== deps.length) {
|
if (entry.mod.setters.length !== deps.length) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Module ${name} has incorrect number of setters for the dependencies`
|
`Module ${name} has incorrect number of setters for the dependencies`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const entry = {
|
|
||||||
name,
|
|
||||||
deps,
|
|
||||||
fn,
|
|
||||||
mod,
|
|
||||||
executed: false,
|
|
||||||
exports: undefined
|
|
||||||
};
|
|
||||||
System.registry[name] = entry;
|
System.registry[name] = entry;
|
||||||
},
|
},
|
||||||
registry: undefined,
|
registry: undefined,
|
||||||
|
|
@ -72,6 +76,7 @@ const System = {
|
||||||
},
|
},
|
||||||
ensureExecuted: name => {
|
ensureExecuted: name => {
|
||||||
const m = System.registry[name];
|
const m = System.registry[name];
|
||||||
|
console.log(m);
|
||||||
if (!m) throw new Error(`Module ${name} not registered`);
|
if (!m) throw new Error(`Module ${name} not registered`);
|
||||||
if (!m.executed) {
|
if (!m.executed) {
|
||||||
m.executed = true;
|
m.executed = true;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue