OpenVeo server API for plugins

API Docs for: 4.3.1
Show:

File: lib/providers/Provider.js

'use strict';

/**
 * @module providers
 */

var Storage = process.requireApi('lib/storages/Storage.js');

/**
 * Defines the base provider for all providers.
 *
 * A provider manages resources from its associated storage.
 *
 * @class Provider
 * @constructor
 * @param {Storage} storage The storage to use to store provider resources
 * @throws {TypeError} If storage is not valid
 */
function Provider(storage) {
  Object.defineProperties(this, {

    /**
     * The provider storage.
     *
     * @property storage
     * @type Storage
     * @final
     */
    storage: {value: storage}

  });

  if (!(this.storage instanceof Storage))
    throw new TypeError('storage must be of type Storage');
}

module.exports = Provider;