mirror of
https://github.com/github/codeql-action.git
synced 2026-10-03 09:14:58 +00:00
Add convenience functions to produce CheckSchemaResult values
This commit is contained in:
22
lib/entry-points.js
generated
22
lib/entry-points.js
generated
@@ -144527,7 +144527,7 @@ function array(validator) {
|
||||
return {
|
||||
validate,
|
||||
check: (val, path29) => {
|
||||
const result = { valid: true, unknownKeys: [] };
|
||||
const result = successfulCheckSchema();
|
||||
if (!isArray(val)) {
|
||||
result.valid = false;
|
||||
return result;
|
||||
@@ -144554,7 +144554,7 @@ function object(schema) {
|
||||
},
|
||||
check: (val, path29) => {
|
||||
if (!isObject(val)) {
|
||||
return { valid: false, unknownKeys: [] };
|
||||
return invalidCheckSchema();
|
||||
}
|
||||
return checkSchema(schema, val, {}, path29);
|
||||
},
|
||||
@@ -144568,7 +144568,7 @@ function optionalOrNull(validator) {
|
||||
},
|
||||
check: (val, path29) => {
|
||||
if (val === void 0 || val === null) {
|
||||
return { valid: true, unknownKeys: [] };
|
||||
return successfulCheckSchema();
|
||||
}
|
||||
return validator.check(val, path29);
|
||||
},
|
||||
@@ -144582,7 +144582,7 @@ function optional(validator) {
|
||||
},
|
||||
check: (val, path29) => {
|
||||
if (val === void 0) {
|
||||
return { valid: true, unknownKeys: [] };
|
||||
return successfulCheckSchema();
|
||||
}
|
||||
return validator.check(val, path29);
|
||||
},
|
||||
@@ -144593,8 +144593,20 @@ function validateSchema(schema, obj) {
|
||||
const result = checkSchema(schema, obj, { failFast: true });
|
||||
return result.valid;
|
||||
}
|
||||
function successfulCheckSchema() {
|
||||
return {
|
||||
valid: true,
|
||||
unknownKeys: []
|
||||
};
|
||||
}
|
||||
function invalidCheckSchema() {
|
||||
return {
|
||||
valid: false,
|
||||
unknownKeys: []
|
||||
};
|
||||
}
|
||||
function checkSchema(schema, obj, options = {}, path29 = "") {
|
||||
const result = { valid: true, unknownKeys: [] };
|
||||
const result = successfulCheckSchema();
|
||||
const inputKeys = new Set(Object.keys(obj));
|
||||
for (const [key, validator] of Object.entries(schema)) {
|
||||
const hasKey = key in obj;
|
||||
|
||||
@@ -86,7 +86,7 @@ export function array<T>(validator: Validator<T>) {
|
||||
return {
|
||||
validate,
|
||||
check: (val: unknown, path: string) => {
|
||||
const result: CheckSchemaResult = { valid: true, unknownKeys: [] };
|
||||
const result: CheckSchemaResult = successfulCheckSchema();
|
||||
|
||||
if (!isArray(val)) {
|
||||
result.valid = false;
|
||||
@@ -123,7 +123,7 @@ export function object<
|
||||
},
|
||||
check: (val, path) => {
|
||||
if (!isObject(val)) {
|
||||
return { valid: false, unknownKeys: [] };
|
||||
return invalidCheckSchema();
|
||||
}
|
||||
return checkSchema(schema, val, {}, path);
|
||||
},
|
||||
@@ -142,7 +142,7 @@ export function optionalOrNull<T>(validator: Validator<T>) {
|
||||
},
|
||||
check: (val, path) => {
|
||||
if (val === undefined || val === null) {
|
||||
return { valid: true, unknownKeys: [] };
|
||||
return successfulCheckSchema();
|
||||
}
|
||||
return validator.check(val, path);
|
||||
},
|
||||
@@ -161,7 +161,7 @@ export function optional<T>(validator: Validator<T>) {
|
||||
},
|
||||
check: (val, path) => {
|
||||
if (val === undefined) {
|
||||
return { valid: true, unknownKeys: [] };
|
||||
return successfulCheckSchema();
|
||||
}
|
||||
return validator.check(val, path);
|
||||
},
|
||||
@@ -214,13 +214,33 @@ export interface CheckSchemaResult {
|
||||
unknownKeys: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience function to produce a `CheckSchemaResult` where `valid: true`.
|
||||
*/
|
||||
function successfulCheckSchema(): CheckSchemaResult {
|
||||
return {
|
||||
valid: true,
|
||||
unknownKeys: [],
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience function to produce a `CheckSchemaResult` where `valid: false`.
|
||||
*/
|
||||
function invalidCheckSchema(): CheckSchemaResult {
|
||||
return {
|
||||
valid: false,
|
||||
unknownKeys: [],
|
||||
};
|
||||
}
|
||||
|
||||
export function checkSchema<S extends Schema>(
|
||||
schema: S,
|
||||
obj: UnvalidatedObject<any>,
|
||||
options: CheckSchemaOptions = {},
|
||||
path: string = "",
|
||||
): CheckSchemaResult {
|
||||
const result: CheckSchemaResult = { valid: true, unknownKeys: [] };
|
||||
const result: CheckSchemaResult = successfulCheckSchema();
|
||||
const inputKeys = new Set(Object.keys(obj));
|
||||
|
||||
for (const [key, validator] of Object.entries(schema)) {
|
||||
|
||||
Reference in New Issue
Block a user