HATEOAS-first backend framework.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

serializers.ts 622 B

12345678910111213141516171819202122232425262728
  1. export const TEXT_SERIALIZER_PAIR = {
  2. serialize(obj: unknown, level = 0): string {
  3. if (Array.isArray(obj)) {
  4. return obj.map((o) => this.serialize(o)).join('\n\n');
  5. }
  6. if (typeof obj === 'object') {
  7. if (obj !== null) {
  8. return Object.entries(obj)
  9. .map(([key, value]) => `${Array(level * 2).fill(' ').join('')}${key}: ${this.serialize(value, level + 1)}`)
  10. .join('\n');
  11. }
  12. return '';
  13. }
  14. if (typeof obj === 'number' && Number.isFinite(obj)) {
  15. return obj.toString();
  16. }
  17. if (typeof obj === 'string') {
  18. return obj;
  19. }
  20. return '';
  21. },
  22. deserialize: <T>(str: string) => str as T
  23. };