Sfoglia il codice sorgente

[frontend] Add the contextCatalog to the published NPM lib

Johan Åhlén 4 anni fa
parent
commit
fc8ad8cbac

+ 56 - 0
desktop/core/src/desktop/js/catalog/contextCatalog.d.ts

@@ -0,0 +1,56 @@
+// Licensed to Cloudera, Inc. under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  Cloudera, Inc. licenses this file
+// to you 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 { Cluster, Compute, IdentifiableInterpreter, Namespace } from 'config/types';
+
+interface GetOptions {
+  connector: IdentifiableInterpreter;
+  clearCache?: boolean;
+  silenceErrors?: boolean;
+}
+
+interface ConnectorNamespaces {
+  dynamic?: boolean;
+  hueTimestamp: number;
+  namespaces: Namespace[];
+}
+
+export declare const getNamespaces: ({
+  connector,
+  clearCache,
+  silenceErrors
+}: GetOptions) => Promise<ConnectorNamespaces>;
+export declare const getComputes: ({
+  connector,
+  clearCache,
+  silenceErrors
+}: GetOptions) => Promise<Compute[]>;
+export declare const getClusters: ({
+  connector,
+  clearCache,
+  silenceErrors
+}: GetOptions) => Promise<Cluster[]>;
+
+declare const _default: {
+  getNamespaces: ({
+    connector,
+    clearCache,
+    silenceErrors
+  }: GetOptions) => Promise<ConnectorNamespaces>;
+  getComputes: ({ connector, clearCache, silenceErrors }: GetOptions) => Promise<Compute[]>;
+  getClusters: ({ connector, clearCache, silenceErrors }: GetOptions) => Promise<Cluster[]>;
+};
+export default _default;

+ 74 - 0
desktop/core/src/desktop/js/config/hueConfig.d.ts

@@ -0,0 +1,74 @@
+// Licensed to Cloudera, Inc. under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  Cloudera, Inc. licenses this file
+// to you 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 {
+  AppType,
+  BrowserInterpreter,
+  DashboardInterpreter,
+  EditorInterpreter,
+  HueConfig,
+  Interpreter,
+  SchedulerInterpreter
+} from './types';
+
+interface InterpreterMap {
+  [AppType.browser]: BrowserInterpreter;
+  [AppType.editor]: EditorInterpreter;
+  [AppType.dashboard]: DashboardInterpreter;
+  [AppType.scheduler]: SchedulerInterpreter;
+  [AppType.sdkapps]: Interpreter;
+}
+
+declare type ConnectorTest<T extends keyof InterpreterMap> = (
+  connector: InterpreterMap[T]
+) => boolean;
+
+export declare const refreshConfig: () => Promise<HueConfig>;
+export declare const getLastKnownConfig: () => HueConfig | undefined;
+export declare const getConfig: () => Promise<HueConfig>;
+
+export declare const findDashboardConnector: (
+  connectorTest: ConnectorTest<AppType.dashboard>
+) => DashboardInterpreter | undefined;
+export declare const findBrowserConnector: (
+  connectorTest: ConnectorTest<AppType.browser>
+) => BrowserInterpreter | undefined;
+export declare const findEditorConnector: (
+  connectorTest: ConnectorTest<AppType.editor>
+) => EditorInterpreter | undefined;
+export declare const filterBrowserConnectors: (
+  connectorTest: ConnectorTest<AppType.browser>
+) => BrowserInterpreter[];
+export declare const filterEditorConnectors: (
+  connectorTest: ConnectorTest<AppType.editor>
+) => EditorInterpreter[];
+
+/**
+ * This takes the initial path from the "browser" config, used in cases where the users can't access '/'
+ * for abfs etc.
+ */
+export declare const getRootFilePath: (connector: BrowserInterpreter) => string;
+
+declare const _default: {
+  refreshConfig: () => Promise<HueConfig>;
+  getInterpreters: <T extends keyof InterpreterMap>(appType: T) => InterpreterMap[T][];
+  getLastKnownConfig: () => HueConfig;
+  getRootFilePath: (connector: BrowserInterpreter) => string;
+  findBrowserConnector: (connectorTest: ConnectorTest<AppType.browser>) => BrowserInterpreter;
+  findDashboardConnector: (connectorTest: ConnectorTest<AppType.dashboard>) => DashboardInterpreter;
+  findEditorConnector: (connectorTest: ConnectorTest<AppType.editor>) => EditorInterpreter;
+};
+export default _default;

+ 6 - 1
webpack.config.npm.js

@@ -63,7 +63,8 @@ const executorLibConfig = Object.assign({}, defaultConfig, {
 
 const hueConfigLibConfig = Object.assign({}, defaultConfig, {
   entry: {
-    hueConfig: [`${JS_ROOT}/config/hueConfig.ts`]
+    hueConfig: [`${JS_ROOT}/config/hueConfig.ts`],
+    contextCatalog: [`${JS_ROOT}/catalog/contextCatalog.ts`]
   },
   output: {
     path: `${DIST_DIR}/lib/config`,
@@ -79,6 +80,10 @@ const hueConfigLibConfig = Object.assign({}, defaultConfig, {
         {
           from: `${JS_ROOT}/config/hueConfig.d.ts`,
           to: `${DIST_DIR}/lib/config`
+        },
+        {
+          from: `${JS_ROOT}/catalog/contextCatalog.d.ts`,
+          to: `${DIST_DIR}/lib/config`
         }
       ]
     })