searchops's People
searchops's Issues
Make usage of schema validation opt-in
Upgrade to Ajv 7.x introduced critical performance issue
Commit 15bf22b introduced a performance issue.
Ajv 7.x does not serialize schemas before caching compilation results, thus the following code became dangerous:
export function getValidatorForMapping(
mappings: ObjectMapping
): ValidateFunction<unknown> {
return ajv.compile(translateObjectMapping(mappings));
}
Winston missing will cause compilation error on `.d.ts` files
After removing Winston as a hard dependency, the module now may cause compilation errors if the winston peer dependency is not installed.
error TS2307: Cannot find module 'winston' or its corresponding type declarations.
1 import type { Logger } from "winston";
Remove transpiled code from repository files
It was important to enable users to install directly from GitHub, but now that the package is published, there's no reason to keep it this way. It removes the need to check for transpilation changes.
Cache JSON schemas built from index mappings
The most obvious choice is to use fast-json-stable-serialize, which is exactly what Ajv 6 did.
Even better than caching by schemas like AJV would do, it would be better to cache by mappings.
Solves #163
Publish package to NPM's registry
Purge mapping coupled methods from search service
A few methods on the SearchService class have been coupled to a particular mapping, which infects the class abstraction with a particular use case.
We should expel such code (specially getshould
).
Make Elasticsearch a peerDependency
Property 'match_phrase' does not exist on type 'Query'.ts(2339)
Specifying types in count requests is deprecated.
Stop distributing test files
ADR 20210203 - Optional document schema validation
Implement the referenced ADR:
https://gupy-io.github.io/searchops/adrlogs/adr/20210203-optional-document-schema-validation
Tasks:
Remove package-lock from pack install test
It serves no real purpose, and it requires to manually update the package-lock every time the package changes in order to pass integrity checks.
Stop caching Elasticsearch clients on es-connector module
A singleton client should not be enforced for every user of this library.
Publish just the type declaration files as a separate package
If this was commonplace, I wouldn't have to copy over Winston declarations to solve #37. I think this should be come good practice for typescript libraries now that we have import type
.
Add code coverage report to checks
Migrate from mocha + chai to Jest
Add check to ensure Winston type declarations won't diverge
AwsSignedConnection sometimes throws "missing request headers"
Object literal may only specify known properties, and 'fields' does not exist in type 'QueryStringQuery'.ts(2322)
Add project README explaining its reasoning and main goals
Move validation to plugin architecture and make ajv a peer dependency
Document mapping decision tips
Flaky test caused by invalid alias name error
● Index Migrations › Updating dynamic index settings › given the index was created › when the manager performs a migration › then the index should exist
ResponseError: invalid_alias_name_exception
https://github.com/gupy-io/searchops/runs/1936859362#step:6:105
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.