blocks/case-studies/utils.ts (20 lines of code) (raw):
import { CasePlatform, CaseTypeSwitch, Platforms } from './case-studies';
import { parseBoolean, parseEnum, parseStringArray } from '../../utils';
export function parseType(v: unknown): CaseTypeSwitch {
return parseEnum(v, ['all', 'multiplatform', 'server-side'], 'all');
}
export function serializeType(v: CaseTypeSwitch): string | undefined {
return v === 'all' ? undefined : v;
}
export function parsePlatforms(v: unknown): CasePlatform[] {
return parseStringArray(v, [...Platforms], []);
}
export function serializePlatforms(v: CasePlatform[]): string | undefined {
return v.length === 0 ? undefined : v.join(',');
}
export function parseCompose(v: unknown): boolean {
return parseBoolean(v, false);
}
export function serializeCompose(v: boolean): string | undefined {
return v ? 'true' : undefined;
}