@ codemod- utils/ json
处理JSON的水电费
这是什么?
@codemod-utils/json 帮助您更新文件例如 package.json 财务报告和审定财务报表 tsconfig.json。 。 。 .
API 密码
转换为映射, 转换为对象
convertToMap() 将对象转换为映射,同时 convertToObject() 将地图转换为对象。 利用这两个公用事业更新JSONs.
[注]
convertToObject()以字母顺序创建按键对象.
示例
删除依赖关系( 如果存在) 从 package.json。 。 。 .
const dependencies = convertToMap(packageJson['dependencies']);
const packagesToDelete = [
'@embroider/macros',
'ember-auto-import',
'ember-cli-babel',
'ember-cli-htmlbars',
];
packagesToDelete.forEach((packageName) => {
dependencies.delete(packageName);
});
packageJson['dependencies'] = convertToObject(dependencies);
示例
配置 tsconfig.json 在一个Ember应用程序.
const compilerOptions = convertToMap(tsConfigJson['compilerOptions']);
compilerOptions.set('paths', {
[`${appName}/tests/*`]: ['tests/*'],
[`${appName}/*`]: ['app/*'],
'*': ['types/*'],
});
tsConfigJson['compilerOptions'] = convertToObject(compilerOptions);
读取包Json
读取 package.json 并返回解析过的JSON.
[注]
readPackageJson()检查一下package.json已经存在,并且是有效的 JSON.
示例
检查正在运行的编码器的工程是否有 typescript 作为依赖.
import { readPackageJson } from '@codemod-utils/json';
const { dependencies, devDependencies } = readPackageJson({
projectRoot,
});
const projectDependencies = new Map([
...Object.entries(dependencies ?? {}),
...Object.entries(devDependencies ?? {}),
]);
const hasTypeScript = projectDependencies.has('typescript');
验证包Json
(字为-). 检查字段 name 财务报告和审定财务报表 version 存在,即它们的值是非空字符串.
示例
import { readPackageJson, validatePackageJson } from '@codemod-utils/json';
const packageJson = readPackageJson({ projectRoot });
validatePackageJson(packageJson);
// Both guaranteed to be `string` (not `undefined`)
const { name, version } = packageJson;
兼容性
- 节点.js v20 或以上
捐款
见 捐款 详细指南.
许可证
本项目根据以下规定获得许可证: MIT 许可证。 。 。 .