UNPKG

@finos/legend-graph

Version:
70 lines 2.93 kB
/** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { createModelSchema, primitive, custom, list, optional, serialize, } from 'serializr'; import { SerializationFactory, usingModelSchema, } from '@finos/legend-shared'; import { V1_serializeConnectionValue, V1_deserializeConnectionValue, } from '../../transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js'; export class V1_DatabasePattern { schemaPattern; tablePattern; functionPattern; escapeSchemaPattern; escapeTablePattern; escapeFunctionPattern; static serialization = new SerializationFactory(createModelSchema(V1_DatabasePattern, { schemaPattern: primitive(), tablePattern: primitive(), functionPattern: primitive(), escapeSchemaPattern: optional(primitive()), escapeTablePattern: optional(primitive()), escapeFunctionPattern: optional(primitive()), })); } export class V1_DatabaseBuilderConfig { maxTables; enrichTables; enrichTableFunctions; enrichPrimaryKeys; enrichColumns; patterns = []; static serialization = new SerializationFactory(createModelSchema(V1_DatabaseBuilderConfig, { maxTables: primitive(), enrichTables: primitive(), enrichTableFunctions: primitive(), enrichPrimaryKeys: primitive(), enrichColumns: primitive(), patterns: list(usingModelSchema(V1_DatabasePattern.serialization.schema)), })); } export class V1_TargetDatabase { package; name; static serialization = new SerializationFactory(createModelSchema(V1_TargetDatabase, { name: primitive(), package: primitive(), })); } export class V1_DatabaseBuilderInput { connection; config; targetDatabase; } const createDatabaseBuilderInputModelSchema = (plugins) => createModelSchema(V1_DatabaseBuilderInput, { config: usingModelSchema(V1_DatabaseBuilderConfig.serialization.schema), connection: custom((val) => V1_serializeConnectionValue(val, false, plugins), (val) => V1_deserializeConnectionValue(val, false, plugins)), targetDatabase: usingModelSchema(V1_TargetDatabase.serialization.schema), }); export const V1_serializeDatabaseBuilderInput = (value, plugins) => serialize(createDatabaseBuilderInputModelSchema(plugins), value); //# sourceMappingURL=V1_DatabaseBuilderInput.js.map