From 19c24b09987c78f8adf68a78362f5d347c79e290 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Fri, 14 Apr 2023 07:58:48 +0300 Subject: [PATCH] feat: Introduce feature adapter for injectable-react and injectable-mobx Signed-off-by: Janne Savolainen --- .../basic-dependency-features/README.md | 3 ++ .../basic-dependency-features/index.ts | 2 ++ .../basic-dependency-features/package.json | 34 +++++++++++++++++++ .../src/injectable-mobx-feature.ts | 11 ++++++ .../src/injectable-react-feature.ts | 11 ++++++ .../basic-dependency-features/tsconfig.json | 3 ++ .../webpack.config.js | 1 + 7 files changed, 65 insertions(+) create mode 100644 packages/utility-features/basic-dependency-features/README.md create mode 100644 packages/utility-features/basic-dependency-features/index.ts create mode 100644 packages/utility-features/basic-dependency-features/package.json create mode 100644 packages/utility-features/basic-dependency-features/src/injectable-mobx-feature.ts create mode 100644 packages/utility-features/basic-dependency-features/src/injectable-react-feature.ts create mode 100644 packages/utility-features/basic-dependency-features/tsconfig.json create mode 100644 packages/utility-features/basic-dependency-features/webpack.config.js diff --git a/packages/utility-features/basic-dependency-features/README.md b/packages/utility-features/basic-dependency-features/README.md new file mode 100644 index 0000000000..718f8aa85f --- /dev/null +++ b/packages/utility-features/basic-dependency-features/README.md @@ -0,0 +1,3 @@ +# @k8slens/feature-injectable + +This package contains feature adapters for registering certain `@ogre-tools/injectable` extensions. diff --git a/packages/utility-features/basic-dependency-features/index.ts b/packages/utility-features/basic-dependency-features/index.ts new file mode 100644 index 0000000000..5e4ee382fa --- /dev/null +++ b/packages/utility-features/basic-dependency-features/index.ts @@ -0,0 +1,2 @@ +export { injectableReactFeature } from "./src/injectable-react-feature"; +export { injectableMobXFeature } from "./src/injectable-mobx-feature"; diff --git a/packages/utility-features/basic-dependency-features/package.json b/packages/utility-features/basic-dependency-features/package.json new file mode 100644 index 0000000000..6f99808d45 --- /dev/null +++ b/packages/utility-features/basic-dependency-features/package.json @@ -0,0 +1,34 @@ +{ + "name": "@k8slens/basic-dependency-features", + "description": "Contains basic Features that can be used as dependency Features to make clients of a Feature not need to know about dependencies of the Feature.", + "version": "1.0.0-alpha.0", + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, + "private": false, + "files": [ + "dist" + ], + "author": { + "name": "OpenLens Authors", + "email": "info@k8slens.dev" + }, + "license": "MIT", + "homepage": "https://github.com/lensapp/lens", + "scripts": { + "clean": "rimraf dist/", + "build": "webpack", + "lint": "lens-lint", + "lint:fix": "lens-lint --fix" + }, + "peerDependencies": { + "@k8slens/feature-core": "^6.5.0-alpha.0", + "@ogre-tools/injectable": "^15.1.2", + "@ogre-tools/injectable-extension-for-mobx": "^15.1.2", + "@ogre-tools/injectable-react": "^15.1.2" + } +} diff --git a/packages/utility-features/basic-dependency-features/src/injectable-mobx-feature.ts b/packages/utility-features/basic-dependency-features/src/injectable-mobx-feature.ts new file mode 100644 index 0000000000..9787fe73c1 --- /dev/null +++ b/packages/utility-features/basic-dependency-features/src/injectable-mobx-feature.ts @@ -0,0 +1,11 @@ +import { getFeature } from "@k8slens/feature-core"; +import type { DiContainer } from "@ogre-tools/injectable"; +import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; + +export const injectableMobXFeature = getFeature({ + id: "injectable-mobx", + + register: (di) => { + registerMobX(di as DiContainer); + }, +}); diff --git a/packages/utility-features/basic-dependency-features/src/injectable-react-feature.ts b/packages/utility-features/basic-dependency-features/src/injectable-react-feature.ts new file mode 100644 index 0000000000..4df0cb22ba --- /dev/null +++ b/packages/utility-features/basic-dependency-features/src/injectable-react-feature.ts @@ -0,0 +1,11 @@ +import { getFeature } from "@k8slens/feature-core"; +import type { DiContainer } from "@ogre-tools/injectable"; +import { registerInjectableReact } from "@ogre-tools/injectable-react"; + +export const injectableReactFeature = getFeature({ + id: "injectable-react", + + register: (di) => { + registerInjectableReact(di as DiContainer); + }, +}); diff --git a/packages/utility-features/basic-dependency-features/tsconfig.json b/packages/utility-features/basic-dependency-features/tsconfig.json new file mode 100644 index 0000000000..a4f6fa613e --- /dev/null +++ b/packages/utility-features/basic-dependency-features/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@k8slens/typescript/config/base.json" +} diff --git a/packages/utility-features/basic-dependency-features/webpack.config.js b/packages/utility-features/basic-dependency-features/webpack.config.js new file mode 100644 index 0000000000..3183f30179 --- /dev/null +++ b/packages/utility-features/basic-dependency-features/webpack.config.js @@ -0,0 +1 @@ +module.exports = require("@k8slens/webpack").configForNode;