UNPKG

comic-vine-sdk

Version:

A JS/TS client for the Comic Vine API

16 lines 2.63 kB
import * as resources from './resource-list.js'; export class ResourceFactory { constructor(httpClient, urlBuilder) { this.httpClient = httpClient; this.urlBuilder = urlBuilder; this._resources = { ...resources }; } create(name) { if (!this._resources[name]) { throw new Error(`${name} resource not implemented`); } const ResourceClass = this._resources[name]; return new ResourceClass(this.httpClient, this.urlBuilder); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBR2hELE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQ1UsVUFBc0IsRUFDdEIsVUFBc0I7UUFEdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSnhCLGVBQVUsR0FBRyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFLbkMsQ0FBQztJQUtHLE1BQU0sQ0FDWCxJQUFrQztRQUVsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLDJCQUEyQixDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUcrQixDQUFDO1FBQzFFLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcmVzb3VyY2VzIGZyb20gJy4vcmVzb3VyY2UtbGlzdC5qcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBVcmxCdWlsZGVyIH0gZnJvbSAnLi4vdHlwZXMvaW5kZXguanMnO1xuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VGYWN0b3J5IHtcbiAgcHJpdmF0ZSBfcmVzb3VyY2VzID0geyAuLi5yZXNvdXJjZXMgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSB1cmxCdWlsZGVyOiBVcmxCdWlsZGVyLFxuICApIHt9XG5cbiAgcHVibGljIGNyZWF0ZTxUIGV4dGVuZHMga2V5b2YgdHlwZW9mIHRoaXMuX3Jlc291cmNlcz4oXG4gICAgbmFtZTogVCxcbiAgKTogSW5zdGFuY2VUeXBlPCh0eXBlb2YgdGhpcy5fcmVzb3VyY2VzKVtUXT47XG4gIHB1YmxpYyBjcmVhdGUoXG4gICAgbmFtZToga2V5b2YgdHlwZW9mIHRoaXMuX3Jlc291cmNlcyxcbiAgKTogSW5zdGFuY2VUeXBlPCh0eXBlb2YgdGhpcy5fcmVzb3VyY2VzKVtrZXlvZiB0eXBlb2YgdGhpcy5fcmVzb3VyY2VzXT4ge1xuICAgIGlmICghdGhpcy5fcmVzb3VyY2VzW25hbWVdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bmFtZX0gcmVzb3VyY2Ugbm90IGltcGxlbWVudGVkYCk7XG4gICAgfVxuICAgIGNvbnN0IFJlc291cmNlQ2xhc3MgPSB0aGlzLl9yZXNvdXJjZXNbbmFtZV0gYXMgbmV3IChcbiAgICAgIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICB1cmxCdWlsZGVyOiBVcmxCdWlsZGVyLFxuICAgICkgPT4gSW5zdGFuY2VUeXBlPCh0eXBlb2YgdGhpcy5fcmVzb3VyY2VzKVtrZXlvZiB0eXBlb2YgdGhpcy5fcmVzb3VyY2VzXT47XG4gICAgcmV0dXJuIG5ldyBSZXNvdXJjZUNsYXNzKHRoaXMuaHR0cENsaWVudCwgdGhpcy51cmxCdWlsZGVyKTtcbiAgfVxufVxuIl19