UNPKG

@bubblewrap/core

Version:

Core Library to generate, build and sign TWA projects

53 lines (52 loc) 1.76 kB
"use strict"; /* * Copyright 2019 Google Inc. All Rights Reserved. * * 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. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Config = void 0; const fs_1 = require("fs"); const path_1 = require("path"); class Config { constructor(jdkPath, androidSdkPath) { this.jdkPath = jdkPath; this.androidSdkPath = androidSdkPath; } serialize() { return JSON.stringify(this); } async saveConfig(path) { await fs_1.promises.mkdir((0, path_1.dirname)(path), { recursive: true }); await fs_1.promises.writeFile(path, this.serialize()); } static deserialize(data) { const config = JSON.parse(data); return new Config(config.jdkPath, config.androidSdkPath); } static async loadConfig(path) { try { const data = await fs_1.promises.readFile(path, 'utf8'); return Config.deserialize(data); } catch (err) { if (err instanceof Error) { // If config file does not exist if (err.code === 'ENOENT') return undefined; } throw err; } } } exports.Config = Config;