Home Reference Source

node-collections-boilerplate-nahid/search/NoSearch.js

"use strict";

const Search = require('./Search');

/**
 * Provides no search capability.
 * A list of all ids are always returned
 */
class NoSearch extends Search
{
  /**
   * @override
   */
  async initialise(searchMeta, records)
  {
    /**
     * stored ids
     */
    this.ids = records.map(record => record[this.primaryKey]);
  }

  /**
   * @override
   */
  async createRecord(record)
  {
    this.ids.push(record[this.primaryKey]);
  }

  /**
   * @override
   */
  async updateRecord(record)
  {}

  /**
   * @override
   */
  async deleteRecord(record)
  {
    this.ids = this.ids.filter(id => id !== record[this.primaryKey]);
  }

  /**
   * @override
   */
  async searchRecords(query)
  {
    return this.ids.slice();
  }
}

module.exports = NoSearch;