Class

RawIconRepository

RawIconRepository()

Raw Icon Repository before mixin application.

Provides basic icon data access methods. Extended with cursor pagination via withCursorPagination mixin at export.

Constructor

# new RawIconRepository()

View Source src/products/icons/IconRepository.js, line 17

Methods

# protected _applyFilters(query, filters) → {Object}

Apply icon-specific filters to cursor pagination query.

Handles search facets including:

  • price (free, premium, all)
  • tagIds (array of tag IDs)
  • styleId (design style)
  • userId (creator filter)
  • setId (icon set filter)
  • familyId (family of sets)
  • searchTerm (text search on name)
  • iconIds (specific icon IDs, e.g. from Elasticsearch - unordered)
  • iconIdsOrder (ordered icon IDs from Elasticsearch for relevance sorting)
  • isActive (publication status)
  • isDeleted (deletion status)
Parameters:
Name Type Description
query Object

Objection.js query builder

filters Object

Filter criteria

View Source src/products/icons/IconRepository.js, line 104

Modified query

Object
Examples
// Called internally by cursorPaginate()
query = this._applyFilters(query, {
  price: 'free',
  tagIds: [1, 2, 3],
  styleId: 5
});
// With Elasticsearch relevance (ordered IDs)
const esRankedIds = [1001, 2003, 5005, 3002];
query = this._applyFilters(query, {
  iconIdsOrder: esRankedIds,  // Elasticsearch ranked order
  price: 'free'
});

# findAllActive(options) → {Promise.<Array.<IconEntity>>}

Find all active (published) icons.

Parameters:
Name Type Description
options Object

Query options

View Source src/products/icons/IconRepository.js, line 60

Promise.<Array.<IconEntity>>

# findBySetId(setId, options) → {Promise.<Array.<IconEntity>>}

Find all icons in a set.

Parameters:
Name Type Description
setId number

Set ID

options Object

Query options

View Source src/products/icons/IconRepository.js, line 47

Promise.<Array.<IconEntity>>

# findByUniqueId(uniqueId, options) → {Promise.<(IconEntity|null)>}

Find icon by unique identifier.

Parameters:
Name Type Description
uniqueId string

Icon unique ID

options Object

Query options

View Source src/products/icons/IconRepository.js, line 33

Promise.<(IconEntity|null)>