@siren-js/client
Version:
Siren API client library
20 lines (19 loc) • 538 B
JavaScript
import { DefaultSirenElementVisitor } from '../visitor';
/**
* Default {@linkcode SelectionPolicy} that collects all the {@linkcode Link}s and
* {@linkcode EmbeddedLink}s in an {@linkcode Entity}
*/
export class DefaultSelectionPolicy extends DefaultSirenElementVisitor {
urls = [];
visitEmbeddedLink(link) {
this.urls.push(link);
}
visitLink(link) {
this.urls.push(link);
}
async selectFrom(entity) {
this.urls = [];
await entity.accept(this);
return this.urls;
}
}