Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import * as ReactDOMServer from "react-dom/server" import * as lodash from "lodash" import urljoin from "url-join" import { ADMIN_BASE_URL } from "../settings/serverSettings" import { JsonError } from "../clientUtils/owidTypes" // Fail-fast integer conversion, for e.g. ids in url params export const expectInt = (value: any): number => { const num = parseInt(value) if (isNaN(num)) throw new JsonError(`Expected integer value, not '${value}'`, 400) return num } export const tryInt = (value: any, defaultNum: number): number => { const num = parseInt(value) if (isNaN(num)) return defaultNum return num } // Generate a static html page string from a given JSX element export const renderToHtmlPage = (element: any) => `<!doctype html>${ReactDOMServer.renderToStaticMarkup(element)}` // Determine if input is suitable for use as a url slug export const isValidSlug = (slug: any) => lodash.isString(slug) && slug.length > 1 && slug.match(/^[\w-]+$/) export const absoluteUrl = (path: string) => urljoin(ADMIN_BASE_URL, path) |