UNPKG

7.52 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