@kintone/plugin-manifest-validator
Version:
[](https://badge.fury.io/js/%40kintone%2Fplugin-manifest-validator) ;
exports.checkRequiredProperties = void 0;
const checkRequiredProperties = (json, schema) => {
if (!schema.items || schema.items.length === 0) {
return [];
}
const missingProperties = [];
schema.items.forEach((item) => {
if (typeof item === "object") {
missingProperties.push(...getMissingPropertiesInObjectItem(json, item));
}
else if (isMissingProperty(json, item)) {
missingProperties.push(item);
}
});
return missingProperties.map((property) => generateErrorMessage(property, schema.warn));
};
exports.checkRequiredProperties = checkRequiredProperties;
const getMissingPropertiesInObjectItem = (json, items) => {
const missingProperties = [];
Object.keys(items).forEach((key) => {
const properties = items[key].properties;
if (!properties || properties.length === 0) {
return;
}
properties.forEach((prop) => {
if (isMissingProperty(json, key) || isMissingProperty(json[key], prop)) {
missingProperties.push(`${key}.${prop}`);
}
});
});
return missingProperties;
};
const isMissingProperty = (json, property) => {
return !json[property];
};
const generateErrorMessage = (property, warning = false) => `Property "${property}" is ${warning ? "missing" : "required"}.`;
//# sourceMappingURL=check-required-properties.js.map