AMD Module 1:
define("module-1", ["dep"], dep => ({
a: "foo",
b: dep,
}));
AMD Module 2:
define("module-2", ["module-1"], mod1 => ({
default: "x",
extra: mod1
}));
Now
load("module-2").then(mod2 => console.log(mod2)); // () => Promise.all(resolveDependencies(...)).then(deps => ...);