UNPKG

7.53 kBSource Map (JSON)View Raw
1{"version":3,"file":"server-cli.js","sourceRoot":"","sources":["../../../../src/http/server-cli.ts"],"names":[],"mappings":"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","sourcesContent":["// ==LICENSE-BEGIN==\n// Copyright 2017 European Digital Reading Lab. All rights reserved.\n// Licensed to the Readium Foundation under one or more contributor license agreements.\n// Use of this source code is governed by a BSD-style license\n// that can be found in the LICENSE file exposed on Github (readium) in the project repository.\n// ==LICENSE-END==\n\nimport * as debug_ from \"debug\";\nimport * as filehound from \"filehound\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\n\nimport { setLcpNativePluginPath } from \"@r2-lcp-js/parser/epub/lcp\";\nimport { initGlobalConverters_OPDS } from \"@r2-opds-js/opds/init-globals\";\nimport {\n initGlobalConverters_GENERIC, initGlobalConverters_SHARED,\n} from \"@r2-shared-js/init-globals\";\nimport { EPUBis, isEPUBlication } from \"@r2-shared-js/parser/epub\";\n\nimport { MAX_PREFETCH_LINKS, Server } from \"./server\";\n\ninitGlobalConverters_OPDS();\ninitGlobalConverters_SHARED();\ninitGlobalConverters_GENERIC();\n\nsetLcpNativePluginPath(path.join(process.cwd(), \"LCP\", \"lcp.node\"));\n\nconst debug = debug_(\"r2:streamer#http/server-cli\");\n\ndebug(`process.cwd(): ${process.cwd()}`);\ndebug(`__dirname: ${__dirname}`);\n\nconst args = process.argv.slice(2);\ndebug(\"process.argv.slice(2): %o\", args);\n\nif (!args[0]) {\n debug(\"FILEPATH ARGUMENT IS MISSING.\");\n process.exit(1);\n}\n\nconst argPath = args[0].trim();\nlet filePath = argPath;\ndebug(`path: ${filePath}`);\n\nif (!fs.existsSync(filePath)) {\n filePath = path.join(__dirname, argPath);\n debug(`path: ${filePath}`);\n\n if (!fs.existsSync(filePath)) {\n filePath = path.join(process.cwd(), argPath);\n debug(`path: ${filePath}`);\n\n if (!fs.existsSync(filePath)) {\n debug(\"FILEPATH DOES NOT EXIST.\");\n process.exit(1);\n }\n }\n}\n\nfilePath = fs.realpathSync(filePath);\ndebug(`path (normalized): ${filePath}`);\n\nconst stats = fs.lstatSync(filePath);\n\nif (!stats.isFile() && !stats.isDirectory()) {\n debug(\"FILEPATH MUST BE FILE OR DIRECTORY.\");\n process.exit(1);\n}\n\nlet maxPrefetchLinks = MAX_PREFETCH_LINKS;\nif (args[1]) {\n args[1] = args[1].trim();\n if (args[1].length && args[1][0] === \"-\") {\n maxPrefetchLinks = -1;\n } else {\n try {\n maxPrefetchLinks = parseInt(args[1], 10);\n } catch (err) {\n debug(err);\n }\n if (isNaN(maxPrefetchLinks)) {\n maxPrefetchLinks = MAX_PREFETCH_LINKS;\n }\n }\n}\ndebug(`maxPrefetchLinks: ${maxPrefetchLinks}`);\n\nconst isAnEPUB = isEPUBlication(filePath);\n\nif (stats.isDirectory() && (isAnEPUB !== EPUBis.LocalExploded)) {\n debug(\"Analysing directory...\");\n\n // tslint:disable-next-line:no-floating-promises\n (async () => {\n const files: string[] = await filehound.create()\n .discard(\"node_modules\")\n .depth(5)\n .paths(filePath)\n .ext([\".epub\", \".epub3\", \".cbz\", \".audiobook\", \".lcpaudiobook\", \".lcpa\", \".divina\", \".lcpdivina\"])\n .find();\n const server = new Server({\n maxPrefetchLinks,\n });\n server.preventRobots();\n server.addPublications(files);\n const url = await server.start(0, false);\n debug(url);\n })();\n\n // filePaths = fs.readdirSync(filePath);\n\n // filePaths = filePaths.filter((filep) => {\n // const fileName = path.basename(filep);\n // const ext = path.extname(fileName).toLowerCase();\n // return (/\\.epub[3]?$/.test(ext) || ext === \".cbz\") &&\n // fs.lstatSync(path.join(filePath, filep)).isFile();\n // });\n\n // filePaths = filePaths.map((filep) => {\n // return path.join(filePath, filep);\n // });\n\n // debug(\"Publications:\");\n // filePaths.forEach((filep) => {\n // debug(filep);\n // });\n} else {\n // tslint:disable-next-line:no-floating-promises\n (async () => {\n const server = new Server({\n maxPrefetchLinks,\n });\n server.preventRobots();\n server.addPublications([filePath]);\n const url = await server.start(0, false);\n debug(url);\n })();\n}\n"]}
\No newline at end of file