[Core] Rewrite saved objects in typescript#36829
Merged
rudolf merged 37 commits intoelastic:masterfrom Jun 6, 2019
Merged
Conversation
10a6247 to
116f721
Compare
rudolf
commented
May 24, 2019
f2a3240 to
cb6cfc2
Compare
This reverts commit de3252267eb2e6bf56a5584d271b55a7afdc1c53.
Contributor
💔 Build Failed |
Contributor
Author
|
@restrry @eliperelman @mattapperson I've addressed the comments I left on #35747 in the merge commit |
Contributor
💚 Build Succeeded |
mshustov
approved these changes
Jun 4, 2019
Contributor
💔 Build Failed |
kobelb
approved these changes
Jun 4, 2019
Contributor
💚 Build Succeeded |
rudolf
added a commit
to rudolf/kibana
that referenced
this pull request
Jun 7, 2019
* Convert simple files to TS
* Fix jest tests
* Rename saved_objects_client{.js => .ts}
* WIP saved_objects_client
* saved_objects repository{.js => .ts}
* includedFields support string[] for type paramater
* Repository/saved_objects_client -> TS
* Fix tests and dependencies
* Fix saved objects type errors and simplify
* saved_objects/index saved_objects/service/index -> ts
* Fix saved objects export test after switching to typed mock
* Workaround type error
* Revert "Workaround type error"
This reverts commit de3252267eb2e6bf56a5584d271b55a7afdc1c53.
* Correctly type Server.savedObjects.SaveObjectsClient constructor
* saved_objects/service/lib/index.{js -> ts}
* saved_objects/service/lib/scoped_client_provider{js -> ts}
* Typescriptify scoped_client_provider
* Fix x-pack jest imports
* Add lodash/internal/toPath typings to xpath
* Introduce SavedObjectsClientContract
We need a way to specify that injected dependencies should adhere to the
SavedObjectsClient "contract". We can't use the SavedObjectsClient class
itself since it contains the private _repository property which in TS is
included in the type signature of a class.
* Cleanup and simplify types
* Fix repository#delete should return {}
* Add SavedObjects repository test for uncovered bug
Test for a bug in our previous js implementation that can lead to data
corruption and data loss.
If a bulkGet request is made where one of the objects to fetch is of a type
that isn't allowed, the returned result will include documents which have the
incorrect id and type assigned. E.g. the data of an object with id '1' is
returned with id '2'. Saving '2' will incorrectly override it's data with that
of the data of object '1'.
* SavedObject.updated_at: string and unify saved_object / serializer types
* Cleanup
* Address code review feedback
* Don't mock errors helpers in SavedObjectsClient Mock
* Address CR feedback
* CR Feedback #2
* Add kibana-platform as code owners of Saved Objects
* Better typings for SavedObjectsClient.errors
* Use unknown as default for generic type request paramater
* Bump @types/elasticsearch
* Fix types for isForbiddenError
* Bump x-pack @types/elasticsearch
rudolf
added a commit
that referenced
this pull request
Jun 7, 2019
* [Core] Rewrite saved objects in typescript (#36829) * Convert simple files to TS * Fix jest tests * Rename saved_objects_client{.js => .ts} * WIP saved_objects_client * saved_objects repository{.js => .ts} * includedFields support string[] for type paramater * Repository/saved_objects_client -> TS * Fix tests and dependencies * Fix saved objects type errors and simplify * saved_objects/index saved_objects/service/index -> ts * Fix saved objects export test after switching to typed mock * Workaround type error * Revert "Workaround type error" This reverts commit de3252267eb2e6bf56a5584d271b55a7afdc1c53. * Correctly type Server.savedObjects.SaveObjectsClient constructor * saved_objects/service/lib/index.{js -> ts} * saved_objects/service/lib/scoped_client_provider{js -> ts} * Typescriptify scoped_client_provider * Fix x-pack jest imports * Add lodash/internal/toPath typings to xpath * Introduce SavedObjectsClientContract We need a way to specify that injected dependencies should adhere to the SavedObjectsClient "contract". We can't use the SavedObjectsClient class itself since it contains the private _repository property which in TS is included in the type signature of a class. * Cleanup and simplify types * Fix repository#delete should return {} * Add SavedObjects repository test for uncovered bug Test for a bug in our previous js implementation that can lead to data corruption and data loss. If a bulkGet request is made where one of the objects to fetch is of a type that isn't allowed, the returned result will include documents which have the incorrect id and type assigned. E.g. the data of an object with id '1' is returned with id '2'. Saving '2' will incorrectly override it's data with that of the data of object '1'. * SavedObject.updated_at: string and unify saved_object / serializer types * Cleanup * Address code review feedback * Don't mock errors helpers in SavedObjectsClient Mock * Address CR feedback * CR Feedback #2 * Add kibana-platform as code owners of Saved Objects * Better typings for SavedObjectsClient.errors * Use unknown as default for generic type request paramater * Bump @types/elasticsearch * Fix types for isForbiddenError * Bump x-pack @types/elasticsearch * Update yarn.lock
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates the Saved Objects Client / Service to typescript in preparation for moving it to Core. Not all tests have been migrated, but the PR is already quite large so I decided to stop here for now.
Checklist
Use
strikethroughsto remove checklist items you don't feel are applicable to this PR.This was checked for cross-browser compatibility, including a check against IE11Any text added follows EUI's writing guidelines, uses sentence case text and includes i18n supportDocumentation was added for features that require explanation or tutorialsThis was checked for keyboard-only and screenreader accessibilityFor maintainers