54 Commits

Author SHA1 Message Date
Simon Garner 7593629c61 0.0.4
Test / dependencies (push) Has been cancelled
Test / lint (push) Has been cancelled
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2021-08-04 17:30:24 +12:00
Simon Garner 3fc3e664f4 Merge pull request #52 from madscience/fix/mutation-client
fix: set client from $apollo correctly in mutateWithErrorHandling
2021-08-04 17:26:42 +12:00
Simon Garner 2a24baba26 fix: export handleApolloError function from package index 2021-08-04 17:24:25 +12:00
Simon Garner 7008d8a401 fix: set client from $apollo correctly in mutateWithErrorHandling 2021-08-04 17:24:25 +12:00
Renovate Bot 75679dc539 Update Node.js to v14.17.4 2021-08-01 18:34:33 +00:00
Renovate Bot d6a4af0adf Update eslint to v4.28.5 2021-07-29 20:13:33 +00:00
Renovate Bot 1e4bb13b14 Update dependency lint-staged to v11.1.1 2021-07-27 13:37:55 +00:00
Renovate Bot 345bb7e0b6 Update dependency @vue/test-utils to v1.2.2 2021-07-25 14:28:08 +00:00
Renovate Bot fe75aaaf03 Update jest 2021-07-25 01:06:48 +00:00
Renovate Bot 4f6b27c3cc Update eslint 2021-07-22 21:01:45 +00:00
Renovate Bot 60e04d13a2 Update dependency lint-staged to v11.0.1 2021-07-16 11:43:49 +00:00
Renovate Bot a5af67e962 Update eslint to v4.28.3 2021-07-15 19:05:01 +00:00
Renovate Bot 70831ef914 Update dependency @types/jest to v26.0.24 2021-07-10 00:40:56 +00:00
Renovate Bot 3e20a074bf Update eslint 2021-07-09 12:32:51 +00:00
Renovate Bot 711ad93254 Update dependency husky to v7.0.1 2021-07-09 12:32:10 +00:00
Renovate Bot 95a4720a24 Update Node.js to v14.17.3 2021-07-08 18:02:31 +00:00
Renovate Bot 2f26bfd45a Update Node.js to v14.17.2 2021-07-04 16:20:56 +00:00
Renovate Bot a00b05b352 Update dependency husky to v7 2021-07-04 08:26:02 +00:00
Renovate Bot 5802d949e5 Update dependency jest to v27.0.6 2021-07-01 18:15:11 +00:00
Renovate Bot 860db84f51 Update eslint to v4.28.1 2021-07-01 18:14:50 +00:00
Renovate Bot 9ec02d15f0 Update dependency eslint-plugin-vue to v7.12.1 2021-06-28 14:01:58 +00:00
Renovate Bot cb7ef32616 Update dependency jest to v27.0.5 2021-06-25 13:28:38 +00:00
Renovate Bot 2e160a6f29 Update eslint 2021-06-24 19:19:52 +00:00
Renovate Bot 99f815dfbd Update dependency graphql to v15.5.1 2021-06-23 16:13:46 +00:00
Renovate Bot b10f95bd02 Update Node.js to v14.17.1 2021-06-18 15:32:09 +00:00
Renovate Bot a56f0168dd Update eslint 2021-06-17 19:30:10 +00:00
Renovate Bot 3426e2aff4 Update dependency @vue/test-utils to v1.2.1 2021-06-17 09:43:42 +00:00
Renovate Bot 8571bc04ab Update eslint 2021-06-10 18:40:50 +00:00
Renovate Bot bb4b2b875e Update dependency vue to v2.6.14 2021-06-10 14:04:35 +00:00
Renovate Bot f3382b7d76 Update dependency ts-jest to v27.0.3 2021-06-09 18:19:51 +00:00
Renovate Bot b0fc7d5506 Update jest 2021-06-06 09:33:54 +00:00
Renovate Bot 33068e663b Update dependency vue to v2.6.13 2021-06-04 18:56:10 +00:00
Renovate Bot 6ed1e9bdb1 Update eslint 2021-06-03 21:02:21 +00:00
Renovate Bot e6a80a4d88 Update eslint 2021-05-27 20:02:15 +00:00
Renovate Bot 2fe8c6b582 Update eslint 2021-05-20 20:09:53 +00:00
Renovate Bot 6bc078dbe4 Update Node.js to v14.17.0 2021-05-15 01:31:20 +00:00
Renovate Bot 7fd1b3977b Update eslint 2021-05-13 20:06:41 +00:00
Renovate Bot cce1dbd5a9 Update dependency lint-staged to v11 2021-05-10 20:12:42 +00:00
Renovate Bot 1c314402c5 Update jest 2021-05-09 17:21:25 +00:00
Renovate Bot 2dae141096 Update eslint to v4.22.1 2021-05-07 17:35:23 +00:00
Renovate Bot b58b07cf9b Update dependency jest-html-reporters to v2.1.5 2021-05-05 13:57:42 +00:00
Renovate Bot 3b15071a3f Update dependency @vue/test-utils to v1.2.0 2021-05-04 11:25:39 +00:00
Renovate Bot 770c2e3b98 Update jest 2021-04-29 13:56:36 +00:00
Renovate Bot 6f33c7d785 Update dependency np to v7.5.0 2021-04-28 11:07:42 +00:00
Renovate Bot ced75f75ae Update dependency eslint to v7.25.0 2021-04-27 01:31:57 +00:00
Renovate Bot 3815b97099 Update jest 2021-04-21 14:32:10 +00:00
Renovate Bot 5626dc129b Update eslint 2021-04-18 04:16:24 +00:00
Renovate Bot 7cacc37645 Update dependency @vue/test-utils to v1.1.4 2021-04-15 04:50:45 +00:00
Renovate Bot 9f15bc22c5 Update dependency eslint-plugin-jest to v24.3.5 2021-04-14 02:23:01 +00:00
Simon Garner 16ca4b711b 0.0.3
Test / dependencies (push) Has been cancelled
Test / lint (push) Has been cancelled
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2021-04-11 13:09:39 +12:00
Simon Garner e4a814126b Add example handleApolloError function 2021-04-11 13:09:03 +12:00
Simon Garner 4f6ddc91ba Change AbstractApolloErrorProcessor to concrete ApolloErrorProcessor 2021-04-11 13:05:29 +12:00
Renovate Bot 36ddad8c67 Update dependency typescript to v4.2.4 2021-04-11 00:35:03 +00:00
Renovate Bot 301e22b24e Update Node.js to v14.16.1 2021-04-10 22:28:56 +00:00
7 changed files with 3039 additions and 2569 deletions
+1 -1
View File
@@ -1 +1 @@
14.16.0
14.17.4
+2978 -2544
View File
File diff suppressed because it is too large Load Diff
+19 -19
View File
@@ -1,6 +1,6 @@
{
"name": "vue-apollo-smart-ops",
"version": "0.0.2",
"version": "0.0.4",
"description": "Create TypeScript-typed operation functions for your Vue Apollo queries and mutations.",
"author": "Madscience Ltd",
"license": "MIT",
@@ -37,36 +37,36 @@
"vue-apollo": ">=3"
},
"devDependencies": {
"@types/jest": "26.0.22",
"@types/jest": "26.0.24",
"@types/lodash.isplainobject": "4.0.6",
"@types/lodash.mapvalues": "4.6.6",
"@typescript-eslint/eslint-plugin": "4.21.0",
"@typescript-eslint/parser": "4.21.0",
"@vue/test-utils": "1.1.3",
"@typescript-eslint/eslint-plugin": "4.28.5",
"@typescript-eslint/parser": "4.28.5",
"@vue/test-utils": "1.2.2",
"apollo-client": "2.6.10",
"apollo-link": "1.2.14",
"barrelsby": "2.2.0",
"dotenv-cli": "4.0.0",
"eslint": "7.23.0",
"eslint": "7.31.0",
"eslint-config-prettier": "7.2.0",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-jest": "24.3.4",
"eslint-plugin-import": "2.23.4",
"eslint-plugin-jest": "24.4.0",
"eslint-plugin-node": "11.1.0",
"eslint-plugin-prettier": "3.3.1",
"eslint-plugin-prettier": "3.4.0",
"eslint-plugin-promise": "4.3.1",
"eslint-plugin-vue": "7.8.0",
"graphql": "15.5.0",
"husky": "6.0.0",
"jest": "26.6.3",
"jest-html-reporters": "2.1.3",
"lint-staged": "10.5.4",
"eslint-plugin-vue": "7.14.0",
"graphql": "15.5.1",
"husky": "7.0.1",
"jest": "27.0.6",
"jest-html-reporters": "2.1.6",
"lint-staged": "11.1.1",
"mkdirp": "1.0.4",
"np": "7.4.0",
"np": "7.5.0",
"prettier": "2.2.1",
"rimraf": "3.0.2",
"ts-jest": "26.5.4",
"typescript": "4.2.3",
"vue": "2.6.12",
"ts-jest": "27.0.4",
"typescript": "4.2.4",
"vue": "2.6.14",
"vue-apollo": "3.0.7",
"vue-jest": "3.0.7"
},
@@ -18,7 +18,7 @@ export function isGraphQLError(error: GraphQLError | any): error is GraphQLError
return error.extensions !== undefined;
}
export abstract class AbstractApolloErrorProcessor<TApp = Vue, TContext = ApolloOperationContext> {
export class ApolloErrorProcessor<TApp = Vue, TContext = ApolloOperationContext> {
public static FriendlyMessages: Record<string, string> = {
FAILED_TO_FETCH:
'Unable to communicate with server. The service may be down or you may be offline. Try again in a moment.',
@@ -39,7 +39,13 @@ export abstract class AbstractApolloErrorProcessor<TApp = Vue, TContext = Apollo
this.processedErrors = this.processApolloError(error);
}
public abstract showErrorNotifications(): void;
public showErrorNotifications(): void {
// This is just an example - to do something else (e.g. showing a visible notification to the user), you should
// implement your own class that extends ApolloErrorProcessor and replace this showErrorNotifications method.
this.processedErrors.forEach(error => {
console.error(`${error.type}: ${error.message}`, error.error);
});
}
public cleanError(error: ApolloError | GraphQLError | Record<string, any>): Error {
if (error instanceof Error) {
@@ -93,7 +99,7 @@ export abstract class AbstractApolloErrorProcessor<TApp = Vue, TContext = Apollo
protected getFriendlyMessage(errorCode: string, errorMessage: string): string;
protected getFriendlyMessage(errorCode: string): string | undefined;
protected getFriendlyMessage(errorCode: string, errorMessage?: string): string | undefined {
return (this.constructor as typeof AbstractApolloErrorProcessor).FriendlyMessages[errorCode] ?? errorMessage;
return (this.constructor as typeof ApolloErrorProcessor).FriendlyMessages[errorCode] ?? errorMessage;
}
private processApolloError(error: ApolloError): ProcessedApolloError[] {
+25
View File
@@ -0,0 +1,25 @@
import { ApolloErrorProcessor } from './ApolloErrorProcessor';
import {
ApolloError,
ApolloErrorHandlerResult,
ApolloOperationContext,
ApolloOperationErrorHandlerFunction,
} from './types';
import { Vue } from 'vue/types/vue';
/**
* This is a simple example of an error handler function. You can copy this and implement your own in your application.
*/
export const handleApolloError: ApolloOperationErrorHandlerFunction<ApolloError, Vue> = (
error: ApolloError,
app: Vue,
context?: ApolloOperationContext,
): ApolloErrorHandlerResult => {
const processor = new ApolloErrorProcessor(error, app, context ?? {});
processor.showErrorNotifications();
return {
processedErrors: processor.processedErrors,
};
};
+2 -1
View File
@@ -2,7 +2,8 @@
* @file Automatically generated by barrelsby.
*/
export * from './AbstractApolloErrorProcessor';
export * from './ApolloErrorProcessor';
export * from './handleApolloError';
export * from './mutation';
export * from './query';
export * from './subscription';
+5 -1
View File
@@ -90,7 +90,11 @@ export async function mutateWithErrorHandling<
client?: ApolloMutationClient<TResult, TVariables>,
): Promise<MutationResult<TResult>> {
const mutate =
client === undefined ? app.$apollo : typeof client === 'function' ? client : client.mutate.bind(client);
client === undefined
? app.$apollo.mutate.bind(app.$apollo)
: typeof client === 'function'
? client
: client.mutate.bind(client);
try {
const result = await mutate({