• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import { ArktsObject } from "./ArktsObject"
17import { global } from "../static/global"
18import { passStringArray } from "../utilities/private"
19import { KNativePointer } from "@koalaui/interop"
20
21export class Config extends ArktsObject {
22    constructor(peer: KNativePointer) {
23        super(peer)
24        // TODO: wait for getter from api
25        this.path = ``
26    }
27
28    static create(
29        input: readonly string[]
30    ): Config {
31        console.log("[TS WRAPPER] CREATE CONFIG");
32        return new Config(
33            global.es2panda._CreateConfig(input.length, passStringArray(input))
34        )
35    }
36
37    static createDefault(): Config {
38        if (global.configIsInitialized()) {
39            console.warn(`Config already initialized`)
40            return new Config(
41                global.config
42            )
43        }
44        return new Config(
45            global.es2panda._CreateConfig(
46                4,
47                passStringArray(["", "--arktsconfig", "./arktsconfig.json", global.filePath])
48            )
49        )
50    }
51
52    readonly path: string
53}