UNPKG

typed-jsonfile

Version:
47 lines (46 loc) 2.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.writeTsconfigJsonFile = exports.readTsconfigJsonFile = exports.writePackageJsonFile = exports.readPackageJsonFile = exports.writeJsonFile = exports.readJsonFile = void 0; const fs_1 = __importDefault(require("fs")); const jsonfile_1 = require("jsonfile"); const path_1 = require("path"); const parseJsonc_1 = require("./parseJsonc"); // todo support uri const readJsonFile = async (path, options) => { const jsonc = 'jsonc' in (options !== null && options !== void 0 ? options : {}) ? options.jsonc : path.endsWith('.jsonc'); if (jsonc) return (0, parseJsonc_1.parseJsoncString)(await fs_1.default.promises.readFile(path, 'utf-8')); return (0, jsonfile_1.readFile)(path, options); }; exports.readJsonFile = readJsonFile; // TODO undefiend values, as always const writeJsonFile = (path, object, options) => (0, jsonfile_1.writeFile)(path, object, options); exports.writeJsonFile = writeJsonFile; const readPackageJsonFile = (path, options) => { if (typeof path === 'object') path = (0, path_1.join)(path.dir, 'package.json'); return (0, jsonfile_1.readFile)(path, options); }; exports.readPackageJsonFile = readPackageJsonFile; const writePackageJsonFile = (path, packageJson, options) => { if (typeof path === 'object') path = (0, path_1.join)(path.dir, 'package.json'); return (0, jsonfile_1.writeFile)(path, packageJson, options); }; exports.writePackageJsonFile = writePackageJsonFile; const readTsconfigJsonFile = async (path, { errorTolerant, } = {}) => { if (typeof path === 'object') path = (0, path_1.join)(path.dir, 'tsconfig.json'); const jsonc = await fs_1.default.promises.readFile(path, 'utf-8'); return (0, parseJsonc_1.parseJsoncString)(jsonc, errorTolerant); }; exports.readTsconfigJsonFile = readTsconfigJsonFile; const writeTsconfigJsonFile = (path, tsconfigJson, options) => { if (typeof path === 'object') path = (0, path_1.join)(path.dir, 'tsconfig.json'); return (0, jsonfile_1.writeFile)(path, tsconfigJson, options); }; exports.writeTsconfigJsonFile = writeTsconfigJsonFile;