Skip to content

Commit 341aef6

Browse files
committed
temp [ci skip]
1 parent b2c6810 commit 341aef6

5 files changed

Lines changed: 45 additions & 24 deletions

File tree

examples/sushi/models/active_customers.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ MODEL (
1616

1717
SELECT customer_id, zip
1818
FROM sushi.customers
19-
WHERE status = 'active'
19+
WHERE status = 'active'

vscode/extension/src/webviews/lineagePanel.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -101,26 +101,28 @@ export class LineagePanel implements WebviewViewProvider, Disposable {
101101
break
102102
}
103103
default:
104-
console.log('Unhandled message type: ', message)
104+
console.log('Unhandled message type under vscode_callback: ', message)
105105
}
106106
break
107107
}
108108
case 'queryRequest': {
109109
console.log('queryRequest', message.payload)
110110
const payload = message.payload
111-
const response = this.lsp.call_custom_method(
112-
'sqlmesh/api',
113-
payload,
114-
)
115-
console.log('response from lsp', response)
116-
webviewView.webview.postMessage({
117-
key: 'query_response',
118-
payload: response,
111+
const requestId = message.payload.requestId
112+
const response = await this.lsp.call_custom_method(
113+
'sqlmesh/api',
114+
payload,
115+
)
116+
console.log('response from lsp', response, 'with requestId', requestId)
117+
webviewView.webview.postMessage({
118+
key: 'query_response',
119+
payload: response,
120+
requestId,
119121
})
120122
break
121123
}
122124
default:
123-
console.log('Unhandled message type: ', message)
125+
console.log('Unhandled message type under queryRequest: ', message)
124126
}
125127
},
126128
undefined,
@@ -177,7 +179,7 @@ export class LineagePanel implements WebviewViewProvider, Disposable {
177179
window.addEventListener('message', (event) => {
178180
console.log("message received in web view", event);
179181
// Only handle messages that are from the extension
180-
if (event.data && event.data.key === 'vscode_send') {
182+
if (event.data && event.data.key === 'vscode_send' || event.data.key === 'query_response') {
181183
const iframe = document.querySelector('iframe');
182184
if (iframe && iframe.contentWindow) {
183185
iframe.contentWindow.postMessage(event.data, '*');

vscode/react/src/api/instance.ts

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,32 +34,47 @@ interface FetchOptions<B extends object = any> {
3434
params?: Record<string, string | number | boolean | undefined | null>
3535
}
3636

37+
/**
38+
* A result is a value that can be either an ok or an error
39+
*/
40+
export type Result<T, E> = { ok: true; value: T } | { ok: false; error: E }
41+
42+
/**
43+
* returns true if the result is an error
44+
*/
45+
export const isErr = <T, E>(
46+
result: Result<T, E>,
47+
): result is { ok: false; error: E } => {
48+
return !result.ok
49+
}
50+
3751
async function fetchAPIDevelopment<T = any, B extends object = any>(
3852
config: FetchOptions<B>,
3953
options?: Partial<FetchOptionsWithSignal>,
4054
): Promise<T & ResponseWithDetail> {
4155
console.log('fetchAPIDevelopment', config, options)
42-
4356
// Generate a unique ID for this request
44-
const requestId = `query_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`
4557
// Create a promise that will resolve when we get a response with matching ID
4658
return new Promise((resolve, reject) => {
59+
const requestId = `query_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`
4760
// Set up listener for the response
4861
console.log('setting up listener for response')
4962
const messageHandler = (event: MessageEvent) => {
63+
console.log('messageHandler in listener api development', event, 'checking requestId', requestId, 'versus', event.data.requestId)
5064
if (
5165
event.data &&
52-
event.data.key === 'vscode_response' &&
53-
event.data.payload &&
54-
event.data.payload.requestId === requestId
66+
event.data.key === 'query_response' &&
67+
event.data.requestId === requestId
5568
) {
69+
console.log('messageHandler in listener api development correct', event)
5670
// Remove the listener once we get our response
5771
window.removeEventListener('message', messageHandler)
5872

59-
if (event.data.payload.error) {
60-
reject(new Error(event.data.payload.error))
73+
const payload = event.data.payload
74+
if (isErr(payload)) {
75+
reject(new Error(payload.error as string))
6176
} else {
62-
resolve(event.data.payload.data)
77+
resolve(payload.value)
6378
}
6479
}
6580
}
@@ -128,9 +143,10 @@ export async function fetchAPIProduction<T = any, B extends object = any>(
128143
// Set up listener for the response
129144
console.log('setting up listener for response')
130145
const messageHandler = (event: MessageEvent) => {
146+
console.log('messageHandler in listener api production', event)
131147
if (
132148
event.data &&
133-
event.data.key === 'vscode_response' &&
149+
event.data.key === 'query_response' &&
134150
event.data.payload &&
135151
event.data.payload.requestId === requestId
136152
) {

vscode/react/src/components/graph/ModelLineage.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ export function ModelLineage({
7878
const { refetch: getModelLineage, isFetching: isFetchingModelLineage } =
7979
useApiModelLineage(model.name)
8080
const { isFetching: isFetchingModels } = useApiModels()
81+
console.log('isfetchingmodels models', isFetchingModels)
8182

8283
const [isMegringModels, setIsMergingModels] = useState(false)
8384
const [modelLineage, setModelLineage] = useState<

vscode/react/src/pages/lineage.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export function LineagePage() {
2323
// Implement your focus change logic here
2424
break
2525
default:
26-
console.error('Unhandled message type:', payload.key)
26+
console.error('Unhandled message type in lineage page:', payload.key)
2727
}
2828
}
2929
}
@@ -53,12 +53,14 @@ export function LineagePage() {
5353
}
5454

5555
function Lineage() {
56-
const { data: models, isLoading: isLoadingModels } = useApiModels()
56+
const { data, isLoading: isLoadingModels } = useApiModels()
57+
console.log('data', data, 'isLoadingModels', isLoadingModels)
5758
if (isLoadingModels) {
5859
return <div>Loading models...</div>
5960
}
61+
const models = data?.data
6062
console.log('models', models)
61-
const modelsRecord = models?.reduce(
63+
const modelsRecord = models.reduce(
6264
(acc, model) => {
6365
acc[model.name] = model
6466
return acc

0 commit comments

Comments
 (0)