@@ -16,11 +16,12 @@ import {
1616 updatePaste ,
1717} from "../storage/storage.js"
1818
19- type PasteResponse = {
19+ export type PasteResponse = {
2020 url : string
2121 suggestedUrl ?: string
2222 manageUrl : string
2323 expirationSeconds : number
24+ expireAt : string
2425}
2526
2627function suggestUrl (
@@ -63,7 +64,7 @@ export async function handlePostOrPut(
6364 const uint8Array = new Uint8Array ( await request . arrayBuffer ( ) )
6465 try {
6566 form = parseFormdata ( uint8Array , getBoundary ( contentType ) )
66- } catch ( e ) {
67+ } catch {
6768 throw new WorkerError ( 400 , "error occurs when parsing formdata" )
6869 }
6970 } else {
@@ -92,7 +93,7 @@ export async function handlePostOrPut(
9293
9394 // parse expiration
9495 let expirationSeconds = parseExpiration ( expire )
95- let maxExpiration = parseExpiration ( env . MAX_EXPIRATION )
96+ const maxExpiration = parseExpiration ( env . MAX_EXPIRATION )
9697 if ( expirationSeconds > maxExpiration ) {
9798 expirationSeconds = maxExpiration
9899 }
@@ -105,22 +106,10 @@ export async function handlePostOrPut(
105106 )
106107 }
107108
108- function makeResponse ( created : PasteResponse , now : Date ) : Response {
109- return new Response (
110- JSON . stringify (
111- {
112- ...created ,
113- expiredAt : new Date (
114- now . getTime ( ) + 1000 * created . expirationSeconds ,
115- ) . toISOString ( ) ,
116- } ,
117- null ,
118- 2 ,
119- ) ,
120- {
121- headers : { "content-type" : "application/json;charset=UTF-8" } ,
122- } ,
123- )
109+ function makeResponse ( created : PasteResponse ) : Response {
110+ return new Response ( JSON . stringify ( created , null , 2 ) , {
111+ headers : { "content-type" : "application/json;charset=UTF-8" } ,
112+ } )
124113 }
125114
126115 function accessUrl ( short : string ) : string {
@@ -131,7 +120,7 @@ export async function handlePostOrPut(
131120 return env . BASE_URL + "/" + short + params . SEP + passwd
132121 }
133122
134- let now = new Date ( )
123+ const now = new Date ( )
135124 if ( isPut ) {
136125 const { nameFromPath, passwd } = parsePath ( url . pathname )
137126 const originalMetadata = await getPasteMetadata ( env , nameFromPath )
@@ -146,27 +135,27 @@ export async function handlePostOrPut(
146135 `incorrect password for paste '${ nameFromPath } ` ,
147136 )
148137 } else {
149- let pasteName =
138+ const pasteName =
150139 nameFromPath ||
151140 genRandStr (
152141 isPrivate ? params . PRIVATE_PASTE_NAME_LEN : params . PASTE_NAME_LEN ,
153142 )
154- let newPasswd = passwdFromForm || passwd
143+ const newPasswd = passwdFromForm || passwd
155144 await updatePaste ( env , pasteName , content , originalMetadata , {
156145 expirationSeconds,
157146 now,
158147 passwd : newPasswd ,
159148 filename,
160149 } )
161- return makeResponse (
162- {
163- url : accessUrl ( pasteName ) ,
164- suggestedUrl : suggestUrl ( content , pasteName , env . BASE_URL , filename ) ,
165- manageUrl : manageUrl ( pasteName , newPasswd ) ,
166- expirationSeconds ,
167- } ,
168- now ,
169- )
150+ return makeResponse ( {
151+ url : accessUrl ( pasteName ) ,
152+ suggestedUrl : suggestUrl ( content , pasteName , env . BASE_URL , filename ) ,
153+ manageUrl : manageUrl ( pasteName , newPasswd ) ,
154+ expirationSeconds ,
155+ expireAt : new Date (
156+ now . getTime ( ) + 1000 * expirationSeconds ,
157+ ) . toISOString ( ) ,
158+ } )
170159 }
171160 } else {
172161 let pasteName : string | undefined
@@ -181,25 +170,25 @@ export async function handlePostOrPut(
181170 )
182171 }
183172
184- let passwd = passwdFromForm || genRandStr ( params . DEFAULT_PASSWD_LEN )
173+ const passwd = passwdFromForm || genRandStr ( params . DEFAULT_PASSWD_LEN )
185174 if ( passwd . length === 0 ) {
186175 throw new WorkerError ( 400 , "Empty passwd is not allowed" )
187176 }
188- await createPaste ( env , pasteName ! , content , {
177+ await createPaste ( env , pasteName , content , {
189178 expirationSeconds,
190179 now,
191180 passwd,
192181 filename,
193182 } )
194183
195- return makeResponse (
196- {
197- url : accessUrl ( pasteName ) ,
198- suggestedUrl : suggestUrl ( content , pasteName , env . BASE_URL , filename ) ,
199- manageUrl : manageUrl ( pasteName , passwd ) ,
200- expirationSeconds ,
201- } ,
202- now ,
203- )
184+ return makeResponse ( {
185+ url : accessUrl ( pasteName ) ,
186+ suggestedUrl : suggestUrl ( content , pasteName , env . BASE_URL , filename ) ,
187+ manageUrl : manageUrl ( pasteName , passwd ) ,
188+ expirationSeconds ,
189+ expireAt : new Date (
190+ now . getTime ( ) + 1000 * expirationSeconds ,
191+ ) . toISOString ( ) ,
192+ } )
204193 }
205194}
0 commit comments