mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Initial in-app survey implementation
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
This commit is contained in:
parent
2543e4aec7
commit
ee5cb43106
7718
extensions/survey/package-lock.json
generated
Normal file
7718
extensions/survey/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
26
extensions/survey/package.json
Normal file
26
extensions/survey/package.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "lens-survey",
|
||||
"version": "0.1.0",
|
||||
"description": "Lens survey",
|
||||
"renderer": "dist/renderer.js",
|
||||
"lens": {
|
||||
"metadata": {},
|
||||
"styles": []
|
||||
},
|
||||
"scripts": {
|
||||
"build": "webpack -p",
|
||||
"dev": "webpack --watch",
|
||||
"test": "jest --passWithNoTests --env=jsdom src $@"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"@k8slens/extensions": "file:../../src/extensions/npm/extensions",
|
||||
"jest": "^26.6.3",
|
||||
"node-machine-id": "^1.1.12",
|
||||
"react": "^16.13.1",
|
||||
"refiner-js": "^1.0.1",
|
||||
"ts-loader": "^8.0.4",
|
||||
"typescript": "^4.0.3",
|
||||
"webpack": "^4.44.2"
|
||||
}
|
||||
}
|
||||
8
extensions/survey/renderer.tsx
Normal file
8
extensions/survey/renderer.tsx
Normal file
@ -0,0 +1,8 @@
|
||||
import { LensRendererExtension } from "@k8slens/extensions";
|
||||
import { survey } from "./src/survey";
|
||||
|
||||
export default class SurveyRendererExtension extends LensRendererExtension {
|
||||
async onActivate() {
|
||||
survey.start();
|
||||
}
|
||||
}
|
||||
3
extensions/survey/src/refiner-js.d.ts
vendored
Normal file
3
extensions/survey/src/refiner-js.d.ts
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
declare module "refiner-js" {
|
||||
export default function Refiner(key: string, value: string|object|number|Boolean|Array): void;
|
||||
}
|
||||
22
extensions/survey/src/survey.ts
Normal file
22
extensions/survey/src/survey.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import { Util } from "@k8slens/extensions";
|
||||
import { machineIdSync } from "node-machine-id";
|
||||
import Refiner from "refiner-js";
|
||||
|
||||
export class Survey extends Util.Singleton {
|
||||
static readonly PROJECT_ID = "12a3b8f0-4f5e-11eb-84d0-212af0117cc2";
|
||||
protected anonymousId: string;
|
||||
|
||||
private constructor() {
|
||||
super();
|
||||
this.anonymousId = machineIdSync();
|
||||
}
|
||||
|
||||
start() {
|
||||
Refiner("setProject", Survey.PROJECT_ID);
|
||||
Refiner("identifyUser", {
|
||||
id: this.anonymousId,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export const survey = Survey.getInstance<Survey>();
|
||||
29
extensions/survey/tsconfig.json
Normal file
29
extensions/survey/tsconfig.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"outDir": "dist",
|
||||
"baseUrl": ".",
|
||||
"module": "CommonJS",
|
||||
"target": "ES2017",
|
||||
"lib": ["ESNext", "DOM", "DOM.Iterable"],
|
||||
"moduleResolution": "Node",
|
||||
"sourceMap": false,
|
||||
"declaration": false,
|
||||
"strict": false,
|
||||
"noImplicitAny": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"experimentalDecorators": true,
|
||||
"jsx": "react",
|
||||
"paths": {
|
||||
"*": [
|
||||
"node_modules/*",
|
||||
"../../types/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"include": [
|
||||
"renderer.ts",
|
||||
"src/**/*"
|
||||
]
|
||||
}
|
||||
36
extensions/survey/webpack.config.js
Normal file
36
extensions/survey/webpack.config.js
Normal file
@ -0,0 +1,36 @@
|
||||
const path = require("path");
|
||||
|
||||
module.exports = [
|
||||
{
|
||||
entry: "./renderer.tsx",
|
||||
context: __dirname,
|
||||
target: "electron-renderer",
|
||||
mode: "production",
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.tsx?$/,
|
||||
use: "ts-loader",
|
||||
exclude: /node_modules/,
|
||||
},
|
||||
],
|
||||
},
|
||||
externals: [
|
||||
{
|
||||
"@k8slens/extensions": "var global.LensExtensions",
|
||||
"react": "var global.React",
|
||||
"mobx": "var global.Mobx",
|
||||
"mobx-react": "var global.MobxReact"
|
||||
}
|
||||
],
|
||||
resolve: {
|
||||
extensions: [ ".tsx", ".ts", ".js" ],
|
||||
},
|
||||
output: {
|
||||
libraryTarget: "commonjs2",
|
||||
globalObject: "this",
|
||||
filename: "renderer.js",
|
||||
path: path.resolve(__dirname, "dist"),
|
||||
},
|
||||
},
|
||||
];
|
||||
Loading…
Reference in New Issue
Block a user