@sprucelabs/schema
Version:
Static and dynamic binding plus runtime validation and transformation to ensure your app is sound. 🤓
8 lines (7 loc) • 402 B
TypeScript
import { FieldName } from '../fields/field.static.types';
import { SchemaFieldsByName } from '../schemas.static.types';
type PrivateFieldNames<F extends SchemaFieldsByName> = {
[K in FieldName<F>]: F[K]['isPrivate'] extends true ? K : never;
}[FieldName<F>];
export default function dropPrivateFields<F extends SchemaFieldsByName, D extends PrivateFieldNames<F>>(fields: F): Omit<F, D>;
export {};