kibana/x-pack/plugins/global_search/common/errors.ts
Pierre Gayvallet 29c0acfb2f
Add globalSearch x-pack plugin (#66293) (#68259)
* add skeleton for global_search plugin

* base implementation of the server-side service

* add utils tests

* add server-side mocks

* move take_in_array to common folder

* implements base of client-side plugin

* add tests for server-side service

* fix server plugin tests

* implement `navigateToUrl` core API

* extract processResults for the client-side

* fetch server results from the client side

* factorize process_results

* fix plugin start params

* move things around

* move all server types to single file

* fix types imports

* add basic FTR tests

* add client-side service tests

* add tests for addNavigate

* add getDefaultPreference & tests

* use optional for RequestHandlerContext

* add registerRoutes test

* add base test for context

* resolve TODO

* common nits/doc

* common nits/doc on public

* update CODEOWNERS

* add import for declare statement

* add license check on the server-side

* add license check on the client-side

* eslint

* address some review comments

* use properly typed errors for obs

* add integration tests for the find endpoint

* fix unit tests

* use licensing start contract

* translate the error message

* fix eslint rule for test_utils

* fix test_utils imports

* remove NavigableGlobalSearchResult, use `application.navigateToUrl` instead.

* use coreProvider plugin in FTR tests

* nits

* fix service start params

* fix service start params, bis

* I really need to fix this typecheck oom error

* add README, update missing jsdoc

* nits on doc
# Conflicts:
#	.github/CODEOWNERS
#	rfcs/text/0011_global_search.md
2020-06-04 19:12:06 +02:00

27 lines
1 KiB
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
// only one type for now, but already present for future-proof reasons
export type GlobalSearchFindErrorType = 'invalid-license';
/**
* Error thrown from the {@link GlobalSearchPluginStart.find | GlobalSearch find API}'s result observable
*
* @public
*/
export class GlobalSearchFindError extends Error {
public static invalidLicense(message: string) {
return new GlobalSearchFindError('invalid-license', message);
}
private constructor(public readonly type: GlobalSearchFindErrorType, message: string) {
super(message);
// Set the prototype explicitly, see:
// https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
Object.setPrototypeOf(this, GlobalSearchFindError.prototype);
}
}