{"id":16430988,"url":"https://github.com/estruyf/vscode-typescript-exportallmodules","last_synced_at":"2025-03-16T17:35:26.675Z","repository":{"id":39229253,"uuid":"190706750","full_name":"estruyf/vscode-typescript-exportallmodules","owner":"estruyf","description":"VSCode extension which generates an `index.ts`barrel file with all the module exports from the current directory","archived":false,"fork":false,"pushed_at":"2024-09-12T14:46:00.000Z","size":7964,"stargazers_count":39,"open_issues_count":13,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-11T11:29:59.562Z","etag":null,"topics":["folder-listener","typescript"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-typescript-exportallmodules","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/estruyf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["estruyf"],"custom":["https://www.buymeacoffee.com/zMeFRy9"]}},"created_at":"2019-06-07T07:47:06.000Z","updated_at":"2024-09-14T09:16:57.000Z","dependencies_parsed_at":"2024-07-12T10:26:03.436Z","dependency_job_id":"44f6c567-ffab-49b3-8dfe-208460363f15","html_url":"https://github.com/estruyf/vscode-typescript-exportallmodules","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/estruyf%2Fvscode-typescript-exportallmodules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/estruyf%2Fvscode-typescript-exportallmodules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/estruyf%2Fvscode-typescript-exportallmodules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/estruyf%2Fvscode-typescript-exportallmodules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/estruyf","download_url":"https://codeload.github.com/estruyf/vscode-typescript-exportallmodules/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243823347,"owners_count":20353654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["folder-listener","typescript"],"created_at":"2024-10-11T08:28:54.834Z","updated_at":"2025-03-16T17:35:25.863Z","avatar_url":"https://github.com/estruyf.png","language":"TypeScript","funding_links":["https://github.com/sponsors/estruyf","https://www.buymeacoffee.com/zMeFRy9"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-typescript-exportallmodules\"\u003e\n    \u003cimg alt=\"TypeScript Barrel Generator\" src=\"./assets/export-all.png\"\u003e\n  \u003c/a\u003e\n\u003c/h1\u003e\n\n\u003ch2 align=\"center\"\u003eTypeScript Barrel Generator\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-typescript-exportallmodules\" title=\"Check it out on the Visual Studio Marketplace\"\u003e\n    \u003cimg src=\"https://vsmarketplacebadges.dev/version/eliostruyf.vscode-typescript-exportallmodules.svg\" alt=\"Visual Studio Marketplace\" style=\"display: inline-block\" /\u003e\n  \u003c/a\u003e\n\n  \u003cimg src=\"https://vsmarketplacebadges.dev/installs/eliostruyf.vscode-typescript-exportallmodules.svg\" alt=\"Number of installs\"  style=\"display: inline-block;margin-left:10px\" /\u003e\n  \n  \u003cimg src=\"https://vsmarketplacebadges.dev/rating/eliostruyf.vscode-typescript-exportallmodules.svg\" alt=\"Ratings\" style=\"display: inline-block;margin-left:10px\" /\u003e\n\n  \u003ca href=\"https://www.buymeacoffee.com/zMeFRy9\" title=\"Buy me a coffee\" style=\"margin-left:10px\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Buy%20me%20a%20coffee-€%203-blue?logo=buy-me-a-coffee\u0026style=flat\" alt=\"Buy me a coffee\" style=\"display: inline-block\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## ❓ Why\n\nWorking with TypeScript? Want to make your TypeScript imports cleaner? Use this extension to easily export all modules to a barrel `index.ts` file.\n\n\u003e **Info**: A \"barrel\" is a way to rollup exports from several modules into a single convenient module. The barrel itself is a module file that re-exports selected exports of other modules.\n\nExample:\n\n```typescript\n// folder/index.ts\nexport * from './foo';\nexport * from './bar';\n```\n\n## ✨ Functionalities\n\nThe extension allows you to manually or automatically export the modules to a barrel file. For the automatic way, you first have to create a listener for the folder for which you want to create the automated export.\n\nIn both the manual and automatic way, an `index.ts` file will be created with a reference to all the folder/files in the current directory.\n\n\u003e **Info**: If there are folders/files you want to get excluded from the export, you can do this by right-clicking on the folder/file and clicking on the `TypeScript: Exclude folder/file from export`.\n\n### Create from the current file directory\n\nBy using the `Barrel Generator: Export all modules from the current file directory` command, you can create a barrel file from the current file path its directory.\n\n\u003e **Info**: If you want, you can add your own keybinding to this command to make it easier to trigger.\n\n### Manual creation\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/manual-export.gif\" alt=\"Manual module export\" style=\"display: inline-block\" /\u003e\n\u003c/p\u003e\n\n### Module creation by listener\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/listener.gif\" alt=\"Export listener\" style=\"display: inline-block\" /\u003e\n\u003c/p\u003e\n\n\u003e **Info**: When a folder listener is added, it will be visible in the `TypeScript - Export Listeners` view. By clicking on the folder names, you will automatically open the `index.ts` file.\n\n#### Removing a listener\n\nFolder listeners can be removed by right-clicking on the folder name in the `TypeScript - Export View`.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/remove-listener.png\" alt=\"Remove a folder listener\" style=\"display: inline-block\" /\u003e\n\u003c/p\u003e\n\n### Excluding folder(s)/file(s)\n\nIf there are specific folders or files you want to exclude from your module, you can do this by right-clicking on the file, and click on the `TypeScript: Exclude folder/file from export` menu action.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/exclude-folder.png\" alt=\"Excluding folder\" style=\"display: inline-block\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/exclude-file.png\" alt=\"Excluding file\" style=\"display: inline-block\" /\u003e\n\u003c/p\u003e\n\n#### Include previously excluded folder(s)/file(s)\n\nWhen you already excluded a folder or file, and want to include these again into your module export, you can do this from the `TypeScript - Export View`. Under the `Excluded folders \u0026 files` section, right-click on the folder or file to include and click `Include to export`.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/include-export.png\" alt=\"Include to export\" style=\"display: inline-block\" /\u003e\n\u003c/p\u003e\n\n## ⚙️ Configuration / Settings\n\nThe extension makes use of the following settings:\n\n| Setting | Description | Type | Default |\n| --- | --- | --- | --- |\n| `exportall.config.namedExports` | Specifies if you want to use named exports in the barrel file. | boolean | `false` |\n| `exportall.config.includeFoldersToExport` | Specifies if folder (which contain a `index.ts` file) will also be included in the module export. | boolean | `true` |\n| `exportall.config.exclude` | Specify which files you want to exclude the `index.ts` file. Works on the whole filename or part of the filename. | string[] | `['.test.', '.spec.']` |\n| `exportall.config.folderListener` | Specify the relative paths for the folder listeners. This will make it possible to automatically generate the module export once a file gets added/updated/removed within the specified folder.\u003cbr/\u003e\u003cbr/\u003eTo listen to sub-folders, you can include the directory wildcard `**` to the path.  | string[] | `[]` |\n| `exportall.config.relExclusion` | Specify the relative folder/file paths to exclude from the export. | `string[]` | `[]` |\n| `exportall.config.semis` | Specify if you want to enable/disable the usage of semis in the barrel file. | `boolean` | `true` |\n| `exportall.config.quote` | Specify the character that you want to use as the quoting character; typically `'` or `\"`. | `string` | `'` |\n| `exportall.config.message` | Specify the message that you want to use in the generated barrel file. The message will be added at the top. | `string` | |\n| `exportall.config.exportFileExtension` | Specify the file extension to append to the exported files. Example: `js`, `ts`, `null` (no extension). | `string` \\| `null` | `null` |\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/config.png\" alt=\"Config settings example\" style=\"display: inline-block\" /\u003e\n\u003c/p\u003e\n\n## 💪 Contribute\n\nExperiencing any issues, or got feedback to share? Feel free to raise this in the issue list of the repo: [issues](https://github.com/estruyf/vscode-typescript-exportallmodules/issues).\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/estruyf/vscode-typescript-exportallmodules/graphs/contributors\"\u003e\n    \u003cimg src=\"https://contrib.rocks/image?repo=estruyf/vscode-typescript-exportallmodules\" alt=\"TypeScript Barrel Generator\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## 🔑 License\n\n[MIT](./LICENSE)\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2Festruyf%2Fvscode-typescript-exportallmodules\"\u003e\u003cimg src=\"https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Festruyf%2Fvscode-typescript-exportallmodules\u0026countColor=%23263759\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Festruyf%2Fvscode-typescript-exportallmodules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Festruyf%2Fvscode-typescript-exportallmodules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Festruyf%2Fvscode-typescript-exportallmodules/lists"}