Skip to content

Instantly share code, notes, and snippets.

View ljmotta's full-sized avatar

Luiz João Motta ljmotta

  • Senior Software Engineer - IBM
  • São Paulo, SP - Brazil
View GitHub Profile
@ljmotta
ljmotta / EmbeddedTodoList.tsx
Last active October 14, 2020 13:35
EmbeddedTodoList Poll Init
import { EnvelopeServer } from "@kogito-tooling/envelope-bus/dist/channel";
import { TodoListChannelApi, TodoListEnvelopeApi } from "../api";
export const EmbeddedTodoList = React.forwardRef<TodoListApi, Props>((props, forwardedRef) => {
const pollInit = useCallback((envelopeServer: EnvelopeServer<TodoListChannelApi, TodoListEnvelopeApi>) => {
return envelopeServer.envelopeApi.requests.todoList__init(
{
origin: envelopeServer.origin,
envelopeServerId: envelopeServer.id,
},
@ljmotta
ljmotta / EmbeddedTodoList.tsx
Last active October 14, 2020 13:35
EmbeddedTodoList Ref Forwarding Component
import { TodoListApi, TodoListChannelApi } from "../api";
export type Props = TodoListChannelApi & {
targetOrigin: string;
envelopePath: string;
};
export const EmbeddedTodoList = React.forwardRef<TodoListApi, Props>((props, forwardedRef) => {
// ...
});
@ljmotta
ljmotta / TodoListEnvelopeApi.ts
Created October 14, 2020 13:24
TodoList Envelope Api
export interface TodoListEnvelopeApi {
todoList__init(association: Association, initArgs: TodoListInitArgs): Promise<void>;
todoList__addItem(item: string): Promise<void>;
todoList__getItems(): Promise<Item[]>;
todoList__markAllAsCompleted(): void;
}
export interface Association {
origin: string;
envelopeServerId: string;
@ljmotta
ljmotta / TodoListChannelApi.ts
Created October 14, 2020 13:23
TodoList Channel Api
export interface TodoListChannelApi {
todoList__itemRemoved(item: string): void;
}
@ljmotta
ljmotta / TodoListApi.ts
Created October 14, 2020 13:22
TodoList Api
import { Item } from "./TodoListEnvelopeApi";
export interface TodoListApi {
addItem(item: string): Promise<void>;
getItems(): Promise<Item[]>;
markAllAsCompleted(): void;
}
@ljmotta
ljmotta / index.ts
Created October 13, 2020 21:32
Base64Png VS Code init
import { init } from "@kogito-tooling/editor/dist/envelope";
import { Base64PngEditorFactory } from "base64png-editor";
import { ChannelType, getOperatingSystem } from "@kogito-tooling/channel-common-api";
declare global {
export const acquireVsCodeApi: any;
}
init({
container: document.getElementById("envelope-app")!,
@ljmotta
ljmotta / extension.ts
Created October 13, 2020 21:31
Base64Png VS Code package.json deactivate
export function deactivate() {
console.info("Extension is deactivating");
backendProxy?.stopServices();
}
@ljmotta
ljmotta / extension.ts
Last active October 13, 2020 21:30
Base64Png VS Code package.json activate part2
import * as vscode from "vscode";
import * as path from "path";
import * as fs from "fs";
let backendProxy: VsCodeBackendProxy;
export function activate(context: vscode.ExtensionContext) {
// ...
context.subscriptions.push(
@ljmotta
ljmotta / extension.ts
Created October 13, 2020 21:26
Base64Png VS Code package.json extension
import * as vscode from "vscode";
import * as KogitoVsCode from "@kogito-tooling/vscode-extension";
import { VsCodeBackendProxy } from "@kogito-tooling/backend/dist/vscode";
import { I18n } from "@kogito-tooling/i18n/dist/core";
import { backendI18nDefaults, backendI18nDictionaries } from "@kogito-tooling/backend/dist/i18n";
export function activate(context: vscode.ExtensionContext) {
const backendI18n = new I18n(backendI18nDefaults, backendI18nDictionaries, vscode.env.language);
backendProxy = new VsCodeBackendProxy(context, backendI18n);
@ljmotta
ljmotta / extension.ts
Created October 13, 2020 21:20
Base64Png VS Code package.json extension
import * as vscode from "vscode";
export function activate(context: vscode.ExtensionContext) {
console.info("Extension is alive.");
// activate code here
}
export function deactivate() {
console.info("Extension is deactivating");