@datocms/cma-client
Version:
JS client for DatoCMS REST Content Management API
41 lines (35 loc) • 1.19 kB
text/typescript
import {
type LocalizedFieldValue,
isLocalizedFieldValue,
} from '../utilities/normalizedFieldValues';
import type { IntegerEditorConfiguration } from './appearance/integer';
import type { NumberRangeValidator } from './validators/number_range';
import type { RequiredValidator } from './validators/required';
export type IntegerFieldValue = number | null;
export function isIntegerFieldValue(
value: unknown,
): value is IntegerFieldValue {
return typeof value === 'number' || value === null;
}
export function isLocalizedIntegerFieldValue(
value: unknown,
): value is LocalizedFieldValue<IntegerFieldValue> {
return (
isLocalizedFieldValue(value) &&
Object.values(value).every(isIntegerFieldValue)
);
}
export type IntegerFieldValidators = {
/** Value must be specified or it won't be valid */
required?: RequiredValidator;
/** Accept numbers only inside a specified range */
number_range?: NumberRangeValidator;
};
export type IntegerFieldAppearance =
| { editor: 'integer'; parameters: IntegerEditorConfiguration }
| {
/** Plugin ID */
editor: string;
/** Plugin configuration */
parameters: Record<string, unknown>;
};