@sinclair/typebox
Version:
Json Schema Type Builder with Static Type Resolution for TypeScript
22 lines (20 loc) • 746 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Rest = void 0;
const type_1 = require("../clone/type");
// ------------------------------------------------------------------
// TypeGuard
// ------------------------------------------------------------------
const type_2 = require("../guard/type");
// prettier-ignore
function RestResolve(T) {
return ((0, type_2.IsIntersect)(T) ? [...T.allOf] :
(0, type_2.IsUnion)(T) ? [...T.anyOf] :
(0, type_2.IsTuple)(T) ? [...(T.items ?? [])] :
[]);
}
/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
function Rest(T) {
return (0, type_1.CloneRest)(RestResolve(T));
}
exports.Rest = Rest;