Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
grunt-banana-checker
Advanced tools
Readme
Checker for the 'Banana' JSON-file format for interface messages, as used by MediaWiki and jQuery.i18n.
By default, Banana checker asserts the following:
@metadata
object.For all available options, see the Options section.
You can use Banana checker standalone or as a Grunt plugin.
To use this plugin, add it as a development dependency to your project:
npm install grunt-banana-checker --save-dev
Ensure your project has a Gruntfile.js file (example file). Then, in Gruntfile.js, add the line:
grunt.loadNpmTasks( 'grunt-banana-checker' );
In Gruntfile.js, add a configuration key for banana
and set it to an empty object.
We will use this object to declare which directory contains the interface messages. For example, to enable grunt-banana-checker for a single directory only, configure it like so:
grunt.initConfig( { banana: { all: 'i18n/' } } );
You can also configure multiple directories, like so:
grunt.initConfig( { banana: { core: 'languages/i18n/', installer: 'includes/installer/i18n/' } } );
You can also use globbing patterns and/or arrays of directories, like so:
grunt.initConfig( { banana: { all: 'modules/ve-{mw,wmf}/i18n/' } } );
For a full list of supported ways of defining the target directory of a Grunt plugin, see Configuring tasks on gruntjs.com.
To customise the options for Banana checker, define your target directory as an object instead of a string, with src
and options
properties, like so:
grunt.initConfig( { banana: { all: { src: 'i18n/', options: { sourceFile: 'messages.json', documentationFile: 'documentation.json' } } } } );
For all available options, see the Options section.
The Banana checker also offers a command-line interface.
npm install grunt-banana-checker --save-dev
To use Banana checker as part of your test run, refer to the banana-checker
program from the scripts.test
property in your package.json
file.
{ "scripts": { "test": "banana-checker i18n/" } }
To set custom options, pass parameters as --key=value
pairs. For example:
npx banana-checker --requireKeyPrefix="x-" i18n/
0
, 1
, true
, or false
.--key=one,two
.For edge cases, you can set some path options:
Type: string
Default value: "en.json"
The JSON file providing the primary messages.
Type: string
Default value: "qqq.json"
The JSON file providing the documentation messages.
Type: boolean
Default value: true
Whether to fail if message files don't have a @metadata
meta-data key.
Type: boolean
Default value: true
Whether to fail if any message is in the primary file but not documented.
Type: boolean
Default value: true
Whether to fail if any message is in the primary file but documented as a blank string.
Type: boolean
or "initial"
Default value: true
Whether to fail if any message key is not lower case. If set to "initial"
, fail only if the first
character is not lower case.
Type: string
or string[]
Default value: []
Whether to fail if any message key is not prefixed by the given prefix, or if multiple, one of the given prefixes.
Type: boolean
Default value: true
Whether to fail if any documented message isn't in the primary file.
Type: boolean
Default value: true
Whether to fail if any message is translated as a blank string.
Type: boolean
Default value: false
Whether to fail if any message is translated as identical to the original string.
Type: boolean
Default value: false
Whether to fail if any translated message isn't in the primary file.
Type: boolean
Default value: false
Whether to fail if any translated message fails to use a parameter used in the primary message.
Type: string[]
Default value: []
Example value: [ 'fr', 'es' ]
Languages on which to fail if any message in the primary file is missing.
Type: string[]
Default value: []
Example value: [ 'first-message-key', 'third-message-key' ]
Messages on which to fail if missing in any provided language.
Type: boolean
Default value: true
Whether to ignore missing translations whose original string is blank.
Type: boolean
Default value: true
Whether to ignore leading whitespace in original or translated messages.
Type: boolean
Default value: false
Whether to ignore trailing whitespace in original or translated messages.
FAQs
Checker for the 'Banana' JSON-file format for interface messages, as used by MediaWiki and jQuery.i18n.
The npm package grunt-banana-checker receives a total of 16,291 weekly downloads. As such, grunt-banana-checker popularity was classified as popular.
We found that grunt-banana-checker demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 25 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.