This package has been deprecated

Author message:

WARNING: This project has been renamed to @mondomob/gae-js-gae-search. Please install using the new package.

@dotrun/gae-js-gae-search
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

GAE JS STORAGE

SearchService implementation that uses the GAE Search API via the https://github.com/mondo-mob/gae-search-service GAE Search Service proxy.

This allows you to create data repositories that automatically index the data on mutation and then search against your stored entities.

Installation

npm install @dotrun/gae-js-storage

Components

GaeSearchService

Step 1: Initialise and set GaeSearchService as the search provider

// Add module config schema to your app config schema
const configSchema = t.intersection([
  gaeJsCoreConfigurationSchema,
  gaeJsGaeSearchConfigurationSchema,
  // Other module schemas
]);

// Add endpoint to your config file
{
  "searchServiceEndpoint": "https://my-search-service.appspot.com"
}

// Set search provider on app startup
searchProvider.set(new GaeSearchService());

Step 2. Define your repository by extending SearchableRepository and providing your index configuration

class MyUserRepository extends SearchableRepository<User> {
  constructor() {
    super(new FirestoreRepository<User>("my-users"), {
      indexName: "users",
      indexConfig: {
        // Use true to index the property as-is from the object
        firstName: true,
        // Or pass a function to run custom logic first on the data first
        fullName: (value) => `${value.firstName} ${value.lastName}`,
      },
    });
  }
}

Step 3. Use the repository

const userRepository = new MyUserRepository();

await userRepsitory.save({id: "123", firstName: "App", lastName: "Engine"});

const results = await userRepository.search({ firstName: "App"});

Readme

Keywords

none

Package Sidebar

Install

npm i @dotrun/gae-js-gae-search

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

14.2 kB

Total Files

20

Last publish

Collaborators

  • mlevett