UNPKG

single-page-express

Version:

📄 A client-side implementation of the Express route API.

1 lines • 92.2 kB
{"version":3,"file":"single-page-express.min.mjs","mappings":"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","sources":["webpack://single-page-express/./node_modules/path-to-regexp/dist/index.js","webpack://single-page-express/./node_modules/path-to-regexp-express4/index.js","webpack://single-page-express/./single-page-express.js","webpack://single-page-express/./node_modules/topbar/topbar.min.js","webpack://single-page-express/webpack/bootstrap","webpack://single-page-express/webpack/startup"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathError = exports.TokenData = void 0;\nexports.parse = parse;\nexports.compile = compile;\nexports.match = match;\nexports.pathToRegexp = pathToRegexp;\nexports.stringify = stringify;\nconst DEFAULT_DELIMITER = \"/\";\nconst NOOP_VALUE = (value) => value;\nconst ID_START = /^[$_\\p{ID_Start}]$/u;\nconst ID_CONTINUE = /^[$\\u200c\\u200d\\p{ID_Continue}]$/u;\nconst SIMPLE_TOKENS = {\n // Groups.\n \"{\": \"{\",\n \"}\": \"}\",\n // Reserved.\n \"(\": \"(\",\n \")\": \")\",\n \"[\": \"[\",\n \"]\": \"]\",\n \"+\": \"+\",\n \"?\": \"?\",\n \"!\": \"!\",\n};\n/**\n * Escape text for stringify to path.\n */\nfunction escapeText(str) {\n return str.replace(/[{}()\\[\\]+?!:*\\\\]/g, \"\\\\$&\");\n}\n/**\n * Escape a regular expression string.\n */\nfunction escape(str) {\n return str.replace(/[.+*?^${}()[\\]|/\\\\]/g, \"\\\\$&\");\n}\n/**\n * Tokenized path instance.\n */\nclass TokenData {\n constructor(tokens, originalPath) {\n this.tokens = tokens;\n this.originalPath = originalPath;\n }\n}\nexports.TokenData = TokenData;\n/**\n * ParseError is thrown when there is an error processing the path.\n */\nclass PathError extends TypeError {\n constructor(message, originalPath) {\n let text = message;\n if (originalPath)\n text += `: ${originalPath}`;\n text += `; visit https://git.new/pathToRegexpError for info`;\n super(text);\n this.originalPath = originalPath;\n }\n}\nexports.PathError = PathError;\n/**\n * Parse a string for the raw tokens.\n */\nfunction parse(str, options = {}) {\n const { encodePath = NOOP_VALUE } = options;\n const chars = [...str];\n const tokens = [];\n let index = 0;\n let pos = 0;\n function name() {\n let value = \"\";\n if (ID_START.test(chars[index])) {\n do {\n value += chars[index++];\n } while (ID_CONTINUE.test(chars[index]));\n }\n else if (chars[index] === '\"') {\n let quoteStart = index;\n while (index++ < chars.length) {\n if (chars[index] === '\"') {\n index++;\n quoteStart = 0;\n break;\n }\n // Increment over escape characters.\n if (chars[index] === \"\\\\\")\n index++;\n value += chars[index];\n }\n if (quoteStart) {\n throw new PathError(`Unterminated quote at index ${quoteStart}`, str);\n }\n }\n if (!value) {\n throw new PathError(`Missing parameter name at index ${index}`, str);\n }\n return value;\n }\n while (index < chars.length) {\n const value = chars[index];\n const type = SIMPLE_TOKENS[value];\n if (type) {\n tokens.push({ type, index: index++, value });\n }\n else if (value === \"\\\\\") {\n tokens.push({ type: \"escape\", index: index++, value: chars[index++] });\n }\n else if (value === \":\") {\n tokens.push({ type: \"param\", index: index++, value: name() });\n }\n else if (value === \"*\") {\n tokens.push({ type: \"wildcard\", index: index++, value: name() });\n }\n else {\n tokens.push({ type: \"char\", index: index++, value });\n }\n }\n tokens.push({ type: \"end\", index, value: \"\" });\n function consumeUntil(endType) {\n const output = [];\n while (true) {\n const token = tokens[pos++];\n if (token.type === endType)\n break;\n if (token.type === \"char\" || token.type === \"escape\") {\n let path = token.value;\n let cur = tokens[pos];\n while (cur.type === \"char\" || cur.type === \"escape\") {\n path += cur.value;\n cur = tokens[++pos];\n }\n output.push({\n type: \"text\",\n value: encodePath(path),\n });\n continue;\n }\n if (token.type === \"param\" || token.type === \"wildcard\") {\n output.push({\n type: token.type,\n name: token.value,\n });\n continue;\n }\n if (token.type === \"{\") {\n output.push({\n type: \"group\",\n tokens: consumeUntil(\"}\"),\n });\n continue;\n }\n throw new PathError(`Unexpected ${token.type} at index ${token.index}, expected ${endType}`, str);\n }\n return output;\n }\n return new TokenData(consumeUntil(\"end\"), str);\n}\n/**\n * Compile a string to a template function for the path.\n */\nfunction compile(path, options = {}) {\n const { encode = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;\n const data = typeof path === \"object\" ? path : parse(path, options);\n const fn = tokensToFunction(data.tokens, delimiter, encode);\n return function path(params = {}) {\n const [path, ...missing] = fn(params);\n if (missing.length) {\n throw new TypeError(`Missing parameters: ${missing.join(\", \")}`);\n }\n return path;\n };\n}\nfunction tokensToFunction(tokens, delimiter, encode) {\n const encoders = tokens.map((token) => tokenToFunction(token, delimiter, encode));\n return (data) => {\n const result = [\"\"];\n for (const encoder of encoders) {\n const [value, ...extras] = encoder(data);\n result[0] += value;\n result.push(...extras);\n }\n return result;\n };\n}\n/**\n * Convert a single token into a path building function.\n */\nfunction tokenToFunction(token, delimiter, encode) {\n if (token.type === \"text\")\n return () => [token.value];\n if (token.type === \"group\") {\n const fn = tokensToFunction(token.tokens, delimiter, encode);\n return (data) => {\n const [value, ...missing] = fn(data);\n if (!missing.length)\n return [value];\n return [\"\"];\n };\n }\n const encodeValue = encode || NOOP_VALUE;\n if (token.type === \"wildcard\" && encode !== false) {\n return (data) => {\n const value = data[token.name];\n if (value == null)\n return [\"\", token.name];\n if (!Array.isArray(value) || value.length === 0) {\n throw new TypeError(`Expected \"${token.name}\" to be a non-empty array`);\n }\n return [\n value\n .map((value, index) => {\n if (typeof value !== \"string\") {\n throw new TypeError(`Expected \"${token.name}/${index}\" to be a string`);\n }\n return encodeValue(value);\n })\n .join(delimiter),\n ];\n };\n }\n return (data) => {\n const value = data[token.name];\n if (value == null)\n return [\"\", token.name];\n if (typeof value !== \"string\") {\n throw new TypeError(`Expected \"${token.name}\" to be a string`);\n }\n return [encodeValue(value)];\n };\n}\n/**\n * Transform a path into a match function.\n */\nfunction match(path, options = {}) {\n const { decode = decodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;\n const { regexp, keys } = pathToRegexp(path, options);\n const decoders = keys.map((key) => {\n if (decode === false)\n return NOOP_VALUE;\n if (key.type === \"param\")\n return decode;\n return (value) => value.split(delimiter).map(decode);\n });\n return function match(input) {\n const m = regexp.exec(input);\n if (!m)\n return false;\n const path = m[0];\n const params = Object.create(null);\n for (let i = 1; i < m.length; i++) {\n if (m[i] === undefined)\n continue;\n const key = keys[i - 1];\n const decoder = decoders[i - 1];\n params[key.name] = decoder(m[i]);\n }\n return { path, params };\n };\n}\nfunction pathToRegexp(path, options = {}) {\n const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true, } = options;\n const keys = [];\n const flags = sensitive ? \"\" : \"i\";\n const sources = [];\n for (const input of pathsToArray(path, [])) {\n const data = typeof input === \"object\" ? input : parse(input, options);\n for (const tokens of flatten(data.tokens, 0, [])) {\n sources.push(toRegExpSource(tokens, delimiter, keys, data.originalPath));\n }\n }\n let pattern = `^(?:${sources.join(\"|\")})`;\n if (trailing)\n pattern += `(?:${escape(delimiter)}$)?`;\n pattern += end ? \"$\" : `(?=${escape(delimiter)}|$)`;\n const regexp = new RegExp(pattern, flags);\n return { regexp, keys };\n}\n/**\n * Convert a path or array of paths into a flat array.\n */\nfunction pathsToArray(paths, init) {\n if (Array.isArray(paths)) {\n for (const p of paths)\n pathsToArray(p, init);\n }\n else {\n init.push(paths);\n }\n return init;\n}\n/**\n * Generate a flat list of sequence tokens from the given tokens.\n */\nfunction* flatten(tokens, index, init) {\n if (index === tokens.length) {\n return yield init;\n }\n const token = tokens[index];\n if (token.type === \"group\") {\n for (const seq of flatten(token.tokens, 0, init.slice())) {\n yield* flatten(tokens, index + 1, seq);\n }\n }\n else {\n init.push(token);\n }\n yield* flatten(tokens, index + 1, init);\n}\n/**\n * Transform a flat sequence of tokens into a regular expression.\n */\nfunction toRegExpSource(tokens, delimiter, keys, originalPath) {\n let result = \"\";\n let backtrack = \"\";\n let isSafeSegmentParam = true;\n for (const token of tokens) {\n if (token.type === \"text\") {\n result += escape(token.value);\n backtrack += token.value;\n isSafeSegmentParam || (isSafeSegmentParam = token.value.includes(delimiter));\n continue;\n }\n if (token.type === \"param\" || token.type === \"wildcard\") {\n if (!isSafeSegmentParam && !backtrack) {\n throw new PathError(`Missing text before \"${token.name}\" ${token.type}`, originalPath);\n }\n if (token.type === \"param\") {\n result += `(${negate(delimiter, isSafeSegmentParam ? \"\" : backtrack)}+)`;\n }\n else {\n result += `([\\\\s\\\\S]+)`;\n }\n keys.push(token);\n backtrack = \"\";\n isSafeSegmentParam = false;\n continue;\n }\n }\n return result;\n}\n/**\n * Block backtracking on previous text and ignore delimiter string.\n */\nfunction negate(delimiter, backtrack) {\n if (backtrack.length < 2) {\n if (delimiter.length < 2)\n return `[^${escape(delimiter + backtrack)}]`;\n return `(?:(?!${escape(delimiter)})[^${escape(backtrack)}])`;\n }\n if (delimiter.length < 2) {\n return `(?:(?!${escape(backtrack)})[^${escape(delimiter)}])`;\n }\n return `(?:(?!${escape(backtrack)}|${escape(delimiter)})[\\\\s\\\\S])`;\n}\n/**\n * Stringify an array of tokens into a path string.\n */\nfunction stringifyTokens(tokens) {\n let value = \"\";\n let i = 0;\n function name(value) {\n const isSafe = isNameSafe(value) && isNextNameSafe(tokens[i]);\n return isSafe ? value : JSON.stringify(value);\n }\n while (i < tokens.length) {\n const token = tokens[i++];\n if (token.type === \"text\") {\n value += escapeText(token.value);\n continue;\n }\n if (token.type === \"group\") {\n value += `{${stringifyTokens(token.tokens)}}`;\n continue;\n }\n if (token.type === \"param\") {\n value += `:${name(token.name)}`;\n continue;\n }\n if (token.type === \"wildcard\") {\n value += `*${name(token.name)}`;\n continue;\n }\n throw new TypeError(`Unknown token type: ${token.type}`);\n }\n return value;\n}\n/**\n * Stringify token data into a path string.\n */\nfunction stringify(data) {\n return stringifyTokens(data.tokens);\n}\n/**\n * Validate the parameter name contains valid ID characters.\n */\nfunction isNameSafe(name) {\n const [first, ...rest] = name;\n return ID_START.test(first) && rest.every((char) => ID_CONTINUE.test(char));\n}\n/**\n * Validate the next token does not interfere with the current param name.\n */\nfunction isNextNameSafe(token) {\n if (token && token.type === \"text\")\n return !ID_CONTINUE.test(token.value[0]);\n return true;\n}\n//# sourceMappingURL=index.js.map","/**\n * Expose `pathToRegexp`.\n */\n\nmodule.exports = pathToRegexp;\n\n/**\n * Match matching groups in a regular expression.\n */\nvar MATCHING_GROUP_REGEXP = /\\\\.|\\((?:\\?<(.*?)>)?(?!\\?)/g;\n\n/**\n * Normalize the given path string,\n * returning a regular expression.\n *\n * An empty array should be passed,\n * which will contain the placeholder\n * key names. For example \"/user/:id\" will\n * then contain [\"id\"].\n *\n * @param {String|RegExp|Array} path\n * @param {Array} keys\n * @param {Object} options\n * @return {RegExp}\n * @api private\n */\n\nfunction pathToRegexp(path, keys, options) {\n options = options || {};\n keys = keys || [];\n var strict = options.strict;\n var end = options.end !== false;\n var flags = options.sensitive ? '' : 'i';\n var lookahead = options.lookahead !== false;\n var extraOffset = 0;\n var keysOffset = keys.length;\n var i = 0;\n var name = 0;\n var pos = 0;\n var backtrack = '';\n var m;\n\n if (path instanceof RegExp) {\n while (m = MATCHING_GROUP_REGEXP.exec(path.source)) {\n if (m[0][0] === '\\\\') continue;\n\n keys.push({\n name: m[1] || name++,\n optional: false,\n offset: m.index\n });\n }\n\n return path;\n }\n\n if (Array.isArray(path)) {\n // Map array parts into regexps and return their source. We also pass\n // the same keys and options instance into every generation to get\n // consistent matching groups before we join the sources together.\n path = path.map(function (value) {\n return pathToRegexp(value, keys, options).source;\n });\n\n return new RegExp(path.join('|'), flags);\n }\n\n if (typeof path !== 'string') {\n throw new TypeError('path must be a string, array of strings, or regular expression');\n }\n\n path = path.replace(\n /\\\\.|(\\/)?(\\.)?:(\\w+)(\\(.*?\\))?(\\*)?(\\?)?|[.*]|\\/\\(/g,\n function (match, slash, format, key, capture, star, optional, offset) {\n if (match[0] === '\\\\') {\n backtrack += match;\n pos += 2;\n return match;\n }\n\n if (match === '.') {\n backtrack += '\\\\.';\n extraOffset += 1;\n pos += 1;\n return '\\\\.';\n }\n\n if (slash || format) {\n backtrack = '';\n } else {\n backtrack += path.slice(pos, offset);\n }\n\n pos = offset + match.length;\n\n if (match === '*') {\n extraOffset += 3;\n return '(.*)';\n }\n\n if (match === '/(') {\n backtrack += '/';\n extraOffset += 2;\n return '/(?:';\n }\n\n slash = slash || '';\n format = format ? '\\\\.' : '';\n optional = optional || '';\n capture = capture ?\n capture.replace(/\\\\.|\\*/, function (m) { return m === '*' ? '(.*)' : m; }) :\n (backtrack ? '((?:(?!/|' + backtrack + ').)+?)' : '([^/' + format + ']+?)');\n\n keys.push({\n name: key,\n optional: !!optional,\n offset: offset + extraOffset\n });\n\n var result = '(?:'\n + format + slash + capture\n + (star ? '((?:[/' + format + '].+?)?)' : '')\n + ')'\n + optional;\n\n extraOffset += result.length - match.length;\n\n return result;\n });\n\n // This is a workaround for handling unnamed matching groups.\n while (m = MATCHING_GROUP_REGEXP.exec(path)) {\n if (m[0][0] === '\\\\') continue;\n\n if (keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) {\n keys.splice(keysOffset + i, 0, {\n name: name++, // Unnamed matching groups must be consistently linear.\n optional: false,\n offset: m.index\n });\n }\n\n i++;\n }\n\n path += strict ? '' : path[path.length - 1] === '/' ? '?' : '/?';\n\n // If the path is non-ending, match until the end or a slash.\n if (end) {\n path += '$';\n } else if (path[path.length - 1] !== '/') {\n path += lookahead ? '(?=/|$)' : '(?:/|$)';\n }\n\n return new RegExp('^' + path, flags);\n};\n","const pathToRegexpMatch = require('path-to-regexp').match // route parser for express 5+\nconst pathToRegexpMatchExpress4 = require('path-to-regexp-express4') // route parser for express 4; express 3 and below are not supported\nconst parser = new window.DOMParser() // used by the default render method\n\nfunction singlePageExpress (options) {\n // #region constructor params and top-level variable declarations\n const app = {} // instance of the router app\n app.expressVersion = options.expressVersion // which version of the express api to target\n if (app.expressVersion !== 5 && (parseInt(app.expressVersion) <= 4)) app.expressVersion = 4 // permit express 4 and 5+\n if (!app.expressVersion) app.expressVersion = 5 // default to express 5\n app.appVars = {} // for app.set() / app.get()\n app.templatingEngine = options.templatingEngine // which templating engine to use\n app.templates = options.templates // templates to render\n if (!app.templates) console.warn('single-page-express: no templates are loaded; as such the default render method will just print the template name and model to the console.')\n app.routes = {} // list of functions to execute when trying to see if this route matches one of the known patterns indexed by original route method#string\n app.routeCallbacks = {} // list of functions to execute when the route is invoked\n app.defaultTarget = options.defaultTarget // which element to replace by default\n app.defaultTargets = app.defaultTarget ? [app.defaultTarget].concat(options.defaultTargets || []) : options.defaultTargets || [] // which elements to replace by default\n if (!app.defaultTargets.length) app.defaultTargets = ['body'] // body tag is the default target if none is set\n app.beforeEveryRender = options.beforeEveryRender // function to execute before every DOM update if using the default render method\n app.updateDelay = options.updateDelay // how long to delay after executing app.beforeEveryRender or this.beforeRender before performing the DOM update\n app.afterEveryRender = options.afterEveryRender // function to execute after every DOM update if using the default render method\n app.postRenderCallbacks = options.postRenderCallbacks || {} // list of callback functions to execute after a render event occurs\n app.topbarEnabled = !options.disableTopbar // whether to use topbar https://buunguyen.github.io/topbar/\n app.topBarRoutes = options.topBarRoutes // which routes to use the topbar on; defaults to all if this option is not supplied\n if (app.topbarEnabled || app.topBarRoutes) {\n app.topbar = require('topbar')\n app.topbar.config(options.topbarConfig || {\n // default options\n barColors: {\n 0: 'rgba(0, 0, 0, .7)',\n '1.0': 'rgba(0, 0, 0, .7)'\n }\n })\n }\n app.alwaysSkipViewTransition = options.alwaysSkipViewTransition // never wrap dom updates in document.startViewTransition() calls\n app.alwaysScrollTop = options.alwaysScrollTop // always scroll to the top of the page after every render\n app.urls = {} // list of URLs that have been visited and metadata about them\n let currentViewTransition // a global reference to the current view transition so we can know when it has ended\n\n // taken from https://expressjs.com/en/api.html#routing-methods\n const httpVerbs = [\n 'checkout',\n 'copy',\n 'delete',\n 'get',\n 'head',\n 'lock',\n 'merge',\n 'mkactivity',\n 'mkcol',\n 'move',\n 'm-search',\n 'notify',\n 'options',\n 'patch',\n 'post',\n 'purge',\n 'put',\n 'report',\n 'search',\n 'subscribe',\n 'trace',\n 'unlock',\n 'unsubscribe'\n ]\n\n // #endregion\n\n // #region express app\n\n // express app object settings\n app.appVars['case sensitive routing'] = false\n app.appVars.env = 'production'\n app.appVars['query parser'] = true\n app.appVars['strict routing'] = false\n app.appVars['subdomain offset'] = 2\n // the other settings are not supported\n\n // express app object properties\n app.locals = {} // stubbed out\n app.mountpath = '' // stubbed out\n\n // express app object events\n app.mount = () => {} // stubbed out\n\n // registers a route and handles middleware\n function routeHandler (arg1, arg2, arg3, arg4) {\n const method = arg1\n const middleware = arg2\n let route\n let callback\n if (arg4) {\n route = arg3\n callback = (req, res) => middleware(req, res, () => arg4(req, res))\n } else {\n if (typeof arg2 !== 'string' && typeof arg2 === 'function') {\n route = arg3\n callback = arg2\n } else {\n route = arg2\n callback = arg3\n }\n }\n registerRoute(method, route, callback)\n }\n\n // express app object methods\n app.all = (middleware, route, callback) => { routeHandler('all', middleware, route, callback) }\n app.delete = (middleware, route, callback) => { routeHandler('delete', middleware, route, callback) }\n app.disable = (name) => { app.appVars[name] = false }\n app.disabled = (name) => { return !app.appVars[name] }\n app.enable = (name) => { app.appVars[name] = true }\n app.enabled = (name) => { return !!app.appVars[name] }\n app.engine = () => {} // stubbed out\n app.get = (middleware, name, callback) => { // in the express docs, this method is overloaded and can be used for more than one thing based on the number of arguments\n if (!name && !callback) return app.appVars[middleware]\n else return routeHandler('get', middleware, name, callback)\n }\n app.listen = () => {} // stubbed out\n httpVerbs.forEach(method => { // app.METHOD\n // some method names are overloaded and can be used for more than one thing based on the number of arguments\n if (!app[method]) app[method] = (middleware, route, callback) => routeHandler(method, middleware, route, callback)\n })\n app.param = () => {} // stubbed out\n app.path = () => {} // stubbed out\n app.post = (middleware, route, callback) => { routeHandler('post', middleware, route, callback) }\n app.put = (middleware, route, callback) => { routeHandler('put', middleware, route, callback) }\n // app.render will be defined below\n app.route = (route) => {\n const ret = { route }\n httpVerbs.forEach(method => { ret[method] = (middleware, callback) => { routeHandler(method, middleware, route, callback) } })\n return ret\n }\n app.set = (name, val) => { app.appVars[name] = val }\n app.use = () => {} // stubbed out\n app.triggerRoute = handleRoute // single-page-express-exclusive method\n\n // #endregion\n\n // #region request object\n\n const defaultReq = {} // this is later extended during a \"request\" cycle\n\n // request object properties\n defaultReq.app = app\n defaultReq.baseUrl = '' // stubbed out\n // req.body is defined at runtime below\n // req.cookies is defined at runtime below\n defaultReq.fresh = true // stubbed out\n defaultReq.hostname = window.location.hostname\n defaultReq.ip = '127.0.0.1' // stubbed out\n defaultReq.ips