Skip to content

Commit

Permalink
refactoring: remove hooks reducer (#8661)
Browse files Browse the repository at this point in the history
* remove reducer

* changeset
  • Loading branch information
jantimon committed Dec 6, 2022
1 parent 9c141c5 commit f79a00e
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 35 deletions.
6 changes: 6 additions & 0 deletions .changeset/perfect-dolphins-fix.md
@@ -0,0 +1,6 @@
---
'@graphql-codegen/cli': patch
'@graphql-codegen/plugin-helpers': patch
---

refactor hook execution
39 changes: 4 additions & 35 deletions packages/graphql-codegen-cli/src/hooks.ts
Expand Up @@ -15,40 +15,6 @@ const DEFAULT_HOOKS: Types.LifecycleHooksDefinition = {
beforeAllFileWrite: [],
};

function normalizeHooks(_hooks: Partial<Types.LifecycleHooksDefinition>): {
[key in keyof Types.LifecycleHooksDefinition]: (string | Types.HookFunction)[];
} {
const keys = Object.keys({
...DEFAULT_HOOKS,
..._hooks,
});

return keys.reduce(
(prev: { [key in keyof Types.LifecycleHooksDefinition]: (string | Types.HookFunction)[] }, hookName: string) => {
if (typeof _hooks[hookName] === 'string') {
return {
...prev,
[hookName]: [_hooks[hookName]] as string[],
};
}
if (typeof _hooks[hookName] === 'function') {
return {
...prev,
[hookName]: [_hooks[hookName]],
};
}
if (Array.isArray(_hooks[hookName])) {
return {
...prev,
[hookName]: _hooks[hookName] as string[],
};
}
return prev;
},
{} as { [key in keyof Types.LifecycleHooksDefinition]: (string | Types.HookFunction)[] }
);
}

function execShellCommand(cmd: string): Promise<string> {
return new Promise((resolve, reject) => {
exec(
Expand Down Expand Up @@ -94,7 +60,10 @@ async function executeHooks(
}

export const lifecycleHooks = (_hooks: Partial<Types.LifecycleHooksDefinition> = {}) => {
const hooks = normalizeHooks(_hooks);
const hooks = {
...DEFAULT_HOOKS,
..._hooks,
};

return {
afterStart: async (): Promise<void> => executeHooks('afterStart', hooks.afterStart),
Expand Down

0 comments on commit f79a00e

Please sign in to comment.