UNPKG

@neodx/vfs

Version:

Simple virtual file system - working dir context, lazy changes, different modes, integrations and moreover

1 lines 1.57 kB
{"version":3,"file":"create-vfs-plugin-1jK9qNm1.cjs","sources":["../../../src/create-vfs-plugin.ts"],"sourcesContent":["import { redefineName } from '@neodx/std/shared';\nimport type { PrivateVfsApi } from './core/scopes';\nimport type { BaseVfs } from './core/types';\n\nexport interface VfsPlugin<Extensions> {\n <Vfs extends BaseVfs & Partial<Extensions>>(vfs: Vfs, api: PrivateVfsApi<Vfs>): Vfs & Extensions;\n}\n\nexport function createVfsPlugin<const Extensions extends Record<keyof any, any>>(\n name: string,\n handler: <Vfs extends BaseVfs>(\n vfs: Vfs & Partial<Extensions>,\n api: PrivateVfsApi<Vfs>\n ) => Vfs & Partial<Extensions>\n): VfsPlugin<Extensions> {\n function plugin<Vfs extends BaseVfs & Partial<Extensions>>(\n vfs: Vfs,\n api: PrivateVfsApi<Vfs>\n ): Vfs & Extensions {\n return handler(vfs as unknown as Vfs & Partial<Extensions>, api) as unknown as Vfs & Extensions;\n }\n\n redefineName(plugin, name);\n return Object.assign(plugin, {\n [pluginSymbol]: name\n });\n}\n\nconst pluginSymbol = Symbol('vfs-plugin');\n"],"names":["createVfsPlugin","name","handler","plugin","vfs","api","redefineName","Object","assign","pluginSymbol","Symbol"],"mappings":";;;;AAQO,SAASA,eAAAA,CACdC,IAAY,EACZC,OAG8B,EAAA;IAE9B,SAASC,MAAAA,CACPC,GAAQ,EACRC,GAAuB,EAAA;AAEvB,QAAA,OAAOH,QAAQE,GAA6CC,EAAAA,GAAAA,CAAAA,CAAAA;AAC9D,KAAA;AAEAC,IAAAA,mBAAAA,CAAaH,MAAQF,EAAAA,IAAAA,CAAAA,CAAAA;IACrB,OAAOM,MAAAA,CAAOC,MAAM,CAACL,MAAQ,EAAA;AAC3B,QAAA,CAACM,eAAeR,IAAAA;AAClB,KAAA,CAAA,CAAA;AACF,CAAA;AAEA,MAAMQ,eAAeC,MAAO,CAAA,YAAA,CAAA;;;;"}