app: move a bunch of APIs to defaultApis in core

This commit is contained in:
Patrik Oldsberg
2020-09-04 16:59:01 +02:00
parent 1067ae85e7
commit db291ab323
4 changed files with 131 additions and 105 deletions
-100
View File
@@ -15,33 +15,10 @@
*/
import {
alertApiRef,
errorApiRef,
AlertApiForwarder,
ErrorApiForwarder,
ErrorAlerter,
featureFlagsApiRef,
FeatureFlags,
discoveryApiRef,
UrlPatternDiscovery,
GoogleAuth,
GithubAuth,
OAuth2,
OktaAuth,
GitlabAuth,
Auth0Auth,
MicrosoftAuth,
oauthRequestApiRef,
OAuthRequestManager,
googleAuthApiRef,
githubAuthApiRef,
oauth2ApiRef,
oktaAuthApiRef,
gitlabAuthApiRef,
auth0AuthApiRef,
microsoftAuthApiRef,
storageApiRef,
WebStorage,
createApiFactory,
configApiRef,
} from '@backstage/core';
@@ -83,18 +60,6 @@ import {
} from '@roadiehq/backstage-plugin-github-pull-requests';
export const apis = [
createApiFactory(alertApiRef, new AlertApiForwarder()),
createApiFactory({
implements: errorApiRef,
deps: { alertApi: alertApiRef },
factory: ({ alertApi }) =>
new ErrorAlerter(alertApi, new ErrorApiForwarder()),
}),
createApiFactory({
implements: storageApiRef,
deps: { errorApi: errorApiRef },
factory: ({ errorApi }) => WebStorage.create({ errorApi }),
}),
createApiFactory({
implements: discoveryApiRef,
deps: { configApi: configApiRef },
@@ -121,7 +86,6 @@ export const apis = [
),
}),
createApiFactory(githubActionsApiRef, new GithubActionsClient()),
createApiFactory(featureFlagsApiRef, new FeatureFlags()),
createApiFactory({
implements: lighthouseApiRef,
deps: { configApi: configApiRef },
@@ -129,75 +93,11 @@ export const apis = [
}),
createApiFactory(travisCIApiRef, new TravisCIApi()),
createApiFactory(githubPullRequestsApiRef, new GithubPullRequestsClient()),
createApiFactory(oauthRequestApiRef, new OAuthRequestManager()),
createApiFactory({
implements: techRadarApiRef,
deps: {},
factory: () => new TechRadar({ width: 1500, height: 800 }),
}),
createApiFactory({
implements: googleAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
GoogleAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: microsoftAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
MicrosoftAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: githubAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
GithubAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: oktaAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
OktaAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: gitlabAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
GitlabAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: auth0AuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
Auth0Auth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: oauth2ApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
OAuth2.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: catalogApiRef,
deps: { discoveryApi: discoveryApiRef },
+4 -4
View File
@@ -64,7 +64,7 @@ type FullAppOptions = {
components: AppComponents;
themes: AppTheme[];
configLoader?: AppConfigLoader;
defaultApiFactories: Iterable<AnyApiFactory>;
defaultApis: Iterable<AnyApiFactory>;
};
function useConfigLoader(
@@ -112,7 +112,7 @@ export class PrivateAppImpl implements BackstageApp {
private readonly components: AppComponents;
private readonly themes: AppTheme[];
private readonly configLoader?: AppConfigLoader;
private readonly defaultApiFactories: Iterable<AnyApiFactory>;
private readonly defaultApis: Iterable<AnyApiFactory>;
private readonly identityApi = new AppIdentity();
@@ -123,7 +123,7 @@ export class PrivateAppImpl implements BackstageApp {
this.components = options.components;
this.themes = options.themes;
this.configLoader = options.configLoader;
this.defaultApiFactories = options.defaultApiFactories;
this.defaultApis = options.defaultApis;
}
getPlugins(): BackstagePlugin[] {
@@ -320,7 +320,7 @@ export class PrivateAppImpl implements BackstageApp {
factory: () => this.identityApi,
});
for (const factory of this.defaultApiFactories) {
for (const factory of this.defaultApis) {
registry.register('default', factory);
}
+2 -1
View File
@@ -25,6 +25,7 @@ import { BrowserRouter, MemoryRouter } from 'react-router-dom';
import { ErrorPage } from '../layout/ErrorPage';
import { Progress } from '../components/Progress';
import { defaultApis } from './defaultApis';
import { lightTheme, darkTheme } from '@backstage/theme';
import { AppConfig, JsonObject } from '@backstage/config';
@@ -126,7 +127,7 @@ export function createApp(options?: AppOptions) {
components,
themes,
configLoader,
defaultApiFactories: [],
defaultApis,
});
app.verify();
@@ -0,0 +1,125 @@
/*
* Copyright 2020 Spotify AB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {
alertApiRef,
errorApiRef,
AlertApiForwarder,
ErrorApiForwarder,
ErrorAlerter,
featureFlagsApiRef,
FeatureFlags,
discoveryApiRef,
GoogleAuth,
GithubAuth,
OAuth2,
OktaAuth,
GitlabAuth,
Auth0Auth,
MicrosoftAuth,
oauthRequestApiRef,
OAuthRequestManager,
googleAuthApiRef,
githubAuthApiRef,
oauth2ApiRef,
oktaAuthApiRef,
gitlabAuthApiRef,
auth0AuthApiRef,
microsoftAuthApiRef,
storageApiRef,
WebStorage,
createApiFactory,
} from '@backstage/core-api';
export const defaultApis = [
createApiFactory(alertApiRef, new AlertApiForwarder()),
createApiFactory({
implements: errorApiRef,
deps: { alertApi: alertApiRef },
factory: ({ alertApi }) =>
new ErrorAlerter(alertApi, new ErrorApiForwarder()),
}),
createApiFactory({
implements: storageApiRef,
deps: { errorApi: errorApiRef },
factory: ({ errorApi }) => WebStorage.create({ errorApi }),
}),
createApiFactory(featureFlagsApiRef, new FeatureFlags()),
createApiFactory(oauthRequestApiRef, new OAuthRequestManager()),
createApiFactory({
implements: googleAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
GoogleAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: microsoftAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
MicrosoftAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: githubAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
GithubAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: oktaAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
OktaAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: gitlabAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
GitlabAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: auth0AuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
Auth0Auth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
implements: oauth2ApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
OAuth2.create({ discoveryApi, oauthRequestApi }),
}),
];