diff --git a/.gitignore b/.gitignore index 67bb0a9c04..5fb2b5f315 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,11 @@ dist/ -out/ node_modules/ .DS_Store yarn-error.log coverage/ tmp/ -static/build/** +static/build +static/types binaries/client/ binaries/server/ src/extensions/*/*.js diff --git a/package.json b/package.json index 02bee1dcb8..42c544196b 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "compile:main": "webpack --config webpack.main.ts", "compile:renderer": "webpack --config webpack.renderer.ts", "compile:i18n": "lingui compile", + "compile:extension-api.d.ts": "tsc --project src/extensions", "build:linux": "yarn compile && electron-builder --linux --dir -c.productName=Lens", "build:mac": "yarn compile && electron-builder --mac --dir -c.productName=Lens", "build:win": "yarn compile && electron-builder --win --dir -c.productName=Lens", diff --git a/src/extensions/example-extension/example-extension.ts b/src/extensions/example-extension/example-extension.ts index a522e26370..f76533813a 100644 --- a/src/extensions/example-extension/example-extension.ts +++ b/src/extensions/example-extension/example-extension.ts @@ -1,10 +1,6 @@ -import { LensExtension, LensRendererRuntimeEnv } from "@lens/extensions"; +import { LensExtension, LensRendererRuntimeEnv } from "@lens/extensions"; // fixme: map to generated types from "extension-api.d.ts" export default class ExampleExtension extends LensExtension { - todo(){ - console.log(this.runtime.apiManager); // fixme: incorrect types import, "runtime" doesn't exists - } - async activate(runtime: LensRendererRuntimeEnv): Promise { await super.activate(runtime); console.log('Example extension: activate'); diff --git a/src/extensions/example-extension/tsconfig.json b/src/extensions/example-extension/tsconfig.json index b94897c696..18f439fad3 100644 --- a/src/extensions/example-extension/tsconfig.json +++ b/src/extensions/example-extension/tsconfig.json @@ -1,21 +1,11 @@ { + "extends": "../../../tsconfig.json", "compilerOptions": { - "jsx": "react", - "target": "ES2017", - "lib": ["ESNext", "DOM", "DOM.Iterable"], "module": "CommonJS", - "moduleResolution": "Node", - "noImplicitAny": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "allowJs": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "resolveJsonModule": true, - "skipLibCheck": true + "sourceMap": false, + "declaration": false }, "include": [ - "../extension-api.mock.d.ts", "./example-extension.ts" ] } diff --git a/src/extensions/extension-api.mock.d.ts b/src/extensions/extension-api.mock.d.ts deleted file mode 100644 index 394a536828..0000000000 --- a/src/extensions/extension-api.mock.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare module "@lens/extensions" { - export = LensExtensions -} - -declare namespace LensExtensions { - export { - LensExtension, ExtensionManifest, ExtensionVersion, ExtensionId, LensRendererRuntimeEnv - } from "./extension-api" -} diff --git a/src/extensions/extension-api.runtime.ts b/src/extensions/extension-api.runtime.ts index 933f6aafd5..02792a4f66 100644 --- a/src/extensions/extension-api.runtime.ts +++ b/src/extensions/extension-api.runtime.ts @@ -5,7 +5,7 @@ export interface LensRendererRuntimeEnv { apiManager: ApiManager; } -// todo: expose more renderer runtime variables, stores, etc. +// todo: expose more public runtime apis: stores, managers, etc. export function getExtensionRuntime(): LensRendererRuntimeEnv { return { apiManager, diff --git a/src/extensions/extension-api.ts b/src/extensions/extension-api.ts index 054c7443ae..1e2a5ab8c2 100644 --- a/src/extensions/extension-api.ts +++ b/src/extensions/extension-api.ts @@ -1,5 +1,4 @@ -// Lens-extensions.api.js developer kit -// todo: generate types instead of extension-api.mock.d.ts +// Lens-extensions api developer's kit -export { LensRendererRuntimeEnv } from "./extension-api.runtime"; +export type { LensRendererRuntimeEnv } from "./extension-api.runtime"; export * from "./extension" diff --git a/src/extensions/tsconfig.json b/src/extensions/tsconfig.json new file mode 100644 index 0000000000..bc688c7ebe --- /dev/null +++ b/src/extensions/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "module": "AMD", + "declaration": true, + "emitDeclarationOnly": true, + "outFile": "./../../static/types/extension-api.d.ts" + }, + "include": [ + "../../types", + "./extension-api.ts" + ] +} diff --git a/src/main/menu.ts b/src/main/menu.ts index b6f49cd261..2389ad1ec0 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -73,10 +73,9 @@ export function buildMenu(windowManager: WindowManager) { navigate(preferencesURL()) } }, - { type: 'separator' }, { label: 'Extensions', - accelerator: 'CmdOrCtrl+Shift+E', + accelerator: 'CmdOrCtrl+E', click() { navigate(extensionsURL()) } diff --git a/types/mocks.d.ts b/types/mocks.d.ts index 7ddd25267b..9c8bf60047 100644 --- a/types/mocks.d.ts +++ b/types/mocks.d.ts @@ -3,6 +3,7 @@ declare module "mac-ca" declare module "win-ca" declare module "@hapi/call" declare module "@hapi/subtext" +declare module "@lens/extensions" // fixme: provide generated types from "extension-api.ts" // Global path to static assets declare const __static: string;