diff --git a/src/lib/components/FileManagement/CreateNewButton.svelte b/src/lib/components/FileManagement/CreateNewButton.svelte
index 9731e85..35abf0b 100644
--- a/src/lib/components/FileManagement/CreateNewButton.svelte
+++ b/src/lib/components/FileManagement/CreateNewButton.svelte
@@ -1,5 +1,6 @@
diff --git a/src/lib/components/FileManagement/DeleteButton.svelte b/src/lib/components/FileManagement/DeleteButton.svelte
index 07ead4e..00653a7 100644
--- a/src/lib/components/FileManagement/DeleteButton.svelte
+++ b/src/lib/components/FileManagement/DeleteButton.svelte
@@ -1,5 +1,6 @@
@@ -9,6 +10,7 @@
on:click={async () => {
if (confirm(`Are you sure you want to delete '${spec.name}'?`)) {
await db.apiSpecs.delete(spec.id);
+ setSpec(newSpec);
}
}}
>
diff --git a/src/lib/components/FileManagement/SaveNewButton.svelte b/src/lib/components/FileManagement/SaveNewButton.svelte
index 0faf2e4..e11d00d 100644
--- a/src/lib/components/FileManagement/SaveNewButton.svelte
+++ b/src/lib/components/FileManagement/SaveNewButton.svelte
@@ -11,8 +11,9 @@
};
}
console.log($selectedSpec);
- $selectedSpec.id = undefined;
- db.apiSpecs.put($selectedSpec);
+ const newSpec = structuredClone($selectedSpec);
+ newSpec.id = undefined;
+ db.apiSpecs.put(newSpec);
}
diff --git a/src/lib/index.ts b/src/lib/index.ts
index 90c8656..3c62420 100644
--- a/src/lib/index.ts
+++ b/src/lib/index.ts
@@ -1,30 +1,10 @@
+import type { APISpec } from './db';
import type { OpenAPIV3_1 } from './openAPITypes';
import { writable, type Writable } from 'svelte/store';
export const localStoragePrefix = 'openapigen-';
-export const operationCount = (openApiDoc: OpenAPIV3_1.Document) => {
- let count = 0;
- for (const path in openApiDoc.paths) {
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- for (const method in openApiDoc.paths[path]) {
- count++;
- }
- }
- return count;
-}
-
-export const pathCount = (openApiDoc: OpenAPIV3_1.Document) => {
- let count = 0;
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- for (const path in openApiDoc.paths) {
- count++;
- }
- return count;
-}
-
-
-export const openApiStore: Writable = writable({
+export const blankSpec: OpenAPIV3_1.Document = {
openapi: '3.1.0', // OpenAPI version
info: {
/** Title of the API (required) */
@@ -58,7 +38,35 @@ export const openApiStore: Writable = writable({
description: '',
url: ''
}
-});
+}
+
+export const newSpec: APISpec = {
+ name: 'OpenAPI',
+ spec: blankSpec
+}
+
+export const operationCount = (openApiDoc: OpenAPIV3_1.Document) => {
+ let count = 0;
+ for (const path in openApiDoc.paths) {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ for (const method in openApiDoc.paths[path]) {
+ count++;
+ }
+ }
+ return count;
+}
+
+export const pathCount = (openApiDoc: OpenAPIV3_1.Document) => {
+ let count = 0;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ for (const path in openApiDoc.paths) {
+ count++;
+ }
+ return count;
+}
+
+
+export const openApiStore: Writable = writable(blankSpec);
export enum HttpMethods {
GET = 'get',