kopia lustrzana https://github.com/cloudflare/wildebeest
				
				
				
			add types-check frontend script
add a types check that runs tsc making sure that all typings present in the frontend application are validpull/370/head
							rodzic
							
								
									7e1592203b
								
							
						
					
					
						commit
						81114acb95
					
				|  | @ -53,6 +53,9 @@ jobs: | |||
|       - name: Check frontend linting | ||||
|         run: yarn lint:frontend | ||||
| 
 | ||||
|       - name: Check frontend types | ||||
|         run: yarn --cwd types-check | ||||
| 
 | ||||
|   test-ui: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|  |  | |||
|  | @ -270,7 +270,8 @@ function getContentRewriter() { | |||
| 	contentRewriter.on('*', { | ||||
| 		element(el) { | ||||
| 			if (!['p', 'span', 'br', 'a'].includes(el.tagName)) { | ||||
| 				el.tagName = 'p' | ||||
| 				const element = el as { tagName: string } | ||||
| 				element.tagName = 'p' | ||||
| 			} | ||||
| 
 | ||||
| 			if (el.hasAttribute('class')) { | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ import type { Env } from 'wildebeest/backend/src/types/env' | |||
| 
 | ||||
| function sqliteToPsql(query: string): string { | ||||
| 	let c = 0 | ||||
| 	return query.replaceAll(/\?([0-9])?/g, (match: string, p1: string) => { | ||||
| 	return query.replace(/\?([0-9])?/g, (match: string, p1: string) => { | ||||
| 		c += 1 | ||||
| 		return `$${p1 || c}` | ||||
| 	}) | ||||
|  |  | |||
|  | @ -281,11 +281,12 @@ export function parseRequest(request: Request, options?: Options): ParsedSignatu | |||
| 
 | ||||
| 		if (h === 'request-line') { | ||||
| 			if (!options.strict) { | ||||
| 				const cf = (request as { cf?: IncomingRequestCfProperties }).cf | ||||
| 				/* | ||||
| 				 * We allow headers from the older spec drafts if strict parsing isn't | ||||
| 				 * specified in options. | ||||
| 				 */ | ||||
| 				parsed.signingString += request.method + ' ' + request.url + ' ' + request.cf?.httpProtocol | ||||
| 				parsed.signingString += request.method + ' ' + request.url + ' ' + cf?.httpProtocol | ||||
| 			} else { | ||||
| 				/* Strict parsing doesn't allow older draft headers. */ | ||||
| 				throw new StrictParsingError('request-line is not a valid header ' + 'with strict parsing enabled.') | ||||
|  |  | |||
|  | @ -19,7 +19,8 @@ export function initSentry(request: Request, env: Env, context: any) { | |||
| 		request, | ||||
| 		transportOptions: { headers }, | ||||
| 	}) | ||||
| 	const colo = request.cf && request.cf.colo ? request.cf.colo : 'UNKNOWN' | ||||
| 	const cf = (request as { cf?: IncomingRequestCfProperties }).cf | ||||
| 	const colo = cf?.colo ? cf.colo : 'UNKNOWN' | ||||
| 	sentry.setTag('colo', colo) | ||||
| 
 | ||||
| 	// cf-connecting-ip should always be present, but if not we can fallback to XFF.
 | ||||
|  |  | |||
|  | @ -26,12 +26,12 @@ export function arrayBufferToBase64(buffer: ArrayBuffer): string { | |||
| } | ||||
| 
 | ||||
| export function b64ToUrlEncoded(str: string): string { | ||||
| 	return str.replaceAll(/\+/g, '-').replaceAll(/\//g, '_').replace(/=+/g, '') | ||||
| 	return str.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+/g, '') | ||||
| } | ||||
| 
 | ||||
| export function urlEncodedToB64(str: string): string { | ||||
| 	const padding = '='.repeat((4 - (str.length % 4)) % 4) | ||||
| 	return str.replaceAll(/-/g, '+').replaceAll(/_/g, '/') + padding | ||||
| 	return str.replace(/-/g, '+').replace(/_/g, '/') + padding | ||||
| } | ||||
| 
 | ||||
| export function stringToU8Array(str: string): Uint8Array { | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| import { cloudflarePagesAdaptor } from '@builder.io/qwik-city/adaptors/cloudflare-pages/vite' | ||||
| import { cloudflarePagesAdapter } from '@builder.io/qwik-city/adapters/cloudflare-pages/vite' | ||||
| import { extendConfig } from '@builder.io/qwik-city/vite' | ||||
| import baseConfig from '../../vite.config' | ||||
| 
 | ||||
|  | @ -11,7 +11,7 @@ export default extendConfig(baseConfig, () => { | |||
| 			}, | ||||
| 		}, | ||||
| 		plugins: [ | ||||
| 			cloudflarePagesAdaptor({ | ||||
| 			cloudflarePagesAdapter({ | ||||
| 				// Do not SSG as the D1 database is not available at build time, I think.
 | ||||
| 				// staticGenerate: true,
 | ||||
| 			}), | ||||
|  |  | |||
|  | @ -7,6 +7,8 @@ | |||
| 	}, | ||||
| 	"private": true, | ||||
| 	"scripts": { | ||||
| 		"pretypes-check": "yarn build", | ||||
| 		"types-check": "tsc", | ||||
| 		"lint": "eslint src mock-db adaptors", | ||||
| 		"build": "vite build && vite build -c adaptors/cloudflare-pages/vite.config.ts", | ||||
| 		"dev": "vite --mode ssr", | ||||
|  |  | |||
|  | @ -59,12 +59,12 @@ export async function handleRequest( | |||
| 
 | ||||
| 		if (formData.has('display_name')) { | ||||
| 			const value = formData.get('display_name')! | ||||
| 			await updateActorProperty(db, connectedActor.id, 'name', value) | ||||
| 			await updateActorProperty(db, connectedActor.id, 'name', value as string) | ||||
| 		} | ||||
| 
 | ||||
| 		if (formData.has('note')) { | ||||
| 			const value = formData.get('note')! | ||||
| 			await updateActorProperty(db, connectedActor.id, 'summary', value) | ||||
| 			await updateActorProperty(db, connectedActor.id, 'summary', value as string) | ||||
| 		} | ||||
| 
 | ||||
| 		if (formData.has('avatar')) { | ||||
|  |  | |||
|  | @ -42,11 +42,11 @@ export async function handlePostRequest( | |||
| 	const properties: Record<string, string> = {} | ||||
| 
 | ||||
| 	if (formData.has('username')) { | ||||
| 		properties.preferredUsername = formData.get('username') || '' | ||||
| 		properties.preferredUsername = (formData.get('username') as string) || '' | ||||
| 	} | ||||
| 
 | ||||
| 	if (formData.has('name')) { | ||||
| 		properties.name = formData.get('name') || '' | ||||
| 		properties.name = (formData.get('name') as string) || '' | ||||
| 	} | ||||
| 
 | ||||
| 	await createPerson(domain, db, userKEK, email, properties) | ||||
|  |  | |||
|  | @ -50,7 +50,7 @@ | |||
| 		"http-message-signatures": "^0.1.2", | ||||
| 		"toucan-js": "^3.1.0" | ||||
| 	}, | ||||
|   "simple-git-hooks": { | ||||
|     "pre-commit": "yarn lint" | ||||
|   } | ||||
| } | ||||
| 	"simple-git-hooks": { | ||||
| 		"pre-commit": "yarn lint" | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Dario Piotrowicz
						Dario Piotrowicz