Skip to content

Commit

Permalink
feature: add new execute command (#16)
Browse files Browse the repository at this point in the history
* feature: add new execute command

* fix

* rename

* simplify code

* remove unused code

* build

* remove unused code

* build

* build

* build
  • Loading branch information
levivilet authored Jan 13, 2025
1 parent f78e23e commit c5eb220
Show file tree
Hide file tree
Showing 16 changed files with 38 additions and 113 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"test:watch": "node --unhandled-rejections=warn --experimental-vm-modules ./node_modules/jest/bin/jest.js --watch",
"e2e": "cd packages/e2e && npm run e2e",
"e2e:headless": "cd packages/e2e && npm run e2e:headless",
"build": "node scripts/build.js"
"build": "node packages/build/src/build-static.js"
},
"keywords": [],
"author": "",
Expand Down
18 changes: 5 additions & 13 deletions packages/build/src/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,16 @@ fs.cpSync(join(restClientWorker, 'src'), join(root, 'dist', 'rest-client-worker'
recursive: true,
})

const workerUrlFilePath = path.join(root, 'dist', 'src', 'parts', 'RestClientWorkerUrl', 'RestClientWorkerUrl.ts')
await replace({
path: workerUrlFilePath,
occurrence: 'src/restClientWorkerMain.ts',
replacement: 'dist/restClientWorkerMain.js',
})

const assetDirPath = path.join(root, 'dist', 'src', 'parts', 'AssetDir', 'AssetDir.ts')
await replace({
path: assetDirPath,
occurrence: '../../../../',
replacement: '../',
path: join(root, 'dist', 'extension.json'),
occurrence: 'src/restClientMain.ts',
replacement: 'dist/restClientMain.js',
})

await replace({
path: join(root, 'dist', 'extension.json'),
occurrence: 'src/restClientMain.ts',
replacement: 'dist/restClientMain.js',
occurrence: '../rest-client-worker/src/restClientWorkerMain.ts',
replacement: '../rest-client-worker/dist/restClientWorkerMain.js',
})

await bundleJs(
Expand Down
4 changes: 2 additions & 2 deletions packages/extension/extension.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
"id": "builtin.rest-client.rest-client-worker",
"type": "web-worker",
"name": "Rest Client Worker",
"url": "../rest-client-worler/src/restClientWorkerMain.ts",
"url": "../rest-client-worker/src/restClientWorkerMain.ts",
"contentSecurityPolicy": ["default-src 'none'"]
}
],
"webViews": [
{
"id": "builtin.rest-client",
"rpc": true,
"rpc": "builtin.rest-client.rest-client-worker",
"selector": [".rest"],
"sandbox": ["allow-forms"],
"contentSecurityPolicy": ["default-src 'none'", "script-src 'self'", "style-src 'self'"],
Expand Down
1 change: 0 additions & 1 deletion packages/extension/src/parts/AssetDir/AssetDir.ts

This file was deleted.

18 changes: 0 additions & 18 deletions packages/extension/src/parts/FilterAggregates/FilterAggregates.ts

This file was deleted.

This file was deleted.

This file was deleted.

28 changes: 1 addition & 27 deletions packages/extension/src/parts/Main/Main.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1 @@
import * as RestClientWorker from '../RestClientWorker/RestClientWorker.ts'

const webViewProvider = {
id: 'builtin.rest-client',
async create(webView, uri) {
// @ts-ignore
const content = await vscode.readFile(uri)
const [method, url] = content.split(' ')
await webView.invoke('initialize', method, url)
// @ts-ignore
this.webView = webView
},
async open(uri, webView) {},
commands: {
async handleSubmit(method, url) {
const result = await RestClientWorker.invoke('RestClient.execute', method, url)
// @ts-ignore
const webView = webViewProvider.webView
await webView.invoke('setOutput', result)
},
},
}

export const activate = () => {
// @ts-ignore
vscode.registerWebViewProvider(webViewProvider)
}
export const activate = () => {}

This file was deleted.

This file was deleted.

10 changes: 8 additions & 2 deletions packages/rest-client-worker/src/parts/CommandMap/CommandMap.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import * as Execute from '../Execute/Execute.ts'
import * as Create2 from '../Create2/Create2.ts'
import * as Execute from '../Execute/Execute.ts'
import * as Execute2 from '../Execute2/Execute2.ts'
import * as WrapCommand from '../WrapCommand/WrapCommand.ts'

export const commandMap = {
'RestClient.execute': Execute.execute,
// new
handleSubmit: WrapCommand.wrapCommand(Execute2.execute2),
'Webview.create': Create2.create2,

// old
'RestClient.execute': Execute.execute,
}
4 changes: 3 additions & 1 deletion packages/rest-client-worker/src/parts/Create/Create.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import type { WebView } from '../WebView/WebView.ts'
import * as WebViewStates from '../WebViewStates/WebViewStates.ts'

export const create = (id: number, port: MessagePort): void => {
export const create = (id: number, port: MessagePort, method: string, url: string): void => {
const webview: WebView = {
port,
method,
url,
}
WebViewStates.set(id, webview)
}
2 changes: 1 addition & 1 deletion packages/rest-client-worker/src/parts/Create2/Create2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import * as Rpc from '../Rpc/Rpc.ts'
export const create2 = async ({ port, savedState, webViewId, uri }) => {
const content = await Rpc.invoke('WebView.readFile', uri)
const [method, url] = content.split(' ')
Create.create(id, port)
Create.create(id, port, method, uri)
await port.invoke('initialize', method, url)
return {}
}
8 changes: 8 additions & 0 deletions packages/rest-client-worker/src/parts/Execute2/Execute2.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import * as Execute from '../Execute/Execute.ts'
import * as WebViewStates from '../WebViewStates/WebViewStates.ts'

export const execute2 = async (id: number) => {
const { method, url, port } = WebViewStates.get(id)
const result = await Execute.execute(method, url)
await port.invoke('setOutput', result)
}
2 changes: 2 additions & 0 deletions packages/rest-client-worker/src/parts/WebView/WebView.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
export interface WebView {
readonly port: any
readonly method: string
readonly url: string
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { id } from '../Id/Id.ts'

export const wrapCommand = (fn) => {
return async (...args) => {
await fn(id, ...args)
}
}

0 comments on commit c5eb220

Please sign in to comment.