Backend

by Artem

JavaScript

'use strict';

class Person {}

class Book {}


class Backend {
  entityClasses = new Map();
  getAll(EntityClass) {
  	return this.entityClasses.get(EntityClass).getAll(this);
  }
  registerEntityClass(EntityClass, config) {
    this.entityClasses.set(EntityClass, config);
  }

  get(url) {
  	// return fetch(url, { method: 'GET' });
    console.log('Getting ', url, '...');
  }
}

const backend = new Backend();


backend.registerEntityClass(Person, {
  getAll: backend => {
    return backend.get('/people')
  }
});

backend.registerEntityClass(Book, {
  getAll: backend => {
    return backend.get('/books')
  }
});

backend.getAll(Person);
backend.getAll(Book);