Skip to content

Commit 1a76e5e

Browse files
committed
feat: Refactor the code base
Signed-off-by: Pascal Zimmermann <pascal.zimmermann@theiotstudio.com>
1 parent b5e29e4 commit 1a76e5e

17 files changed

Lines changed: 167 additions & 434 deletions

package-lock.json

Lines changed: 30 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sql/cue.mod/module.cue

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
1-
module: "github.com/perses/plugin/sql@v0"
1+
module: "github.com/perses/plugins/sql@v0"
22
language: {
3-
version: "v0.9.2"
3+
version: "v0.15.1"
44
}
55
source: {
66
kind: "git"
77
}
88
deps: {
9-
"github.com/perses/perses/cue@v0": {
10-
v: "v0.53.0-rc.0"
11-
default: true
12-
}
139
"github.com/perses/shared/cue@v0": {
14-
v: "v0.53.0-rc.1"
10+
v: "v0.53.1"
1511
default: true
1612
}
1713
}

sql/package.json

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@
2828
"@emotion/react": "^11.7.1",
2929
"@emotion/styled": "^11.6.0",
3030
"@hookform/resolvers": "^3.2.0",
31-
"@perses-dev/components": "^0.53.0-rc.1",
32-
"@perses-dev/core": "^0.53.0-beta.4",
33-
"@perses-dev/dashboards": "^0.53.0-rc.1",
34-
"@perses-dev/explore": "^0.53.0-rc.1",
35-
"@perses-dev/plugin-system": "^0.53.0-rc.1",
31+
"@perses-dev/client": "^0.54.0-beta.3",
32+
"@perses-dev/components": "^0.54.0-beta.3",
33+
"@perses-dev/spec": "^0.2.0-beta.2",
34+
"@perses-dev/dashboards": "^0.54.0-beta.3",
35+
"@perses-dev/explore": "^0.54.0-beta.3",
36+
"@perses-dev/plugin-system": "^0.54.0-beta.3",
3637
"@tanstack/react-query": "^4.39.1",
3738
"date-fns": "^4.1.0",
3839
"date-fns-tz": "^3.2.0",
@@ -82,14 +83,5 @@
8283
}
8384
}
8485
]
85-
},
86-
"devDependencies": {
87-
"@testing-library/jest-dom": "^6.9.1",
88-
"@testing-library/react": "^16.3.2",
89-
"@testing-library/user-event": "^14.6.1",
90-
"@types/jest": "^30.0.0",
91-
"identity-obj-proxy": "^3.0.0",
92-
"jest-environment-jsdom": "^30.2.0",
93-
"ts-jest": "^29.4.6"
9486
}
9587
}

sql/rsbuild.config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { createConfigForPlugin } from '../rsbuild.shared';
44
export default createConfigForPlugin({
55
name: 'SQL',
66
rsbuildConfig: {
7-
server: { port: 3001 },
7+
server: { port: 3122 },
88
plugins: [pluginReact()],
99
},
1010
moduleFederation: {
@@ -29,6 +29,7 @@ export default createConfigForPlugin({
2929
'@hookform/resolvers': { singleton: true },
3030
'@tanstack/react-query': { singleton: true },
3131
'react-hook-form': { singleton: true },
32+
'react-router-dom': { singleton: true },
3233
'use-resize-observer': { singleton: true },
3334
},
3435
},

sql/schemas/datasource/sql.cue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
package model
1515

1616
import (
17+
"github.com/perses/shared/cue/common"
1718
commonProxy "github.com/perses/shared/cue/common/proxy"
1819
)
1920

sql/schemas/sql-time-series-query/sql-time-series-query.cue

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,19 @@
1313

1414
package model
1515

16+
import (
17+
ds "github.com/perses/plugins/sql/schemas/datasource:model"
18+
)
19+
20+
#kind: "SQLTimeSeriesQuery"
21+
1622
kind: #kind
17-
spec: {
18-
datasource?: {
19-
kind: "SQLDatasource"
20-
}
23+
spec: close({
24+
ds.#selector
2125
query: string
2226
minStep?: int
2327
timeColumn?: string
2428
labelColumns?: [...string]
2529
valueColumns?: [...string]
2630
timeFormat?: string
27-
}
28-
29-
#kind: "SQLTimeSeriesQuery"
31+
})

sql/src/explore/SQLExplorer.tsx

Lines changed: 19 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// See the License for the specific language governing permissions and
1212
// limitations under the License.
1313

14-
import { QueryDefinition } from '@perses-dev/core';
14+
import { QueryDefinition } from '@perses-dev/spec';
1515
import { Box, Stack, Tab, Tabs } from '@mui/material';
1616
import { DataQueriesProvider, MultiQueryEditor, useSuggestedStepMs } from '@perses-dev/plugin-system';
1717
import { useExplorerManagerContext } from '@perses-dev/explore';
@@ -27,24 +27,22 @@ interface SQLExplorerQueryParams {
2727
const PANEL_PREVIEW_HEIGHT = 700;
2828
const FILTERED_QUERY_PLUGINS = ['SQLTimeSeriesQuery'];
2929

30+
function toQueryDefinitions(queries: QueryDefinition[]) {
31+
return queries.map((query) => ({
32+
kind: query.spec.plugin.kind,
33+
spec: query.spec.plugin.spec,
34+
}));
35+
}
36+
3037
function TimeSeriesPanel({ queries }: { queries: QueryDefinition[] }): ReactElement {
3138
const { width, ref: boxRef } = useResizeObserver();
3239
const height = PANEL_PREVIEW_HEIGHT;
3340

3441
const suggestedStepMs = useSuggestedStepMs(width);
3542

36-
const definitions = queries.length
37-
? queries.map((query) => {
38-
return {
39-
kind: query.spec.plugin.kind,
40-
spec: query.spec.plugin.spec,
41-
};
42-
})
43-
: [];
44-
4543
return (
4644
<Box ref={boxRef} height={height}>
47-
<DataQueriesProvider definitions={definitions} options={{ suggestedStepMs, mode: 'range' }}>
45+
<DataQueriesProvider definitions={toQueryDefinitions(queries)} options={{ suggestedStepMs, mode: 'range' }}>
4846
<Panel
4947
panelOptions={{
5048
hideHeader: true,
@@ -62,16 +60,9 @@ function TimeSeriesPanel({ queries }: { queries: QueryDefinition[] }): ReactElem
6260
function DataTable({ queries }: { queries: QueryDefinition[] }): ReactElement {
6361
const height = PANEL_PREVIEW_HEIGHT;
6462

65-
const definitions = queries.map((query) => {
66-
return {
67-
kind: query.spec.plugin.kind,
68-
spec: query.spec.plugin.spec,
69-
};
70-
});
71-
7263
return (
7364
<Box height={height}>
74-
<DataQueriesProvider definitions={definitions} options={{ mode: 'instant' }}>
65+
<DataQueriesProvider definitions={toQueryDefinitions(queries)} options={{ mode: 'instant' }}>
7566
<Panel
7667
panelOptions={{
7768
hideHeader: true,
@@ -106,30 +97,15 @@ export function SQLExplorer(): ReactElement {
10697
<Tab value="graph" label="Graph" />
10798
</Tabs>
10899
<Stack gap={1}>
109-
{tab === 'table' && (
110-
<Stack>
111-
<MultiQueryEditor
112-
queryTypes={['TimeSeriesQuery']}
113-
onChange={(state) => setQueryDefinitions(state)}
114-
queries={queryDefinitions}
115-
onQueryRun={() => setData({ tab, queries: queryDefinitions })}
116-
filteredQueryPlugins={FILTERED_QUERY_PLUGINS}
117-
/>
118-
<DataTable queries={queries} />
119-
</Stack>
120-
)}
121-
{tab === 'graph' && (
122-
<Stack>
123-
<MultiQueryEditor
124-
queryTypes={['TimeSeriesQuery']}
125-
onChange={(state) => setQueryDefinitions(state)}
126-
queries={queryDefinitions}
127-
onQueryRun={() => setData({ tab, queries: queryDefinitions })}
128-
filteredQueryPlugins={FILTERED_QUERY_PLUGINS}
129-
/>
130-
<TimeSeriesPanel queries={queries} />
131-
</Stack>
132-
)}
100+
<MultiQueryEditor
101+
queryTypes={['TimeSeriesQuery']}
102+
onChange={(state) => setQueryDefinitions(state)}
103+
queries={queryDefinitions}
104+
onQueryRun={() => setData({ tab, queries: queryDefinitions })}
105+
filteredQueryPlugins={FILTERED_QUERY_PLUGINS}
106+
/>
107+
{tab === 'table' && <DataTable queries={queries} />}
108+
{tab === 'graph' && <TimeSeriesPanel queries={queries} />}
133109
</Stack>
134110
</Stack>
135111
);

sql/src/explore/sql-explorer-types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// See the License for the specific language governing permissions and
1212
// limitations under the License.
1313

14-
import { DatasourceSelector, QueryDefinition } from '@perses-dev/core';
14+
import { DatasourceSelector, QueryDefinition } from '@perses-dev/spec';
1515

1616
export interface SQLExplorerSpec {
1717
datasource?: DatasourceSelector;

sql/src/index-federation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1111
// See the License for the specific language governing permissions and
1212
// limitations under the License.
13-
export { getPluginModule } from './getPluginModule';
13+
import('./bootstrap');

sql/src/model/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111
// See the License for the specific language governing permissions and
1212
// limitations under the License.
1313

14-
export * from './sql-client';
14+
export * from './replace-sql-builtin-variables';

0 commit comments

Comments
 (0)