This is an automated email from the ASF dual-hosted git repository. marat pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
The following commit(s) were added to refs/heads/main by this push: new a372739c config a372739c is described below commit a372739cce6f84770d40b4774264ada68e34d3a0 Author: Marat Gubaidullin <ma...@talismancloud.io> AuthorDate: Wed Sep 25 12:34:23 2024 -0400 config --- karavan-core/src/core/api/MainConfigurationApi.ts | 47 ++++++++++++++++++++++ .../src/core/model/MainConfigurationModel.ts | 37 +++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/karavan-core/src/core/api/MainConfigurationApi.ts b/karavan-core/src/core/api/MainConfigurationApi.ts new file mode 100644 index 00000000..1ddcbf9d --- /dev/null +++ b/karavan-core/src/core/api/MainConfigurationApi.ts @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 { ApplicationProperty, ApplicationPropertyGroup } from '../model/MainConfigurationModel'; + +const MainApplicationProperties: ApplicationProperty[] = []; +const MainApplicationGroups: ApplicationPropertyGroup[] = []; + +export class MainConfigurationApi { + private constructor() {} + + + static saveApplicationProperties = (objects: [], clean: boolean = false): void => { + if (clean) MainApplicationProperties.length = 0; + const properties: ApplicationProperty[] = objects.map(object => new ApplicationProperty(object)); + MainApplicationProperties.push(...properties); + }; + + static getApplicationProperties = (): ApplicationProperty[] => { + const comps: ApplicationProperty[] = []; + comps.push(...MainApplicationProperties); + return comps; + }; + + static findByName = (name: string): ApplicationProperty | undefined => { + return MainConfigurationApi.getApplicationProperties().find((c: ApplicationProperty) => c.name === name); + }; + + static saveApplicationPropertyGroups = (objects: []): void => { + MainApplicationGroups.length = 0; + const properties: ApplicationPropertyGroup[] = objects.map(object => new ApplicationPropertyGroup(object)); + MainApplicationProperties.push(...properties); + }; +} diff --git a/karavan-core/src/core/model/MainConfigurationModel.ts b/karavan-core/src/core/model/MainConfigurationModel.ts new file mode 100644 index 00000000..94f15240 --- /dev/null +++ b/karavan-core/src/core/model/MainConfigurationModel.ts @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +export class ApplicationProperty { + name: string = ''; + value?: string; + defaultValue?: string; + description?: string; + type?: string; + + public constructor(init?: Partial<ApplicationProperty>) { + Object.assign(this, init); + } +} + +export class ApplicationPropertyGroup { + name: string = ''; + description?: string; + + public constructor(init?: Partial<ApplicationPropertyGroup>) { + Object.assign(this, init); + } +}