From 86fa93ac8be5d1661d9e00cede2ff02f0db8594e Mon Sep 17 00:00:00 2001 From: Gabriel Date: Wed, 31 May 2023 13:47:06 +0200 Subject: [PATCH] chore: extract @k8slens/random Signed-off-by: Gabriel --- package-lock.json | 19 ++++++++ ...andom-id.global-override-for-injectable.ts | 2 +- ...rder-of-workload-overview-details.test.tsx | 2 +- ...items-originating-from-extensions.test.tsx | 2 +- ...nu-item-originating-from-extension.test.ts | 2 +- ...arators-originating-from-extension.test.ts | 2 +- packages/core/src/main/getDiForUnitTesting.ts | 2 + .../tray-menu-item-registrator.injectable.ts | 2 +- ...dom-id-for-edit-resource-tab.injectable.ts | 2 +- ...-random-install-chart-tab-id.injectable.ts | 2 +- ...t-random-id-for-pod-logs-tab.injectable.ts | 2 +- ...-random-upgrade-chart-tab-id.injectable.ts | 2 +- ...ject-detail-item-registrator.injectable.ts | 2 +- ...object-menu-item-registrator.injectable.ts | 2 +- ...ject-status-text-registrator.injectable.ts | 2 +- .../renderer/components/menu/menu-actions.tsx | 2 +- ...status-bar-item-registrator.injectable.tsx | 2 +- .../components/status-bar/status-bar.test.tsx | 2 +- ...-overview-detail-registrator.injectable.ts | 2 +- .../core/src/renderer/getDiForUnitTesting.tsx | 2 + packages/random-id/.eslintrc.json | 6 +++ packages/random-id/.prettierrc | 1 + packages/random-id/CHANGELOG.md | 4 ++ packages/random-id/README.md | 15 +++++++ packages/random-id/index.ts | 7 +++ packages/random-id/package.json | 44 +++++++++++++++++++ packages/random-id/src/feature.ts | 14 ++++++ .../src}/get-random-id.injectable.ts | 4 +- packages/random-id/tsconfig.json | 4 ++ packages/random-id/webpack.config.js | 1 + 30 files changed, 137 insertions(+), 20 deletions(-) create mode 100644 packages/random-id/.eslintrc.json create mode 100644 packages/random-id/.prettierrc create mode 100644 packages/random-id/CHANGELOG.md create mode 100644 packages/random-id/README.md create mode 100644 packages/random-id/index.ts create mode 100644 packages/random-id/package.json create mode 100644 packages/random-id/src/feature.ts rename packages/{core/src/common/utils => random-id/src}/get-random-id.injectable.ts (80%) create mode 100644 packages/random-id/tsconfig.json create mode 100644 packages/random-id/webpack.config.js diff --git a/package-lock.json b/package-lock.json index ffa968c92c..68458e9cab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3818,6 +3818,10 @@ "resolved": "packages/node-fetch", "link": true }, + "node_modules/@k8slens/random": { + "resolved": "packages/random-id", + "link": true + }, "node_modules/@k8slens/react-application": { "resolved": "packages/technical-features/react-application", "link": true @@ -35272,6 +35276,21 @@ "url": "https://opencollective.com/node-fetch" } }, + "packages/random-id": { + "name": "@k8slens/random", + "version": "1.0.0-alpha.0", + "license": "MIT", + "devDependencies": { + "@k8slens/eslint-config": "^6.5.0", + "@k8slens/webpack": "^6.5.0" + }, + "peerDependencies": { + "@k8slens/feature-core": "^6.5.0-alpha.0", + "@ogre-tools/injectable": "^17.1.0", + "@ogre-tools/injectable-extension-for-auto-registration": "^17.1.0", + "uuid": "^8.3.2" + } + }, "packages/release-tool": { "name": "@k8slens/release-tool", "version": "6.5.0", diff --git a/packages/core/src/common/utils/get-random-id.global-override-for-injectable.ts b/packages/core/src/common/utils/get-random-id.global-override-for-injectable.ts index 36f598cde1..64c4c9a21a 100644 --- a/packages/core/src/common/utils/get-random-id.global-override-for-injectable.ts +++ b/packages/core/src/common/utils/get-random-id.global-override-for-injectable.ts @@ -4,6 +4,6 @@ */ import { getGlobalOverride } from "@k8slens/test-utils"; -import getRandomIdInjectable from "./get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; export default getGlobalOverride(getRandomIdInjectable, () => () => "some-irrelevant-random-id"); diff --git a/packages/core/src/features/cluster/workloads/overview/extension-api/order-of-workload-overview-details.test.tsx b/packages/core/src/features/cluster/workloads/overview/extension-api/order-of-workload-overview-details.test.tsx index fc33409ca2..2d13de0858 100644 --- a/packages/core/src/features/cluster/workloads/overview/extension-api/order-of-workload-overview-details.test.tsx +++ b/packages/core/src/features/cluster/workloads/overview/extension-api/order-of-workload-overview-details.test.tsx @@ -5,7 +5,7 @@ import type { RenderResult } from "@testing-library/react"; import { getApplicationBuilder } from "../../../../../renderer/components/test-utils/get-application-builder"; import React from "react"; -import getRandomIdInjectable from "../../../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import { workloadOverviewDetailInjectionToken } from "../../../../../renderer/components/workloads-overview/workload-overview-details/workload-overview-detail-injection-token"; import { getInjectable } from "@ogre-tools/injectable"; import { computed, runInAction } from "mobx"; diff --git a/packages/core/src/features/status-bar/status-bar-items-originating-from-extensions.test.tsx b/packages/core/src/features/status-bar/status-bar-items-originating-from-extensions.test.tsx index 561f213593..8f8cfa82a1 100644 --- a/packages/core/src/features/status-bar/status-bar-items-originating-from-extensions.test.tsx +++ b/packages/core/src/features/status-bar/status-bar-items-originating-from-extensions.test.tsx @@ -6,7 +6,7 @@ import type { RenderResult } from "@testing-library/react"; import React from "react"; import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; -import getRandomIdInjectable from "../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import type { FakeExtensionOptions } from "../../renderer/components/test-utils/get-extension-fake"; import { computed } from "mobx"; diff --git a/packages/core/src/features/tray/clicking-tray-menu-item-originating-from-extension.test.ts b/packages/core/src/features/tray/clicking-tray-menu-item-originating-from-extension.test.ts index e8c7b71f08..a4652eff45 100644 --- a/packages/core/src/features/tray/clicking-tray-menu-item-originating-from-extension.test.ts +++ b/packages/core/src/features/tray/clicking-tray-menu-item-originating-from-extension.test.ts @@ -5,7 +5,7 @@ import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import type { FakeExtensionOptions } from "../../renderer/components/test-utils/get-extension-fake"; -import getRandomIdInjectable from "../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import logErrorInjectable from "../../common/log-error.injectable"; describe("clicking tray menu item originating from extension", () => { diff --git a/packages/core/src/features/tray/multiple-separators-originating-from-extension.test.ts b/packages/core/src/features/tray/multiple-separators-originating-from-extension.test.ts index f819824749..8670ef7860 100644 --- a/packages/core/src/features/tray/multiple-separators-originating-from-extension.test.ts +++ b/packages/core/src/features/tray/multiple-separators-originating-from-extension.test.ts @@ -4,7 +4,7 @@ */ import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; -import getRandomIdInjectable from "../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; describe("multiple separators originating from extension", () => { let builder: ApplicationBuilder; diff --git a/packages/core/src/main/getDiForUnitTesting.ts b/packages/core/src/main/getDiForUnitTesting.ts index 28a4cf51fd..5ceb1b8425 100644 --- a/packages/core/src/main/getDiForUnitTesting.ts +++ b/packages/core/src/main/getDiForUnitTesting.ts @@ -29,6 +29,7 @@ import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { registerFeature } from "@k8slens/feature-core"; import { messagingFeature, testUtils as messagingTestUtils } from "@k8slens/messaging"; import { loggerFeature } from "@k8slens/logger"; +import { randomFeature } from "@k8slens/random"; export function getDiForUnitTesting() { const environment = "main"; @@ -44,6 +45,7 @@ export function getDiForUnitTesting() { messagingFeature, messagingTestUtils.messagingFeatureForUnitTesting, loggerFeature, + randomFeature, ); }); diff --git a/packages/core/src/main/tray/tray-menu-item/tray-menu-item-registrator.injectable.ts b/packages/core/src/main/tray/tray-menu-item/tray-menu-item-registrator.injectable.ts index f1eb3e7e50..55c498ee7a 100644 --- a/packages/core/src/main/tray/tray-menu-item/tray-menu-item-registrator.injectable.ts +++ b/packages/core/src/main/tray/tray-menu-item/tray-menu-item-registrator.injectable.ts @@ -14,7 +14,7 @@ import type { TrayMenuRegistration } from "../tray-menu-registration"; import { withErrorSuppression } from "../../../common/utils/with-error-suppression/with-error-suppression"; import type { WithErrorLoggingFor } from "../../../common/utils/with-error-logging/with-error-logging.injectable"; import withErrorLoggingInjectable from "../../../common/utils/with-error-logging/with-error-logging.injectable"; -import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import { isBoolean, isString } from "@k8slens/utilities"; const trayMenuItemRegistratorInjectable = getInjectable({ diff --git a/packages/core/src/renderer/components/dock/edit-resource/get-random-id-for-edit-resource-tab.injectable.ts b/packages/core/src/renderer/components/dock/edit-resource/get-random-id-for-edit-resource-tab.injectable.ts index e71330d261..ec5e8bcd38 100644 --- a/packages/core/src/renderer/components/dock/edit-resource/get-random-id-for-edit-resource-tab.injectable.ts +++ b/packages/core/src/renderer/components/dock/edit-resource/get-random-id-for-edit-resource-tab.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import getRandomIdInjectable from "../../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; const getRandomIdForEditResourceTabInjectable = getInjectable({ id: "get-random-id-for-edit-resource-tab", diff --git a/packages/core/src/renderer/components/dock/install-chart/get-random-install-chart-tab-id.injectable.ts b/packages/core/src/renderer/components/dock/install-chart/get-random-install-chart-tab-id.injectable.ts index c9169fff92..e13c585914 100644 --- a/packages/core/src/renderer/components/dock/install-chart/get-random-install-chart-tab-id.injectable.ts +++ b/packages/core/src/renderer/components/dock/install-chart/get-random-install-chart-tab-id.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import getRandomIdInjectable from "../../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; const getRandomInstallChartTabIdInjectable = getInjectable({ id: "get-random-install-chart-tab-id", diff --git a/packages/core/src/renderer/components/dock/logs/get-random-id-for-pod-logs-tab.injectable.ts b/packages/core/src/renderer/components/dock/logs/get-random-id-for-pod-logs-tab.injectable.ts index 1dcadcf293..486b43314e 100644 --- a/packages/core/src/renderer/components/dock/logs/get-random-id-for-pod-logs-tab.injectable.ts +++ b/packages/core/src/renderer/components/dock/logs/get-random-id-for-pod-logs-tab.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import getRandomIdInjectable from "../../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; const getRandomIdForPodLogsTabInjectable = getInjectable({ id: "get-random-id-for-pod-logs-tab", diff --git a/packages/core/src/renderer/components/dock/upgrade-chart/get-random-upgrade-chart-tab-id.injectable.ts b/packages/core/src/renderer/components/dock/upgrade-chart/get-random-upgrade-chart-tab-id.injectable.ts index 167973060f..81dd918283 100644 --- a/packages/core/src/renderer/components/dock/upgrade-chart/get-random-upgrade-chart-tab-id.injectable.ts +++ b/packages/core/src/renderer/components/dock/upgrade-chart/get-random-upgrade-chart-tab-id.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import getRandomIdInjectable from "../../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; const getRandomUpgradeChartTabIdInjectable = getInjectable({ id: "get-random-upgrade-chart-tab-id", diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.ts index 45b37d2ca1..cc0945097e 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; -import getRandomIdInjectable from "../../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension"; import extensionShouldBeEnabledForClusterFrameInjectable from "../../../extension-loader/extension-should-be-enabled-for-cluster-frame.injectable"; import { kubeObjectDetailItemInjectionToken } from "./kube-object-detail-item-injection-token"; diff --git a/packages/core/src/renderer/components/kube-object-menu/kube-object-menu-item-registrator.injectable.ts b/packages/core/src/renderer/components/kube-object-menu/kube-object-menu-item-registrator.injectable.ts index e5df278afc..b9aa14ad72 100644 --- a/packages/core/src/renderer/components/kube-object-menu/kube-object-menu-item-registrator.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-menu/kube-object-menu-item-registrator.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { extensionRegistratorInjectionToken } from "../../../extensions/extension-loader/extension-registrator-injection-token"; import type { LensRendererExtension } from "../../../extensions/lens-renderer-extension"; -import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import extensionShouldBeEnabledForClusterFrameInjectable from "../../extension-loader/extension-should-be-enabled-for-cluster-frame.injectable"; import { kubeObjectMenuItemInjectionToken } from "./kube-object-menu-item-injection-token"; import { computed } from "mobx"; diff --git a/packages/core/src/renderer/components/kube-object-status-icon/kube-object-status-text-registrator.injectable.ts b/packages/core/src/renderer/components/kube-object-status-icon/kube-object-status-text-registrator.injectable.ts index b5ba2bb922..67dfd9e112 100644 --- a/packages/core/src/renderer/components/kube-object-status-icon/kube-object-status-text-registrator.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-status-icon/kube-object-status-text-registrator.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { extensionRegistratorInjectionToken } from "../../../extensions/extension-loader/extension-registrator-injection-token"; import type { LensRendererExtension } from "../../../extensions/lens-renderer-extension"; -import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import { kubeObjectStatusTextInjectionToken } from "./kube-object-status-text-injection-token"; import extensionShouldBeEnabledForClusterFrameInjectable from "../../extension-loader/extension-should-be-enabled-for-cluster-frame.injectable"; import { computed } from "mobx"; diff --git a/packages/core/src/renderer/components/menu/menu-actions.tsx b/packages/core/src/renderer/components/menu/menu-actions.tsx index 60492482f2..b3ac3b9eb7 100644 --- a/packages/core/src/renderer/components/menu/menu-actions.tsx +++ b/packages/core/src/renderer/components/menu/menu-actions.tsx @@ -19,7 +19,7 @@ import type { TooltipDecoratorProps } from "@k8slens/tooltip"; import type { OpenConfirmDialog } from "../confirm-dialog/open.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import openConfirmDialogInjectable from "../confirm-dialog/open.injectable"; -import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import autoBindReact from "auto-bind/react"; export interface MenuActionsProps extends Partial { diff --git a/packages/core/src/renderer/components/status-bar/status-bar-item-registrator.injectable.tsx b/packages/core/src/renderer/components/status-bar/status-bar-item-registrator.injectable.tsx index 48ab713b00..4f262e79ce 100644 --- a/packages/core/src/renderer/components/status-bar/status-bar-item-registrator.injectable.tsx +++ b/packages/core/src/renderer/components/status-bar/status-bar-item-registrator.injectable.tsx @@ -11,7 +11,7 @@ import type { StatusBarItem } from "./status-bar-item-injection-token"; import { statusBarItemInjectionToken } from "./status-bar-item-injection-token"; import type { StatusBarRegistration } from "./status-bar-registration"; import React from "react"; -import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import { loggerInjectionToken } from "@k8slens/logger"; import type { Logger } from "@k8slens/logger"; diff --git a/packages/core/src/renderer/components/status-bar/status-bar.test.tsx b/packages/core/src/renderer/components/status-bar/status-bar.test.tsx index 79ca2b4ecc..d0decea569 100644 --- a/packages/core/src/renderer/components/status-bar/status-bar.test.tsx +++ b/packages/core/src/renderer/components/status-bar/status-bar.test.tsx @@ -8,7 +8,7 @@ import type { ApplicationBuilder } from "../test-utils/get-application-builder"; import { getApplicationBuilder } from "../test-utils/get-application-builder"; import setStatusBarStatusInjectable from "./set-status-bar-status.injectable"; import type { RenderResult } from "@testing-library/react"; -import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; describe("", () => { let builder: ApplicationBuilder; diff --git a/packages/core/src/renderer/components/workloads-overview/workload-overview-details/workload-overview-detail-registrator.injectable.ts b/packages/core/src/renderer/components/workloads-overview/workload-overview-details/workload-overview-detail-registrator.injectable.ts index a49808770d..143e01bbaf 100644 --- a/packages/core/src/renderer/components/workloads-overview/workload-overview-details/workload-overview-detail-registrator.injectable.ts +++ b/packages/core/src/renderer/components/workloads-overview/workload-overview-details/workload-overview-detail-registrator.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; -import getRandomIdInjectable from "../../../../common/utils/get-random-id.injectable"; +import { getRandomIdInjectable } from "@k8slens/random"; import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension"; import extensionShouldBeEnabledForClusterFrameInjectable from "../../../extension-loader/extension-should-be-enabled-for-cluster-frame.injectable"; import { workloadOverviewDetailInjectionToken } from "./workload-overview-detail-injection-token"; diff --git a/packages/core/src/renderer/getDiForUnitTesting.tsx b/packages/core/src/renderer/getDiForUnitTesting.tsx index 1113cb28b8..7f8e431e5e 100644 --- a/packages/core/src/renderer/getDiForUnitTesting.tsx +++ b/packages/core/src/renderer/getDiForUnitTesting.tsx @@ -22,6 +22,7 @@ import { messagingFeature, testUtils as messagingTestUtils } from "@k8slens/mess import { routingFeature } from "@k8slens/routing"; import { loggerFeature } from "@k8slens/logger"; import { clusterSidebarFeature } from "@k8slens/cluster-sidebar"; +import { randomFeature } from "@k8slens/random"; export const getDiForUnitTesting = () => { const environment = "renderer"; @@ -41,6 +42,7 @@ export const getDiForUnitTesting = () => { loggerFeature, animateFeature, clusterSidebarFeature, + randomFeature, ); }); diff --git a/packages/random-id/.eslintrc.json b/packages/random-id/.eslintrc.json new file mode 100644 index 0000000000..b15115cb69 --- /dev/null +++ b/packages/random-id/.eslintrc.json @@ -0,0 +1,6 @@ +{ + "extends": "@k8slens/eslint-config/eslint", + "parserOptions": { + "project": "./tsconfig.json" + } +} diff --git a/packages/random-id/.prettierrc b/packages/random-id/.prettierrc new file mode 100644 index 0000000000..edd47b479e --- /dev/null +++ b/packages/random-id/.prettierrc @@ -0,0 +1 @@ +"@k8slens/eslint-config/prettier" diff --git a/packages/random-id/CHANGELOG.md b/packages/random-id/CHANGELOG.md new file mode 100644 index 0000000000..e4d87c4d45 --- /dev/null +++ b/packages/random-id/CHANGELOG.md @@ -0,0 +1,4 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. diff --git a/packages/random-id/README.md b/packages/random-id/README.md new file mode 100644 index 0000000000..154b920a42 --- /dev/null +++ b/packages/random-id/README.md @@ -0,0 +1,15 @@ +# @k8slens/random + +This package contains stuff related to creating Lens-applications. + +# Usage + +```bash +$ npm install @k8slens/random +``` + +```typescript +export type { ... } from "@k8slens/random"; +``` + +## Extendability diff --git a/packages/random-id/index.ts b/packages/random-id/index.ts new file mode 100644 index 0000000000..9d7d69f32d --- /dev/null +++ b/packages/random-id/index.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +export { randomFeature } from "./src/feature"; +export { getRandomIdInjectable } from "./src/get-random-id.injectable"; diff --git a/packages/random-id/package.json b/packages/random-id/package.json new file mode 100644 index 0000000000..ec0130c3e4 --- /dev/null +++ b/packages/random-id/package.json @@ -0,0 +1,44 @@ +{ + "name": "@k8slens/random", + "private": false, + "version": "1.0.0-alpha.0", + "description": "Highly extendable random in the Lens.", + "type": "commonjs", + "files": [ + "dist" + ], + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/lensapp/lens.git" + }, + "main": "dist/index.js", + "exports": { + ".": "./dist/index.js" + }, + "types": "dist/index.d.ts", + "author": { + "name": "OpenLens Authors", + "email": "info@k8slens.dev" + }, + "license": "MIT", + "homepage": "https://github.com/lensapp/lens", + "scripts": { + "build": "lens-webpack-build", + "lint": "lens-lint", + "lint:fix": "lens-lint --fix" + }, + "peerDependencies": { + "@k8slens/feature-core": "^6.5.0-alpha.0", + "@ogre-tools/injectable": "^17.1.0", + "@ogre-tools/injectable-extension-for-auto-registration": "^17.1.0", + "uuid": "^8.3.2" + }, + "devDependencies": { + "@k8slens/eslint-config": "^6.5.0", + "@k8slens/webpack": "^6.5.0" + } +} diff --git a/packages/random-id/src/feature.ts b/packages/random-id/src/feature.ts new file mode 100644 index 0000000000..8287645003 --- /dev/null +++ b/packages/random-id/src/feature.ts @@ -0,0 +1,14 @@ +import { getFeature } from "@k8slens/feature-core"; +import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration"; + +export const randomFeature = getFeature({ + id: "random-feature", + + register: (di) => { + autoRegister({ + di, + targetModule: module, + getRequireContexts: () => [require.context("./", true, /\.injectable\.(ts|tsx)$/)], + }); + }, +}); diff --git a/packages/core/src/common/utils/get-random-id.injectable.ts b/packages/random-id/src/get-random-id.injectable.ts similarity index 80% rename from packages/core/src/common/utils/get-random-id.injectable.ts rename to packages/random-id/src/get-random-id.injectable.ts index b6d8b99f41..ce2b124960 100644 --- a/packages/core/src/common/utils/get-random-id.injectable.ts +++ b/packages/random-id/src/get-random-id.injectable.ts @@ -5,10 +5,8 @@ import { getInjectable } from "@ogre-tools/injectable"; import { v4 as getRandomId } from "uuid"; -const getRandomIdInjectable = getInjectable({ +export const getRandomIdInjectable = getInjectable({ id: "get-random-id", instantiate: () => () => getRandomId(), causesSideEffects: true, }); - -export default getRandomIdInjectable; diff --git a/packages/random-id/tsconfig.json b/packages/random-id/tsconfig.json new file mode 100644 index 0000000000..9e140d79da --- /dev/null +++ b/packages/random-id/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@k8slens/typescript/config/base.json", + "include": ["**/*.ts", "**/*.tsx"], +} diff --git a/packages/random-id/webpack.config.js b/packages/random-id/webpack.config.js new file mode 100644 index 0000000000..1cda407f5a --- /dev/null +++ b/packages/random-id/webpack.config.js @@ -0,0 +1 @@ +module.exports = require("@k8slens/webpack").configForReact;