{ "name": "hook", "factory": "./src/generators/hook/hook#hookGeneratorInternal", "schema": { "$schema": "https://json-schema.org/schema", "cli": "nx", "$id": "NxReactHook", "title": "Create a React Hook for Nx", "description": "Create a React component using Hooks in a dedicated React project.", "type": "object", "examples": [ { "command": "nx g hook my-hook --project=mylib", "description": "Generate a hook in the `mylib` library" } ], "properties": { "project": { "type": "string", "description": "The name of the project.", "alias": "p", "$default": { "$source": "projectName" }, "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." }, "name": { "type": "string", "description": "The name of the hook.", "$default": { "$source": "argv", "index": 0 }, "x-prompt": "What name would you like to use for the hook?", "x-priority": "important" }, "js": { "type": "boolean", "description": "Generate JavaScript files rather than TypeScript files.", "default": false }, "skipTests": { "type": "boolean", "description": "When true, does not create `spec.ts` test files for the new hook.", "default": false, "x-priority": "internal" }, "directory": { "type": "string", "description": "The directory at which to create the hook file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", "x-priority": "important" }, "nameAndDirectoryFormat": { "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", "type": "string", "enum": ["as-provided", "derived"] }, "flat": { "type": "boolean", "description": "Create hook at the source root rather than its own directory.", "default": false, "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." }, "export": { "type": "boolean", "description": "When true, the hook is exported from the project `index.ts` (if it exists).", "alias": "e", "default": false, "x-prompt": "Should this hook be exported in the project?" }, "pascalCaseFiles": { "type": "boolean", "description": "Use pascal case hook file name (e.g. `useHook.ts`).", "alias": "P", "default": false, "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." }, "pascalCaseDirectory": { "type": "boolean", "description": "Use pascal case directory name (e.g. `useHook/useHook.ts`).", "alias": "R", "default": false, "x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." } }, "required": ["name"], "presets": [] }, "description": "Create a hook.", "aliases": ["c"], "implementation": "/packages/react/src/generators/hook/hook#hookGeneratorInternal.ts", "hidden": false, "path": "/packages/react/src/generators/hook/schema.json", "type": "generator" }