-
Notifications
You must be signed in to change notification settings - Fork 3
support named export file #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
* feat: 增加 nocacheRequire 导出 * feat: tab style chore: version
WalkthroughThis update introduces a new Changes
Sequence Diagram(s)sequenceDiagram
participant EasyI18n
participant Utils
participant LocaleFile
EasyI18n->>Utils: noCacheRequire(distFile)
Utils->>LocaleFile: require(distFile) (after cache deletion)
Utils-->>EasyI18n: returns required module
EasyI18n->>Utils: extractLocaleFromExport(data)
Utils-->>EasyI18n: returns processed locale data
Possibly related PRs
Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
src/easy-i18n.js(node:5315) ESLintIgnoreWarning: The ".eslintignore" file is no longer supported. Switch to using the "ignores" property in "eslint.config.js": https://eslint.org/docs/latest/use/configure/migration-guide#ignoring-files Oops! Something went wrong! :( ESLint: 9.25.1 ESLint couldn't find an eslint.config.(js|mjs|cjs) file. From ESLint v9.0.0, the default configuration file is now eslint.config.js. https://eslint.org/docs/latest/use/configure/migration-guide If you still have problems after following the migration guide, please stop by src/utils.js(node:5333) ESLintIgnoreWarning: The ".eslintignore" file is no longer supported. Switch to using the "ignores" property in "eslint.config.js": https://eslint.org/docs/latest/use/configure/migration-guide#ignoring-files Oops! Something went wrong! :( ESLint: 9.25.1 ESLint couldn't find an eslint.config.(js|mjs|cjs) file. From ESLint v9.0.0, the default configuration file is now eslint.config.js. https://eslint.org/docs/latest/use/configure/migration-guide If you still have problems after following the migration guide, please stop by ✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
src/utils.js (1)
8-18: Consider adding JSDoc comments for better documentationThe
extractLocaleFromExportfunction handles multiple export formats, but its behavior could be better documented with JSDoc comments explaining:
- The expected input formats
- The logic for determining which value to return
- Example usages with both default and named exports
-Utils.extractLocaleFromExport = function (data) { - // 处理各类场景下的 i18n 数据 +/** + * Extracts locale data from different export formats + * + * @param {Object} data - The module export, could be a default export or named export + * @returns {Object} The extracted locale data + * + * @example + * // For default exports: module.exports = { 'key': 'value' } + * // Returns { 'key': 'value' } + * + * @example + * // For named exports: export const localeData = { 'key': 'value' } + * // Returns { 'key': 'value' } + */ +Utils.extractLocaleFromExport = function (data) { + // Process i18n data in various scenariosREADME.md (2)
70-70: Fix missing hyphen in 'auto-updated'There should be a hyphen between 'auto' and 'updated' for proper grammar.
-This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Mon Apr 07 2025 21:05:31 GMT+0800`. +This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto-updated at `Mon Apr 07 2025 21:05:31 GMT+0800`.🧰 Tools
🪛 LanguageTool
[uncategorized] ~70-~70: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’).
Context: ...//github.com/xudafeng/git-contributor), auto updated atMon Apr 07 2025 21:05:31 GMT+0800....(AUTO_HYPHEN)
66-66: Add alt text to contributor imagesFor better accessibility, add alt text to the contributor images.
-|[<img src="https://avatars.githubusercontent.com/u/1011681?v=4" width="100px;"/><br/><sub><b>xudafeng</b></sub>](https://github.com/xudafeng)<br/>|[<img src="https://avatars.githubusercontent.com/u/52845048?v=4" width="100px;"/><br/><sub><b>snapre</b></sub>](https://github.com/snapre)<br/>|[<img src="https://avatars.githubusercontent.com/u/61226209?v=4" width="100px;"/><br/><sub><b>yangkeni</b></sub>](https://github.com/yangkeni)<br/>|[<img src="https://avatars.githubusercontent.com/u/11213298?v=4" width="100px;"/><br/><sub><b>WynterDing</b></sub>](https://github.com/WynterDing)<br/>|[<img src="https://avatars.githubusercontent.com/u/12947068?v=4" width="100px;"/><br/><sub><b>ilimei</b></sub>](https://github.com/ilimei)<br/>| +|[<img src="https://avatars.githubusercontent.com/u/1011681?v=4" width="100px;" alt="xudafeng"/><br/><sub><b>xudafeng</b></sub>](https://github.com/xudafeng)<br/>|[<img src="https://avatars.githubusercontent.com/u/52845048?v=4" width="100px;" alt="snapre"/><br/><sub><b>snapre</b></sub>](https://github.com/snapre)<br/>|[<img src="https://avatars.githubusercontent.com/u/61226209?v=4" width="100px;" alt="yangkeni"/><br/><sub><b>yangkeni</b></sub>](https://github.com/yangkeni)<br/>|[<img src="https://avatars.githubusercontent.com/u/11213298?v=4" width="100px;" alt="WynterDing"/><br/><sub><b>WynterDing</b></sub>](https://github.com/WynterDing)<br/>|[<img src="https://avatars.githubusercontent.com/u/12947068?v=4" width="100px;" alt="ilimei"/><br/><sub><b>ilimei</b></sub>](https://github.com/ilimei)<br/>|🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
README.md(1 hunks)package.json(1 hunks)src/easy-i18n.js(3 hunks)src/utils.js(1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
src/utils.js (1)
src/easy-i18n.js (1)
Utils(10-10)
src/easy-i18n.js (1)
src/utils.js (1)
Utils(1-1)
🪛 LanguageTool
README.md
[uncategorized] ~70-~70: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’).
Context: ...//github.com/xudafeng/git-contributor), auto updated at Mon Apr 07 2025 21:05:31 GMT+0800....
(AUTO_HYPHEN)
🪛 markdownlint-cli2 (0.17.2)
README.md
66-66: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
🔇 Additional comments (7)
src/utils.js (1)
1-20: Good addition of a utility module to centralize require and export handlingThe new Utils module effectively centralizes two important operations:
- A module loading function that bypasses Node.js caching
- A flexible export extraction function that handles both default and named exports
This addition directly supports the PR objective of supporting named export files.
src/easy-i18n.js (4)
10-10: Good integration of the Utils moduleProper import of the new Utils module.
156-164: Improved module reloading with Utils functionsReplacing direct cache manipulation with the centralized utility function improves code maintainability and simplifies the implementation.
189-193: Consistent use of utility functions for module loadingThe implementation consistently uses the Utils module for loading and extracting locale data, which supports the PR objective of handling named exports.
211-214: Clean simplification of runWithCheck methodThe code now leverages the utility functions to handle cache invalidation automatically.
package.json (1)
3-3: Appropriate version bump for feature additionThe version is incremented from 2.0.1 to 2.0.2, which is appropriate for adding support for named export files.
README.md (1)
66-67: Updated contributors section with new entryThe contributors section has been properly updated to include WynterDing and reorganize existing contributors.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
66-66: Images should have alternate text (alt text)
null(MD045, no-alt-text)
eg:
Summary by CodeRabbit
Documentation
Chores
New Features
Refactor