core-api: move utility api system implementation into apis/system

This commit is contained in:
Patrik Oldsberg
2020-10-19 01:32:35 +02:00
parent e4d0aa4609
commit f2819b2a9f
28 changed files with 50 additions and 36 deletions
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { createApiRef } from '../ApiRef';
import { createApiRef } from '../system';
import { Observable } from '../../types';
export type AlertMessage = {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { createApiRef } from '../ApiRef';
import { createApiRef } from '../system';
import { BackstageTheme } from '@backstage/theme';
import { Observable } from '../../types';
import { SvgIconProps } from '@material-ui/core';
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { createApiRef } from '../ApiRef';
import { createApiRef } from '../system';
import { Config } from '@backstage/config';
// Using interface to make the ConfigApi name show up in docs
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { createApiRef } from '../ApiRef';
import { createApiRef } from '../system';
/**
* The discovery API is used to provide a mechanism for plugins to
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { createApiRef } from '../ApiRef';
import { createApiRef } from '../system';
import { Observable } from '../../types';
/**
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { createApiRef } from '../ApiRef';
import { createApiRef } from '../system';
import { UserFlags, FeatureFlagsRegistry } from '../../app/FeatureFlags';
import { FeatureFlagName } from '../../plugin';
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { createApiRef } from '../ApiRef';
import { createApiRef } from '../system';
import { ProfileInfo } from './auth';
/**
@@ -16,7 +16,7 @@
import { IconComponent } from '../../icons';
import { Observable } from '../../types';
import { createApiRef } from '../ApiRef';
import { createApiRef } from '../system';
/**
* Information about the auth provider that we're requesting a login towards.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { createApiRef } from '../ApiRef';
import { createApiRef } from '../system';
import { Observable } from '../../types';
import { ErrorApi } from './ErrorApi';
@@ -14,8 +14,8 @@
* limitations under the License.
*/
import { createApiRef } from '../ApiRef';
import { Observable } from '../..';
import { createApiRef } from '../system';
import { Observable } from '../../types';
/**
* This file contains declarations for common interfaces of auth-related APIs.
+1 -5
View File
@@ -14,10 +14,6 @@
* limitations under the License.
*/
export { ApiProvider, useApi, useApiHolder } from './ApiProvider';
export { ApiRegistry } from './ApiRegistry';
export * from './ApiRef';
export * from './types';
export * from './helpers';
export * from './system';
export * from './definitions';
export * from './implementations';
@@ -14,8 +14,7 @@
* limitations under the License.
*/
import { ApiRef } from './ApiRef';
import { ApiHolder } from './types';
import { ApiRef, ApiHolder } from './types';
/**
* An ApiHolder that queries multiple other holders from for
@@ -15,12 +15,12 @@
*/
import {
ApiRef,
ApiFactoryHolder,
ApiFactory,
AnyApiRef,
AnyApiFactory,
} from './types';
import { ApiRef } from './ApiRef';
type ApiFactoryScope =
| 'default' // Default factories registered by core and plugins
@@ -16,8 +16,7 @@
import React, { FC, createContext, useContext, ReactNode } from 'react';
import PropTypes from 'prop-types';
import { ApiRef } from './ApiRef';
import { ApiHolder, TypesToApiRefs } from './types';
import { ApiRef, ApiHolder, TypesToApiRefs } from './types';
import { ApiAggregator } from './ApiAggregator';
type ApiProviderProps = {
@@ -14,17 +14,13 @@
* limitations under the License.
*/
import type { ApiRef } from './types';
export type ApiRefConfig = {
id: string;
description: string;
};
export type ApiRef<T> = {
id: string;
description: string;
T: T;
};
class ApiRefImpl<T> implements ApiRef<T> {
constructor(private readonly config: ApiRefConfig) {
const valid = config.id
@@ -14,8 +14,7 @@
* limitations under the License.
*/
import { ApiRef } from './ApiRef';
import { ApiHolder } from './types';
import { ApiRef, ApiHolder } from './types';
type ApiImpl<T = unknown> = readonly [ApiRef<T>, T];
@@ -14,8 +14,8 @@
* limitations under the License.
*/
import { ApiRef } from './ApiRef';
import {
ApiRef,
ApiHolder,
ApiFactoryHolder,
AnyApiRef,
@@ -14,8 +14,7 @@
* limitations under the License.
*/
import { ApiFactory, TypesToApiRefs } from './types';
import { ApiRef } from './ApiRef';
import { ApiRef, ApiFactory, TypesToApiRefs } from './types';
/**
* Used to infer types for a standalone ApiFactory that isn't immediately passed
@@ -0,0 +1,23 @@
/*
* 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.
*/
export { ApiProvider, useApi, useApiHolder } from './ApiProvider';
export { ApiRegistry } from './ApiRegistry';
export { ApiResolver } from './ApiResolver';
export { ApiFactoryRegistry } from './ApiFactoryRegistry';
export { createApiRef } from './ApiRef';
export * from './types';
export * from './helpers';
@@ -14,7 +14,11 @@
* limitations under the License.
*/
import { ApiRef } from './ApiRef';
export type ApiRef<T> = {
id: string;
description: string;
T: T;
};
export type AnyApiRef = ApiRef<unknown>;
+1 -2
View File
@@ -54,8 +54,7 @@ import {
} from '../apis';
import { useAsync } from 'react-use';
import { AppIdentity } from './AppIdentity';
import { ApiFactoryRegistry } from '../apis/ApiFactoryRegistry';
import { ApiResolver } from '../apis/ApiResolver';
import { ApiResolver, ApiFactoryRegistry } from '../apis/system';
type FullAppOptions = {
apis: Iterable<AnyApiFactory>;
+1 -1
View File
@@ -16,7 +16,7 @@
import { ComponentType } from 'react';
import { RouteRef } from '../routing';
import { AnyApiFactory } from '../apis';
import { AnyApiFactory } from '../apis/system';
export type RouteOptions = {
// Whether the route path must match exactly, defaults to true.