fix: emit DeepSeek Harness bundle manifest
This commit is contained in:
+58
-1
@@ -1,6 +1,62 @@
|
||||
import { readFileSync } from 'node:fs'
|
||||
import { resolve } from 'node:path'
|
||||
import react from '@vitejs/plugin-react'
|
||||
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
|
||||
import type { Plugin } from 'vite'
|
||||
|
||||
type ProjectPackage = {
|
||||
dependencies?: Record<string, string>
|
||||
}
|
||||
|
||||
const projectPackage = JSON.parse(
|
||||
readFileSync(resolve('package.json'), 'utf8')
|
||||
) as ProjectPackage
|
||||
|
||||
function requireDependencyVersion(
|
||||
dependencies: Record<string, string> | undefined,
|
||||
name: string
|
||||
): string {
|
||||
const version = dependencies?.[name]
|
||||
if (!version) {
|
||||
throw new Error(`Missing ${name} dependency version`)
|
||||
}
|
||||
return version
|
||||
}
|
||||
|
||||
const deepSeekHarnessLlmVersion = requireDependencyVersion(
|
||||
projectPackage.dependencies,
|
||||
'@deepseek-ai/dsh-llm'
|
||||
)
|
||||
|
||||
export function serializeDeepSeekHarnessBundleManifest(
|
||||
version: string
|
||||
): string {
|
||||
return `${JSON.stringify(
|
||||
{
|
||||
name: '@deepseek-ai/dsh-llm',
|
||||
version,
|
||||
private: true,
|
||||
type: 'module'
|
||||
},
|
||||
null,
|
||||
2
|
||||
)}\n`
|
||||
}
|
||||
|
||||
function deepSeekHarnessBundleManifestPlugin(): Plugin {
|
||||
return {
|
||||
name: 'deepseek-harness-bundle-manifest',
|
||||
generateBundle() {
|
||||
this.emitFile({
|
||||
type: 'asset',
|
||||
fileName: 'package.json',
|
||||
source: serializeDeepSeekHarnessBundleManifest(
|
||||
deepSeekHarnessLlmVersion
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default defineConfig({
|
||||
main: {
|
||||
@@ -34,7 +90,8 @@ export default defineConfig({
|
||||
'yaml',
|
||||
'zod'
|
||||
]
|
||||
})
|
||||
}),
|
||||
deepSeekHarnessBundleManifestPlugin()
|
||||
],
|
||||
build: {
|
||||
rollupOptions: {
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
// @vitest-environment node
|
||||
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { serializeDeepSeekHarnessBundleManifest } from '../electron.vite.config'
|
||||
|
||||
describe('Electron Vite configuration', () => {
|
||||
it('serializes the DeepSeek Harness bundle manifest', () => {
|
||||
const source = serializeDeepSeekHarnessBundleManifest('1.2.3')
|
||||
|
||||
expect(JSON.parse(source)).toEqual({
|
||||
name: '@deepseek-ai/dsh-llm',
|
||||
version: '1.2.3',
|
||||
private: true,
|
||||
type: 'module'
|
||||
})
|
||||
expect(source.endsWith('\n')).toBe(true)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user