@@ -5,18 +5,24 @@ import { SshOptionsFields } from './SshOptionsFields';
55import { CaCertificateFields } from './CaCertificateFields' ;
66import { getDefaultIntegrationName } from './integrationUtils' ;
77
8+ type TrinoConfig = Extract < DatabaseIntegrationConfig , { type : 'trino' } > ;
9+ export type TrinoPasswordConfig = TrinoConfig & {
10+ metadata : Extract < TrinoConfig [ 'metadata' ] , { authMethod ?: 'password' | null | undefined } > ;
11+ } ;
12+
13+ export function isTrinoPasswordConfig ( config : TrinoConfig ) : config is TrinoPasswordConfig {
14+ return config . metadata . authMethod !== 'trino-oauth' ;
15+ }
16+
817export interface ITrinoFormProps {
918 integrationId : string ;
10- existingConfig : Extract < DatabaseIntegrationConfig , { type : 'trino' } > | null ;
19+ existingConfig : TrinoPasswordConfig | null ;
1120 defaultName ?: string ;
12- onSave : ( config : Extract < DatabaseIntegrationConfig , { type : 'trino' } > ) => void ;
21+ onSave : ( config : TrinoPasswordConfig ) => void ;
1322 onCancel : ( ) => void ;
1423}
1524
16- function createEmptyTrinoConfig ( params : {
17- id : string ;
18- name ?: string ;
19- } ) : Extract < DatabaseIntegrationConfig , { type : 'trino' } > {
25+ function createEmptyTrinoConfig ( params : { id : string ; name ?: string } ) : TrinoPasswordConfig {
2026 return {
2127 id : params . id ,
2228 name : ( params . name || getDefaultIntegrationName ( 'trino' ) ) . trim ( ) ,
@@ -38,7 +44,7 @@ export const TrinoForm: React.FC<ITrinoFormProps> = ({
3844 onSave,
3945 onCancel
4046} ) => {
41- const [ pendingConfig , setPendingConfig ] = React . useState < Extract < DatabaseIntegrationConfig , { type : 'trino' } > > (
47+ const [ pendingConfig , setPendingConfig ] = React . useState < TrinoPasswordConfig > (
4248 existingConfig
4349 ? structuredClone ( existingConfig )
4450 : createEmptyTrinoConfig ( { id : integrationId , name : defaultName } )
0 commit comments