Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sequelastic

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sequelastic

bridge utility between sequelize-typescript and ElasticSearch

  • 0.0.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
24
Maintainers
1
Weekly downloads
 
Created
Source

Sequelastic

The first sequelize-typescript and ElasticSearch bridge tool

  • installation
  • usage
  • Sequelastic functions
  • Sequelastic types

installation

prerequisites:

in order to install sequelastic on your project just run:

npm install sequelastic

usage

first of all import and instantiate the utility:

import Sequelastic from "sequelastic";
import { model1, model2 } from "./sequelize-typescript-models";

const sequelastic = new Sequelastic({
  node: "https://elastiSearchSevice.example:9200",
  models: [model1, model2],
});

then sync your database with the elasticSearch service:

sequelastic
  .sync()
  .then((success) => {
    if (success) {
      console.log("Database synced correctly");
    } else {
      console.log("Something went wrong");
    }
  })
  .catch((err) => {
    console.error(err);
  });

now you are ready to search whatever you want with sequelastic:

sequelastic
  .search("foo", "bar", { fuzzy: true, fuzziness: "AUTO" })
  .then((results) => {
    console.log(results);
  })
  .catch((err) => {
    console.error(err);
  });

Sequelastic Functions

Constructor

create new Sequelastic instance

new Sequelastic(config: SequelasticContructorProps) => Sequelastic
propertytypedescriptiondefault
configSequelasticConstructorPropsconfig objectnone

Sync

Sync SQL database

this function will sync your database with the elasticSearch service using the following method:

  • Deleting all the pre-existing indices
  • Recreating all the indices using as index name the plural of the model name
  • using bulk insertion to add all the corresponding records
sequelastic.sync() => void
propertytypedescriptiondefault
optionsSequelasticSyncOptionsconfig objectnone

Search in indices something

this function will search in elasticSearch using the search type query_string

sequelastic.search(query: string, index: string, options:SequelasticSearchOptions) => Promise<[{[key: string]: any}]> // options.wholeResponse = false

sequelastic.search(query: string, index:string, options: SequelizeSearchOptions) => Promise<elasticSearch.ApiResponse<Record<string, any>, Record<string, unknown>>> // options.wholeResponse = true
propertytypedescriptiondefault
querystringthe elasticSearch query stringnone
indexstringthe index where search for something"*"
optionsSequelasticSearchOptionssearch optionsundefined

customSearch

use a custom body for the elasticSearch _search

sequelastic.customSearch(params: elasticSearch.RequestParams.Search) => Promise<
    elasticSearch.ApiResponse<Record<string, any>, Record<string, unknown>>
  >
propertytypedescriptiondefault
paramselasicSearch.RequestParams.Searchthe custom search parameternone


Sequelastic Types

SequelasticContructorProps

object

keytypedescriptiondefault
nodestringelasticsearch service endpointhttp://localhost:9200
models(Model | SequelasticModelType)[]list of all the models to index[]
exclude (optional)string[]list of the model's fields to globally exclude from indexundefined

SequelasticModelType

object

keytypedescription
modelModelsequelize model to be indexed
attributes (optional)string[] | {exclude: string[]}fields to include or exclude in index
include (optional)(string | SequelasticModelType)[]object to eventually specify models to include in index

SequelasticSyncOptions

object

keytypedescriptiondefault
refreshbooleanuse refresh in elasticSearch bulk methodfalse

SequelasticSearchOptions

keytypedescriptiondefault
fuzzybooleanuse fuzzy searchfalse
fuzziness"AUTO" | numbersearch fuzziness"AUTO"
wholeResponsebooleanget as return the whole search response or only the hitsfalse


Keywords

FAQs

Package last updated on 20 May 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc