UNPKG

cp-app

Version:

Easily bootstrap a new permissionless app based on permissionless.js and your favourite tooling!

25 lines (18 loc) 783 B
import { removeTrailingSlash } from "./general" const validationRegExp = /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/ //Validate a string against allowed package.json names export const validateAppName = (rawInput: string) => { const input = removeTrailingSlash(rawInput) const paths = input.split("/") // If the first part is a @, it's a scoped package const indexOfDelimiter = paths.findIndex((p) => p.startsWith("@")) let appName = paths[paths.length - 1] if (indexOfDelimiter !== -1) { appName = paths.slice(indexOfDelimiter).join("/") } if (input === "." || validationRegExp.test(appName ?? "")) { return } return "App name must consist of only lowercase alphanumeric characters, '-', and '_'" }