This commit is contained in:
Dustin Loring 2024-12-01 07:57:42 -05:00
parent 8a6d32f9f1
commit b0b617dac7
4 changed files with 25 additions and 7 deletions

View File

@ -14,7 +14,7 @@ import { saveAs } from 'file-saver';
import { Octokit, type RestEndpointMethodTypes } from '@octokit/rest'; import { Octokit, type RestEndpointMethodTypes } from '@octokit/rest';
import * as nodePath from 'node:path'; import * as nodePath from 'node:path';
import { extractRelativePath } from '~/utils/diff'; import { extractRelativePath } from '~/utils/diff';
import { description } from '../persistence'; import { description } from '~/persistence';
export interface ArtifactState { export interface ArtifactState {
id: string; id: string;
@ -169,7 +169,6 @@ export class WorkbenchStore {
this.#editorStore.setSelectedFile(filePath); this.#editorStore.setSelectedFile(filePath);
} }
async saveFile(filePath: string) { async saveFile(filePath: string) {
const documents = this.#editorStore.documents.get(); const documents = this.#editorStore.documents.get();
const document = documents[filePath]; const document = documents[filePath];
@ -329,6 +328,7 @@ export class WorkbenchStore {
async downloadZip() { async downloadZip() {
const zip = new JSZip(); const zip = new JSZip();
const files = this.files.get(); const files = this.files.get();
// Get the project name from the description input, or use a default name // Get the project name from the description input, or use a default name
const projectName = (description.value ?? 'project').toLocaleLowerCase().split(' ').join('_'); const projectName = (description.value ?? 'project').toLocaleLowerCase().split(' ').join('_');
@ -357,10 +357,10 @@ export class WorkbenchStore {
} }
} }
} }
// Generate the zip file and save it // Generate the zip file and save it
const content = await zip.generateAsync({ type: 'blob' }); const content = await zip.generateAsync({ type: 'blob' });
saveAs(content, `${uniqueProjectName}.zip`); saveAs(content, `${uniqueProjectName}.zip`);
} }
async syncFiles(targetHandle: FileSystemDirectoryHandle) { async syncFiles(targetHandle: FileSystemDirectoryHandle) {

View File

@ -283,7 +283,7 @@ const getOllamaBaseUrl = () => {
}; };
async function getOllamaModels(): Promise<ModelInfo[]> { async function getOllamaModels(): Promise<ModelInfo[]> {
/* /*
* if (typeof window === 'undefined') { * if (typeof window === 'undefined') {
* return []; * return [];
* } * }

17
package-lock.json generated
View File

@ -59,6 +59,7 @@
"jszip": "^3.10.1", "jszip": "^3.10.1",
"nanostores": "^0.10.3", "nanostores": "^0.10.3",
"ollama-ai-provider": "^0.15.2", "ollama-ai-provider": "^0.15.2",
"pnpm": "^9.14.4",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-hotkeys-hook": "^4.5.0", "react-hotkeys-hook": "^4.5.0",
@ -18446,6 +18447,22 @@
"pathe": "^1.1.2" "pathe": "^1.1.2"
} }
}, },
"node_modules/pnpm": {
"version": "9.14.4",
"resolved": "https://registry.npmjs.org/pnpm/-/pnpm-9.14.4.tgz",
"integrity": "sha512-yBgLP75OS8oCyUI0cXiWtVKXQKbLrfGfp4JUJwQD6i8n1OHUagig9WyJtj3I6/0+5TMm2nICc3lOYgD88NGEqw==",
"license": "MIT",
"bin": {
"pnpm": "bin/pnpm.cjs",
"pnpx": "bin/pnpx.cjs"
},
"engines": {
"node": ">=18.12"
},
"funding": {
"url": "https://opencollective.com/pnpm"
}
},
"node_modules/possible-typed-array-names": { "node_modules/possible-typed-array-names": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",

View File

@ -79,6 +79,7 @@
"jszip": "^3.10.1", "jszip": "^3.10.1",
"nanostores": "^0.10.3", "nanostores": "^0.10.3",
"ollama-ai-provider": "^0.15.2", "ollama-ai-provider": "^0.15.2",
"pnpm": "^9.14.4",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-hotkeys-hook": "^4.5.0", "react-hotkeys-hook": "^4.5.0",
@ -96,9 +97,9 @@
"devDependencies": { "devDependencies": {
"@blitz/eslint-plugin": "0.1.0", "@blitz/eslint-plugin": "0.1.0",
"@cloudflare/workers-types": "^4.20240620.0", "@cloudflare/workers-types": "^4.20240620.0",
"@remix-run/dev": "^2.10.0",
"@rollup/plugin-inject": "^5.0.5",
"@jridgewell/sourcemap-codec": "^1.4.15", "@jridgewell/sourcemap-codec": "^1.4.15",
"@remix-run/dev": "^2.10.0",
"@rollup/plugin-inject": "^5.0.5",
"@types/diff": "^5.2.1", "@types/diff": "^5.2.1",
"@types/file-saver": "^2.0.7", "@types/file-saver": "^2.0.7",
"@types/js-cookie": "^3.0.6", "@types/js-cookie": "^3.0.6",