@finos/legend-graph
Version:
Legend graph and graph manager
70 lines • 2.93 kB
JavaScript
/**
* 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