@storm-stack/core
Version:
A build toolkit and runtime used by Storm Software in TypeScript applications
1 lines • 78.3 kB
Source Map (JSON)
{"version":3,"sources":["../../src/lib/vfs/virtual-file-system.ts"],"names":["RUNTIME_PREFIX","VirtualFileSystem","Map","Volume","cloneFS","fs","Union","__VFS_CACHE__","__VFS_RESOLVER__","__VFS_VIRTUAL__","__VFS_UNIFIED__","context","serialized","Object","entries","runtimeIdMap","existsSync","dataPath","mkdirSync","recursive","cachePath","joinPaths","options","workspaceRoot","output","outputPath","use","outputMode","virtualFiles","keys","length","artifactsPath","runtimePath","entryPath","dtsPath","extendLog","log","__VFS_INIT__","patchFS","__VFS_REVERT__","Error","runtimeIds","Array","from","map","id","formatRuntimeId","isRuntimeFile","pathOrId","values","find","path","resolvePath","type","isValidRuntimeId","startsWith","isVirtualFile","resolvedPath","isTsconfigPath","tsconfig","paths","some","replaceAll","isMatchingRuntimeId","resolvedId","resolveId","get","listRuntimeFiles","runtimeFiles","contents","readFile","push","readdirSync","resolveFS","toFilePath","unlinkSync","formattedPath","fileExistsSync","LogLevelLabel","TRACE","delete","clearResolverCache","unlink","isFunction","promises","rmdirSync","directoryExistsSync","defu","rmdir","rm","force","filePath","mkdir","result","readdir","undefined","has","toString","readFileSync","content","isBuffer","bufferToString","set","writeFile","file","data","formatAbsoluteFilePath","findFilePath","prettyBytes","Blob","size","ifs","writeFileSync","writeStream","createWriteStream","write","close","writeRuntimeFile","formattedId","absolutePath","skipFormat","format","resolveConfig","_options","isSetString","encoding","DEBUG","resolveOutputMode","writeEntryFile","name","isAbsolutePath","writeFileToDisk","resolvedConfig","pathExistsSync","lstatSync","isFile","isDirectory","stat","statSync","lstat","resolveTsconfigPath","tsconfigPathKey","filter","tsconfigPath","resolvePathName","replace","resolveTsconfigPathPackage","tsconfigPathKeys","realpathSync","resolverKey","withExtension","hash","formatFilePath","RegExp","projectRoot","checkVariants","resolveParentPaths","request","current","flat","reduce","ret","includes","Boolean","p","pathOrUrl","isParentPath","key","forEach","createVfs","vfs","restoreVfs"],"mappings":"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","file":"chunk-4LPHTBJM.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 { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { bufferToString } from \"@stryke/convert/buffer-to-string\";\nimport { hash } from \"@stryke/hash/hash\";\nimport { findFilePath } from \"@stryke/path/file-path-fns\";\nimport { isAbsolutePath } from \"@stryke/path/is-file\";\nimport { isParentPath } from \"@stryke/path/is-parent-path\";\nimport { joinPaths } from \"@stryke/path/join-paths\";\nimport { prettyBytes } from \"@stryke/string-format/pretty-bytes\";\nimport { isBuffer } from \"@stryke/type-checks/is-buffer\";\nimport { isFunction } from \"@stryke/type-checks/is-function\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport defu from \"defu\";\nimport { Volume } from \"memfs\";\nimport fs, {\n ObjectEncodingOptions,\n PathLike,\n PathOrFileDescriptor,\n Stats,\n StatSyncOptions\n} from \"node:fs\";\nimport { format, resolveConfig } from \"prettier\";\nimport { IFS, IUnionFs, Union } from \"unionfs\";\nimport { LogFn } from \"../../types/config\";\nimport { Context, SerializedVirtualFileSystem } from \"../../types/context\";\nimport {\n __VFS_CACHE__,\n __VFS_INIT__,\n __VFS_RESOLVER__,\n __VFS_REVERT__,\n __VFS_UNIFIED__,\n __VFS_VIRTUAL__,\n MakeDirectoryOptions,\n OutputModeType,\n ResolveFSOptions,\n ResolvePathOptions,\n VirtualFileSystemInterface,\n VirtualRuntimeFile,\n WriteFileOptions,\n WriteRuntimeFileOptions\n} from \"../../types/vfs\";\nimport { extendLog } from \"../logger\";\nimport { checkVariants, cloneFS, patchFS, toFilePath } from \"./helpers\";\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n * because the buffer-to-string conversion in `fs.readFileSync()`\n * translates it to FEFF, the UTF-16 BOM.\n */\n// function stripBOM(content: string) {\n// if (content.charCodeAt(0) === 0xfeff) {\n// content = content.slice(1);\n// }\n// return content;\n// }\n\n// type ModuleBuiltIn = typeof _Module & {\n// _extensions: Record<\n// string,\n// (\n// module: {\n// _compile: (content: string, fileName: string) => void;\n// exports: any;\n// },\n// fileName: string\n// ) => void\n// >;\n// _findPath: (\n// request: string,\n// paths: string[],\n// isMain: boolean\n// ) => false | string;\n// _resolveFilename: (request: string, parent: string) => string;\n// _pathCache: Record<string, string>;\n// };\n\n// const Module: ModuleBuiltIn = _Module as ModuleBuiltIn;\n\nexport const RUNTIME_PREFIX = \"storm:\";\n\n/**\n * Represents a virtual file system (VFS) that stores files and their associated metadata in virtual memory.\n *\n * @remarks\n * This class provides methods to manage virtual files, check their existence, retrieve their content, and manipulate the virtual file system. It allows for efficient file management and retrieval without relying on the actual file system.\n */\nexport class VirtualFileSystem implements VirtualFileSystemInterface {\n /**\n * The internal map of virtual files.\n */\n #runtimeIdMap: Map<string, string> = new Map<string, string>();\n\n /**\n * A map of virtual file paths to their underlying file content.\n */\n #cachedFS: Map<string, string> = new Map<string, string>();\n\n /**\n * A map of virtual file paths to their underlying file content.\n */\n #cachedResolver: Map<string, string | false> = new Map<\n string,\n string | false\n >();\n\n /**\n * The internal map of virtual files.\n */\n #virtualFS: Volume = new Volume();\n\n /**\n * The physical file system.\n */\n #fs: typeof fs = cloneFS(fs);\n\n /**\n * The unified volume that combines the virtual file system with the real file system.\n *\n * @remarks\n * This volume allows for seamless access to both virtual and real files.\n */\n #unifiedFS = new Union();\n\n /**\n * Indicator specifying if the file system module is patched\n */\n #isPatched = false;\n\n /**\n * Function to revert require patch\n */\n #revert: (() => void) | undefined;\n\n /**\n * The context of the virtual file system.\n */\n #context: Context;\n\n /**\n * The file system's logging function.\n */\n #log: LogFn;\n\n /**\n * Exposes the internal VFS map for advanced usage.\n */\n public get [__VFS_CACHE__](): Map<string, string> {\n return this.#cachedFS;\n }\n\n /**\n * Exposes the internal VFS resolver cache for advanced usage.\n */\n public get [__VFS_RESOLVER__](): Map<string, string | false> {\n return this.#cachedResolver;\n }\n\n /**\n * Exposes the internal VFS map for advanced usage.\n */\n public get [__VFS_VIRTUAL__](): Volume {\n return this.#virtualFS;\n }\n\n /**\n * Exposes the internal UFS map for advanced usage.\n */\n public get [__VFS_UNIFIED__](): IUnionFs {\n return this.#unifiedFS;\n }\n\n /**\n * Creates a new instance of the VirtualFileSystem.\n *\n * @param context - The context of the virtual file system, typically containing options and logging functions.\n * @param serialized - A map of files/file contents to populate in cache\n */\n constructor(context: Context, serialized?: SerializedVirtualFileSystem) {\n this.#context = context;\n this.#cachedFS = new Map();\n this.#runtimeIdMap = new Map(\n Object.entries(serialized?.runtimeIdMap ?? {})\n );\n\n if (!this.#fs.existsSync(this.#context.dataPath)) {\n this.#fs.mkdirSync(this.#context.dataPath, {\n recursive: true\n });\n }\n\n if (!this.#fs.existsSync(this.#context.cachePath)) {\n this.#fs.mkdirSync(this.#context.cachePath, {\n recursive: true\n });\n }\n\n if (\n !this.#fs.existsSync(\n joinPaths(\n this.#context.options.workspaceRoot,\n this.#context.options.output.outputPath\n )\n )\n ) {\n this.#fs.mkdirSync(\n joinPaths(\n this.#context.options.workspaceRoot,\n this.#context.options.output.outputPath\n ),\n {\n recursive: true\n }\n );\n }\n\n this.#unifiedFS = this.#unifiedFS.use(this.#fs);\n\n if (this.#context.options.output.outputMode !== \"fs\") {\n if (\n serialized?.virtualFiles &&\n Object.keys(serialized.virtualFiles).length > 0\n ) {\n this.#virtualFS = new Volume(serialized.virtualFiles);\n }\n\n if (!this.#virtualFS.existsSync(this.#context.artifactsPath)) {\n this.#virtualFS.mkdirSync(this.#context.artifactsPath, {\n recursive: true\n });\n }\n\n if (!this.#virtualFS.existsSync(this.#context.runtimePath)) {\n this.#virtualFS.mkdirSync(this.#context.runtimePath, {\n recursive: true\n });\n }\n\n if (!this.#virtualFS.existsSync(this.#context.entryPath)) {\n this.#virtualFS.mkdirSync(this.#context.entryPath, {\n recursive: true\n });\n }\n\n if (!this.#virtualFS.existsSync(this.#context.dtsPath)) {\n this.#virtualFS.mkdirSync(this.#context.dtsPath, {\n recursive: true\n });\n }\n\n this.#unifiedFS = this.#unifiedFS.use(this.#virtualFS as any);\n } else {\n if (!this.#fs.existsSync(this.#context.artifactsPath)) {\n this.#fs.mkdirSync(this.#context.artifactsPath, {\n recursive: true\n });\n }\n\n if (!this.#fs.existsSync(this.#context.runtimePath)) {\n this.#fs.mkdirSync(this.#context.runtimePath, {\n recursive: true\n });\n }\n\n if (!this.#fs.existsSync(this.#context.entryPath)) {\n this.#fs.mkdirSync(this.#context.entryPath, {\n recursive: true\n });\n }\n\n if (!this.#fs.existsSync(this.#context.dtsPath)) {\n this.#fs.mkdirSync(this.#context.dtsPath, {\n recursive: true\n });\n }\n }\n\n this.#log = extendLog(this.#context.log, \"virtual-file-system\");\n }\n\n public [__VFS_INIT__]() {\n if (!this.#isPatched && this.#context.options.output.outputMode !== \"fs\") {\n this.#revert = patchFS(fs, this);\n this.#isPatched = true;\n }\n }\n\n public [__VFS_REVERT__]() {\n if (this.#isPatched && this.#context.options.output.outputMode !== \"fs\") {\n if (!this.#revert) {\n throw new Error(\n \"Attempting to revert File System patch prior to calling `__init__` function\"\n );\n }\n\n this.#revert?.();\n this.#isPatched = false;\n }\n }\n\n /**\n * Returns a Map of all runtime file IDs and their corresponding paths in the virtual file system.\n *\n * @returns A Map where the keys are runtime file IDs (strings) and the values are their corresponding paths (strings).\n */\n public get runtimeIdMap(): Map<string, string> {\n return this.#runtimeIdMap;\n }\n\n /**\n * Lists all runtime IDs in the virtual file system.\n *\n * @returns An array of formatted runtime IDs.\n */\n public get runtimeIds(): string[] {\n return Array.from(this.runtimeIdMap.keys()).map(id =>\n this.formatRuntimeId(id)\n );\n }\n\n /**\n * Checks if a given path or ID corresponds to a runtime file.\n *\n * @param pathOrId - The path or ID to check.\n * @param options - Options for resolving the path, such as paths to check.\n * @returns `true` if the path or ID corresponds to a runtime file, otherwise `false`.\n */\n public isRuntimeFile(\n pathOrId: string,\n options?: ResolvePathOptions\n ): boolean {\n return !!this.runtimeIdMap\n .values()\n .find(\n path =>\n path === this.resolvePath(pathOrId, { ...options, type: \"file\" })\n );\n }\n\n /**\n * Checks if a provided string is a valid runtime ID (does not need to already be created in the file system).\n *\n * @param id - The ID to check.\n * @returns Whether the ID is a valid runtime ID.\n */\n public isValidRuntimeId(id: string): boolean {\n return id.startsWith(RUNTIME_PREFIX);\n }\n\n /**\n * Check if a path or ID corresponds to a virtual file.\n *\n * @param pathOrId - The path or ID to check.\n * @param options - Options for resolving the path, such as paths to check.\n * @returns Whether the path or ID corresponds to a virtual file.\n */\n public isVirtualFile(\n pathOrId: string,\n options: ResolvePathOptions = {}\n ): boolean {\n if (!pathOrId) {\n return false;\n }\n\n const resolvedPath = this.resolvePath(pathOrId, {\n ...options,\n type: \"file\"\n });\n if (!resolvedPath) {\n return false;\n }\n\n // Check if the resolved path is a runtime file\n if (this.runtimeIdMap.values().find(path => path === resolvedPath)) {\n return true;\n }\n\n return this.#virtualFS.existsSync(resolvedPath);\n }\n\n /**\n * Check if a path exists within one of the directories specified in the tsconfig.json's `path` field.\n *\n * @see https://www.typescriptlang.org/tsconfig#paths\n *\n * @param pathOrId - The path or ID to check.\n * @returns Whether the path or ID corresponds to a virtual file.\n */\n public isTsconfigPath(pathOrId: string): boolean {\n return (\n !!this.#context.tsconfig.options.paths &&\n Object.keys(this.#context.tsconfig.options.paths).some(path =>\n pathOrId.startsWith(path.replaceAll(\"*\", \"\"))\n )\n );\n }\n\n /**\n * Checks if a given ID corresponds to a runtime file path.\n *\n * @param id - The unique identifier for the runtime file.\n * @param pathOrId - The path or ID to check.\n * @returns `true` if the ID corresponds to the path or ID of a runtime file, otherwise `false`.\n */\n public isMatchingRuntimeId(id: string, pathOrId: string): boolean {\n const resolvedPath = this.resolvePath(pathOrId);\n const resolvedId = this.resolveId(pathOrId);\n\n return !!(\n this.isRuntimeFile(pathOrId) &&\n ((resolvedPath &&\n (resolvedPath === this.runtimeIdMap.get(id) ||\n resolvedPath === this.runtimeIdMap.get(this.formatRuntimeId(id)))) ||\n (resolvedId &&\n (resolvedId === this.runtimeIdMap.get(id) ||\n resolvedId === this.runtimeIdMap.get(this.formatRuntimeId(id)))))\n );\n }\n\n /**\n * Lists all runtime files in the virtual file system.\n *\n * @returns A promise that resolves to an array of runtime files.\n */\n public async listRuntimeFiles(): Promise<VirtualRuntimeFile[]> {\n const runtimeFiles: VirtualRuntimeFile[] = [];\n for (const [id, path] of this.runtimeIdMap.entries()) {\n const contents = await this.readFile(path);\n if (contents) {\n runtimeFiles.push({\n id: this.formatRuntimeId(id),\n path,\n contents\n });\n }\n }\n\n return runtimeFiles;\n }\n\n /**\n * Lists files in a given path.\n *\n * @param path - The path to list files from.\n * @param options - Options for listing files, such as encoding and recursion.\n * @returns An array of file names in the specified path.\n */\n public readdirSync(\n path: fs.PathLike,\n options:\n | {\n encoding: BufferEncoding | null;\n withFileTypes?: false | undefined;\n recursive?: boolean | undefined;\n }\n | BufferEncoding = \"utf8\"\n ): string[] {\n return this.resolveFS(path).readdirSync(toFilePath(path), options);\n }\n\n /**\n * Removes a file in the virtual file system (VFS).\n *\n * @param path - The path to create the directory at.\n */\n public unlinkSync(path: fs.PathLike, options?: ResolveFSOptions) {\n const formattedPath = toFilePath(path);\n if (!this.fileExistsSync(path)) {\n return;\n }\n\n this.#log(\n LogLevelLabel.TRACE,\n `Synchronously removing file: ${formattedPath}`\n );\n\n this.resolveFS(path, options).unlinkSync(formattedPath);\n\n this.#cachedFS.delete(formattedPath);\n this.clearResolverCache(formattedPath);\n }\n\n /**\n * Removes a file in the virtual file system (VFS).\n *\n * @param path - The path to create the directory at.\n */\n public async unlink(\n path: fs.PathLike,\n options?: ResolveFSOptions\n ): Promise<void> {\n const formattedPath = toFilePath(path);\n if (!this.fileExistsSync(path)) {\n return;\n }\n\n this.#log(LogLevelLabel.TRACE, `Removing file: ${formattedPath}`);\n\n if (isFunction(this.resolveFS(path, options).promises.unlink)) {\n await this.resolveFS(path, options).promises.unlink(formattedPath);\n\n this.#cachedFS.delete(formattedPath);\n this.clearResolverCache(formattedPath);\n } else {\n this.unlinkSync(formattedPath, options);\n }\n }\n\n /**\n * Removes a directory in the virtual file system (VFS).\n *\n * @param path - The path to create the directory at.\n * @param options - Options for creating the directory.\n */\n public rmdirSync(\n path: fs.PathLike,\n options: fs.RmDirOptions & ResolveFSOptions = {}\n ) {\n const formattedPath = toFilePath(path);\n if (!this.directoryExistsSync(path)) {\n return;\n }\n\n this.#log(\n LogLevelLabel.TRACE,\n `Synchronously removing directory: ${formattedPath}`\n );\n\n this.resolveFS(path, options).rmdirSync(\n formattedPath,\n defu(options, {\n recursive: true\n })\n );\n\n this.#cachedFS.delete(formattedPath);\n this.clearResolverCache(formattedPath);\n }\n\n /**\n * Removes a directory in the virtual file system (VFS).\n *\n * @param path - The path to create the directory at.\n * @param options - Options for creating the directory.\n * @returns A promise that resolves to the path of the created directory, or undefined if the directory could not be created.\n */\n public async rmdir(\n path: fs.PathLike,\n options: fs.RmDirOptions & ResolveFSOptions = {}\n ): Promise<void> {\n const formattedPath = toFilePath(path);\n if (!this.directoryExistsSync(path)) {\n return;\n }\n\n this.#log(LogLevelLabel.TRACE, `Removing directory: ${formattedPath}`);\n\n if (isFunction(this.resolveFS(path, options).promises.rm)) {\n await this.resolveFS(path, options).promises.rm(\n formattedPath,\n defu(options, {\n force: true,\n recursive: true\n })\n );\n\n this.#cachedFS.delete(formattedPath);\n this.clearResolverCache(formattedPath);\n } else {\n this.rmdirSync(\n formattedPath,\n defu(options ?? {}, {\n force: true,\n recursive: true\n })\n );\n }\n }\n\n /**\n * Removes a file in the virtual file system (VFS).\n *\n * @param path - The path to the file to remove.\n * @param options - Options for removing the file.\n * @returns A promise that resolves when the file is removed.\n */\n public async rm(\n path: fs.PathLike,\n options: fs.RmOptions & ResolveFSOptions = {}\n ): Promise<void> {\n this.#log(LogLevelLabel.TRACE, `Removing: ${toFilePath(path)}`);\n\n if (this.directoryExistsSync(path)) {\n return this.rmdir(path, options);\n }\n\n return this.unlink(path, options);\n }\n\n /**\n * Creates a directory in the virtual file system (VFS).\n *\n * @param path - The path to create the directory at.\n * @param options - Options for creating the directory.\n * @returns A promise that resolves to the path of the created directory, or undefined if the directory could not be created.\n */\n public mkdirSync(\n path: fs.PathLike,\n options: MakeDirectoryOptions = {}\n ): string | undefined {\n const filePath = toFilePath(path);\n\n this.clearRe