File size: 887 Bytes
f4f337e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c66c210
f4f337e
 
 
 
 
 
8f29097
f4f337e
 
 
 
 
2a51a0f
f4f337e
f0c90e8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { z } from 'zod';

const TwitterDlArgsSchema = z.object({
  0: z.string().url()
});

const TwitterDLVariantSchema = z.object({
  bitrate: z.number().optional(),
  content_type: z.string(),
  url: z.string().url(),
  height: z.preprocess(
    (data) => (typeof data === 'number' ? data.toString() : data),
    z.string()
  ),
  width: z.preprocess(
    (data) => (typeof data === 'number' ? data.toString() : data),
    z.string()
  )
});


const TwitterDLResponseSchema = z.object({
  includes: z.object({
    media: z.array(
      z.object({
        media_url_https: z.string().url(),
        type: z.string(),
        variants: z.array(TwitterDLVariantSchema).optional()
      })
    )
  })
});

const TwitterDlSchema = z.array(TwitterDLVariantSchema).or(TwitterDLVariantSchema);

export { TwitterDlArgsSchema, TwitterDLVariantSchema, TwitterDLResponseSchema, TwitterDlSchema };