UNPKG

multi-data

Version:
1 lines 2.74 kB
{"version":3,"file":"multi-data.min.cjs","sources":["../../src/index.ts"],"sourcesContent":["export interface HeadersObject {\n [key: string]: string;\n}\n\nexport interface Options {\n headers?: HeadersObject;\n}\n\nexport interface Splittable<T> {\n slice(idx: number, len?: number): this;\n [idx: number]: T;\n readonly length: number;\n}\n\n/**\n * Class to build and concatenate multipart form data\n */\nexport default class MultiData {\n readonly boundary: string;\n protected lines: string[] = [];\n\n /**\n * @param boundary The string used to define multipart boundaries and the end of body.\n */\n constructor(boundary: string) {\n if (boundary === undefined) throw new TypeError('boundary expected');\n this.boundary = boundary;\n }\n\n /**\n * Append a part to the multipart form data.\n *\n * @param name The part name.\n * @param data The part data.\n * @param options Pass headers in the options for custom part headers.\n */\n append<T>(name: string, data: Splittable<T>, options?: Options): MultiData {\n if (name === undefined) throw new TypeError('name expected');\n if (data === undefined) throw new TypeError('data expected');\n\n this.lines.push(`--${this.boundary}`);\n this.lines.push(`Content-Disposition: form-data; name=\"${name}\"`);\n if (options && options.headers) {\n const headers = options.headers;\n for (const key in headers) this.lines.push(`${key}: ${headers[key]}`);\n }\n this.lines.push('');\n this.lines.push(data.toString());\n return this;\n }\n\n /**\n * After appending data, use toString() to concatenate the form data for your request.\n */\n toString(): string {\n this.lines.push(`--${this.boundary}--`);\n const string = this.lines.join('\\r\\n');\n this.lines.pop();\n return string;\n }\n}\n"],"names":["MultiData","boundary","lines","undefined","TypeError","this","append","name","data","options","push","concat","headers","key","toString","string","join","pop"],"mappings":"gPAiBe,WAAMA,SAAAA,EAOPC,GACV,+FARiBD,CAAAA,KAAAA,GAETE,KAAAA,MAAkB,QAMTC,IAAbF,EAAwB,MAAM,IAAIG,UAAU,qBAChDC,KAAKJ,SAAWA,EATCD,IAAAA,EAAAA,EAAAA,UAAAA,OAmBnBM,EAAAA,OAAAA,SAAUC,EAAcC,EAAqBC,GAC3C,QAAaN,IAATI,EAAoB,MAAM,IAAIH,UAAU,iBAC5C,QAAaD,IAATK,EAAoB,MAAM,IAAIJ,UAAU,iBAI5C,GAFAC,KAAKH,MAAMQ,KAAK,KAAmBC,OAAdN,KAAKJ,WAC1BI,KAAKH,MAAMQ,KAAK,yCAA8CC,OAALJ,EAAK,MAC1DE,GAAWA,EAAQG,QAAS,CAC9B,IAAMA,EAAUH,EAAQG,QACxB,IAAK,IAAMC,KAAOD,EAASP,KAAKH,MAAMQ,KAAM,GAAUE,OAARC,EAAI,MAAiBF,OAAbC,EAAQC,IAChE,CAGA,OAFAR,KAAKH,MAAMQ,KAAK,IAChBL,KAAKH,MAAMQ,KAAKF,EAAKM,YACdT,IACT,EAKAS,EAAAA,SAAAA,WACET,KAAKH,MAAMQ,KAAK,KAAmBC,OAAdN,KAAKJ,SAAS,OACnC,IAAMc,EAASV,KAAKH,MAAMc,KAAK,QAE/B,OADAX,KAAKH,MAAMe,MACJF,CACT,EA1CmBf,EAAN"}