mirror of
https://github.com/systemjs/systemjs.git
synced 2026-02-01 15:59:54 +00:00
parent
cc44badb95
commit
984dcd1c0f
16
docs/api.md
16
docs/api.md
@ -87,3 +87,19 @@ System.set('http://site.com/normalized/module/name.js', {
|
||||
`module` is an object of names to set as the named exports.
|
||||
|
||||
If `module` is an existing Module Namespace, it will be used by reference.
|
||||
|
||||
#### System.entries() -> Array
|
||||
Type: `Function`
|
||||
|
||||
Allows you to retrieve all modules in the System registry. Each value will be an array with two values: a key and the module. Also available
|
||||
at `System[Symbol.iterator]`.
|
||||
|
||||
```js
|
||||
System.entries().forEach((key, value) => {
|
||||
console.log(entry); // ['http://localhost/path-to-file.js', {exportName: 'exportedValue'}]
|
||||
});
|
||||
|
||||
for (let entry of System) {
|
||||
console.log(entry); // ['http://localhost/path-to-file.js', {exportName: 'exportedValue'}]
|
||||
}
|
||||
```
|
||||
@ -58,4 +58,25 @@ systemJSPrototype.delete = function (id) {
|
||||
depLoad.i.splice(importerIndex, 1);
|
||||
});
|
||||
return delete this[REGISTRY][id];
|
||||
};
|
||||
};
|
||||
|
||||
systemJSPrototype.entries = function () {
|
||||
const registry = this[REGISTRY];
|
||||
return Object.keys(registry).map(function (key) {
|
||||
return [key, registry[key].n];
|
||||
});
|
||||
}
|
||||
|
||||
if (typeof Symbol !== 'undefined') {
|
||||
systemJSPrototype[Symbol.iterator] = function () {
|
||||
const registry = this[REGISTRY];
|
||||
const keys = Object.keys(registry);
|
||||
let index = 0;
|
||||
return {
|
||||
next() {
|
||||
const key = keys[index++];
|
||||
return { done: index > keys.length, value: key && [key, registry[key].n] };
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -137,6 +137,27 @@ describe('Core API', function () {
|
||||
assert(resolveReturnValue instanceof Promise);
|
||||
assert.equal(resolvedX, 'http://x');
|
||||
});
|
||||
|
||||
it('Supports iteration', async function () {
|
||||
loader.set('h', {a: 'b'});
|
||||
await loader.import('h');
|
||||
|
||||
let foundH = false;
|
||||
for (let entry of loader) {
|
||||
if (entry[0] === 'h' && entry[1].a === 'b') {
|
||||
foundH = true;
|
||||
}
|
||||
}
|
||||
|
||||
assert(foundH);
|
||||
});
|
||||
|
||||
it('Supports System.entries', async function () {
|
||||
loader.set('i', {a: 'b'});
|
||||
await loader.import('i');
|
||||
|
||||
assert(loader.entries().some(entry => entry[0] === 'i' && entry[1].a === 'b'));
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user