(
args: {
blob: Blob;
lixKeyValues?: NewKeyValue[];
} & Omit<Parameters<typeof loadProject>[0], "sqlite" | "lix">
)
| 6 | * Load a project from a blob in memory. |
| 7 | */ |
| 8 | export async function loadProjectInMemory( |
| 9 | args: { |
| 10 | blob: Blob; |
| 11 | lixKeyValues?: NewKeyValue[]; |
| 12 | } & Omit<Parameters<typeof loadProject>[0], "sqlite" | "lix"> |
| 13 | ) { |
| 14 | const lix = await openLixInMemory({ |
| 15 | blob: args.blob, |
| 16 | account: args.account, |
| 17 | keyValues: args.lixKeyValues, |
| 18 | providePlugins: [ |
| 19 | // inlangLixPluginV1 |
| 20 | ], |
| 21 | }); |
| 22 | |
| 23 | const dbFile = await lix.db |
| 24 | .selectFrom("file") |
| 25 | .select("data") |
| 26 | .where("path", "=", "/db.sqlite") |
| 27 | .executeTakeFirstOrThrow(); |
| 28 | |
| 29 | const sqlite = await createInMemoryDatabase({}); |
| 30 | importDatabase({ db: sqlite, content: new Uint8Array(dbFile.data) }); |
| 31 | |
| 32 | return await loadProject({ |
| 33 | // pass common arguments to loadProject |
| 34 | ...args, |
| 35 | sqlite, |
| 36 | lix, |
| 37 | }); |
| 38 | } |
no test coverage detected