diff --git a/dist/gFetch.d.ts b/dist/gFetch.d.ts index 6ecf88a..b7705c8 100644 --- a/dist/gFetch.d.ts +++ b/dist/gFetch.d.ts @@ -32,13 +32,10 @@ declare type gFetchProperties = { queries: GFetchQueries[]; fetch: typeof fetch; }; -export declare type ApolloClientOptions = { +export declare type GClientOptions = { path?: string; }; -export declare type ApolloClient = { - path?: string; -}; -export declare type GFetchReturn = { +export declare type GReturn = { data: T; errors?: Error; }; @@ -49,7 +46,7 @@ export declare type GGetParameters = { export declare type GFetchReturnWithErrors = Spread<[T, GFetchQueryDefault]>; export declare class GFetch extends Object { path: string; - constructor(options: ApolloClientOptions); + constructor(options: GClientOptions); fetch({ queries, fetch, }?: gFetchProperties | {}): Promise>; } export {}; diff --git a/dist/gFetch.js b/dist/gFetch.js index 147018b..a8c9819 100644 --- a/dist/gFetch.js +++ b/dist/gFetch.js @@ -1,5 +1,4 @@ -import { Kind, print, } from "graphql"; -import "svelte/store"; +import { Kind, print } from "graphql"; import { formatDocument as addTypenameToDocument } from "./utils/format"; // This function accepts a graphql document and returns a string to be used // in fetch calls @@ -52,59 +51,11 @@ export class GFetch extends Object { const data = await res.json(); return { ...data.data, + errors: data.errors, }; + // } as GFetchReturnWithErrors; } } -// * ogFetch -// This function is a fetcher that returns a svelte readable subscription -// This is to be used for client side fetching of data -// public oFetch({ -// queries, -// }: { -// queries: GFetchQueries[]; -// }): Readable> { -// // 1. Build the store and initialize it as empty and error free -// const initial = new Map(); -// // Creates a store that will be used to subscribe to the data -// const store = readable(initial, this.makeSubscribe(initial, queries)); -// return store as unknown as Readable>; -// } -// // A dummy function that is used to make subscribe happy. -// private unsubscribe() { -// // Nothing to do in this case -// } -// // Part of ogFetch -// // Designed this way to work will with Svelte's readable store -// private makeSubscribe(data, queries) { -// // Create a closure with access to the -// // initial data and initialization arguments -// return (set) => { -// // 3. This won't get executed until the store has -// // its first subscriber. Kick off retrieval. -// this.fetchDataForSubscription(data, set, queries); -// // We're not waiting for the response. -// // Return the unsubscribe function which doesn't do -// // do anything here (but is part of the stores protocol). -// return this.unsubscribe; -// }; -// } -// // Part of ogFetch -// // Runs gFetch and updates subscription -// private async fetchDataForSubscription(data, set, queries: GFetchQueries[]) { -// try { -// // Dispatch the request for the users -// // This code is ONLY run client side, so fetch comes globally from the browser -// const response = await this.fetch({ queries, fetch }); -// set(response); -// } catch (error) { -// // 6b. if there is a fetch error - deal with it -// // and let observers know -// data.error = error; -// set(data); -// } -// } -// } -// export const data = writable(); // ! IDEAS // Mutations should take care of updating a generated writeable. // $tutorial is auto updated site wide diff --git a/dist/gFetch.js.map b/dist/gFetch.js.map index a2217ab..4fb1aa4 100644 --- a/dist/gFetch.js.map +++ b/dist/gFetch.js.map @@ -1 +1 @@ -{"version":3,"file":"gFetch.js","sourceRoot":"","sources":["../src/gFetch.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"gFetch.js","sourceRoot":"","sources":["../src/gFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAkDzE,2EAA2E;AAC3E,iBAAiB;AACjB,MAAM,UAAU,WAAW,CAAC,GAAiB;IAC3C,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAmB,EAAsB,EAAE;IAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,IAAI,EAAE;YACxD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;SACxB;KACF;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAA4C,EACpC,EAAE;IACV,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACtD,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC;SACnC,IAAI,EAAE,CAAC;IACV,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAuBF,MAAM,OAAO,MAAO,SAAQ,MAAM;IAGhC,YAAY,OAAuB;QACjC,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,WAAW;IACX,+EAA+E;IACxE,KAAK,CAAC,KAAK,CAAI,EACpB,OAAO,EACP,KAAK,MACoB,EAAE;QAC3B,IAAI,QAAQ,GAAiB,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,cAAc,GAAW,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG;YACjB,GAAG,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,EAAE,cAAc;SACtB,CAAC;QAEF,2DAA2D;QAC3D,gCAAgC;QAChC,wCAAwC;QACxC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YACjC,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;SACjC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAE9B,OAAO;YACL,GAAG,IAAI,CAAC,IAAI;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QACF,kCAAkC;IACpC,CAAC;CACF;AAED,UAAU;AACV,gEAAgE;AAChE,sCAAsC"} \ No newline at end of file diff --git a/src/gFetch.ts b/src/gFetch.ts index 2ba7bbf..e4d40ff 100644 --- a/src/gFetch.ts +++ b/src/gFetch.ts @@ -1,13 +1,5 @@ -import { - Location, - DefinitionNode, - DocumentNode, - Kind, - parse, - print, -} from "graphql"; -import { readable, writable } from "svelte/store"; -import type { Readable } from "svelte/store"; +import { DefinitionNode, DocumentNode, Kind, print } from "graphql"; + import { formatDocument as addTypenameToDocument } from "./utils/format"; // What's the deal with *gFetch*? @@ -76,10 +68,6 @@ export const getOperationName = (query: DocumentNode): string | undefined => { } }; -interface WritableLocation { - loc: Location | undefined; -} - export const stringifyDocument = ( node: string | DefinitionNode | DocumentNode ): string => { @@ -94,14 +82,11 @@ type gFetchProperties = { fetch: typeof fetch; }; -export type ApolloClientOptions = { - path?: string; -}; -export type ApolloClient = { +export type GClientOptions = { path?: string; }; -export type GFetchReturn = { +export type GReturn = { data: T; errors?: Error; }; @@ -116,7 +101,7 @@ export type GFetchReturnWithErrors = Spread<[T, GFetchQueryDefault]>; export class GFetch extends Object { public path: string; - constructor(options: ApolloClientOptions) { + constructor(options: GClientOptions) { super(); const { path } = options; this.path = path; @@ -151,66 +136,12 @@ export class GFetch extends Object { return { ...data.data, - } as GFetchReturnWithErrors; + errors: data.errors, + }; + // } as GFetchReturnWithErrors; } } -// * ogFetch -// This function is a fetcher that returns a svelte readable subscription -// This is to be used for client side fetching of data -// public oFetch({ -// queries, -// }: { -// queries: GFetchQueries[]; -// }): Readable> { -// // 1. Build the store and initialize it as empty and error free -// const initial = new Map(); -// // Creates a store that will be used to subscribe to the data -// const store = readable(initial, this.makeSubscribe(initial, queries)); -// return store as unknown as Readable>; -// } - -// // A dummy function that is used to make subscribe happy. -// private unsubscribe() { -// // Nothing to do in this case -// } - -// // Part of ogFetch -// // Designed this way to work will with Svelte's readable store -// private makeSubscribe(data, queries) { -// // Create a closure with access to the -// // initial data and initialization arguments -// return (set) => { -// // 3. This won't get executed until the store has -// // its first subscriber. Kick off retrieval. -// this.fetchDataForSubscription(data, set, queries); - -// // We're not waiting for the response. -// // Return the unsubscribe function which doesn't do -// // do anything here (but is part of the stores protocol). -// return this.unsubscribe; -// }; -// } - -// // Part of ogFetch -// // Runs gFetch and updates subscription -// private async fetchDataForSubscription(data, set, queries: GFetchQueries[]) { -// try { -// // Dispatch the request for the users -// // This code is ONLY run client side, so fetch comes globally from the browser -// const response = await this.fetch({ queries, fetch }); -// set(response); -// } catch (error) { -// // 6b. if there is a fetch error - deal with it -// // and let observers know -// data.error = error; -// set(data); -// } -// } -// } - -// export const data = writable(); - // ! IDEAS // Mutations should take care of updating a generated writeable. // $tutorial is auto updated site wide