UNPKG

@storm-stack/core

Version:

A build toolkit and runtime used by Storm Software in TypeScript applications

1 lines 3.67 kB
{"version":3,"sources":["../../src/lib/utilities/resolve-path.ts"],"names":["resolvePath","context","file","path","vfs","existsSync","joinPaths","options","workspaceConfig","workspaceRoot","projectRoot","resolvePackage","paths"],"mappings":";;;;;;AA6BA,eAAsBA,WAAAA,CACpBC,SACAC,IAAAA,EAAY;AAEZ,EAAA,IAAIC,IAAAA,GAAOF,OAAAA,CAAQG,GAAAA,CAAIJ,WAAAA,CAAYE,IAAAA,CAAAA;AACnC,EAAA,IAAIC,IAAAA,EAAM;AACR,IAAA,OAAOA,IAAAA;AACT,EAAA;AAEAA,EAAAA,IAAAA,GAAOD,IAAAA;AACP,EAAA,IAAID,OAAAA,CAAQG,GAAAA,CAAIC,UAAAA,CAAWF,IAAAA,CAAAA,EAAO;AAChC,IAAA,OAAOA,IAAAA;AACT,EAAA;AAEAA,EAAAA,IAAAA,GAAOG,mBAAAA,CAAUL,OAAAA,CAAQM,OAAAA,CAAQC,eAAAA,CAAgBC,eAAeP,IAAAA,CAAAA;AAChE,EAAA,IAAID,OAAAA,CAAQG,GAAAA,CAAIC,UAAAA,CAAWF,IAAAA,CAAAA,EAAO;AAChC,IAAA,OAAOA,IAAAA;AACT,EAAA;AAEAA,EAAAA,IAAAA,GAAOG,mBAAAA,CACLL,QAAQM,OAAAA,CAAQC,eAAAA,CAAgBC,eAChCR,OAAAA,CAAQM,OAAAA,CAAQG,aAChBR,IAAAA,CAAAA;AAEF,EAAA,IAAID,OAAAA,CAAQG,GAAAA,CAAIC,UAAAA,CAAWF,IAAAA,CAAAA,EAAO;AAChC,IAAA,OAAOA,IAAAA;AACT,EAAA;AAEAA,EAAAA,IAAAA,GAAOG,mBAAAA,CAAUL,OAAAA,CAAQM,OAAAA,CAAQG,WAAAA,EAAaR,IAAAA,CAAAA;AAC9C,EAAA,IAAID,OAAAA,CAAQG,GAAAA,CAAIC,UAAAA,CAAWF,IAAAA,CAAAA,EAAO;AAChC,IAAA,OAAOA,IAAAA;AACT,EAAA;AAEA,EAAA,OAAOQ,uBAAeT,IAAAA,EAAM;IAC1BU,KAAAA,EAAO;AACLX,MAAAA,OAAAA,CAAQM,QAAQC,eAAAA,CAAgBC,aAAAA;AAChCH,MAAAA,mBAAAA,CACEL,QAAQM,OAAAA,CAAQC,eAAAA,CAAgBC,aAAAA,EAChCR,OAAAA,CAAQM,QAAQG,WAAW;;GAGjC,CAAA;AACF;AA1CsBV,wBAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA","file":"chunk-BI5CL7FJ.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Storm Stack\n\n This code was released as part of the Storm Stack project. Storm Stack\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/storm-stack.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/storm-stack\n Documentation: https://docs.stormsoftware.com/projects/storm-stack\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { resolvePackage } from \"@stryke/path/resolve\";\nimport type { Context } from \"../../types/context\";\n\n/**\n * Resolves the path of a file in the workspace or project root.\n *\n * @param context - The context object containing the environment paths.\n * @param file - The file path to resolve.\n * @returns A promise that resolves to the resolved path.\n */\nexport async function resolvePath(\n context: Context,\n file: string\n): Promise<string | undefined> {\n let path = context.vfs.resolvePath(file);\n if (path) {\n return path;\n }\n\n path = file;\n if (context.vfs.existsSync(path)) {\n return path;\n }\n\n path = joinPaths(context.options.workspaceConfig.workspaceRoot, file);\n if (context.vfs.existsSync(path)) {\n return path;\n }\n\n path = joinPaths(\n context.options.workspaceConfig.workspaceRoot,\n context.options.projectRoot,\n file\n );\n if (context.vfs.existsSync(path)) {\n return path;\n }\n\n path = joinPaths(context.options.projectRoot, file);\n if (context.vfs.existsSync(path)) {\n return path;\n }\n\n return resolvePackage(file, {\n paths: [\n context.options.workspaceConfig.workspaceRoot,\n joinPaths(\n context.options.workspaceConfig.workspaceRoot,\n context.options.projectRoot\n )\n ]\n });\n}\n"]}