typed-jsonfile
Version:
47 lines (46 loc) • 2.31 kB
JavaScript
;
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;