Repository Analysis

formatjs/formatjs

The monorepo home to all of the FormatJS related libraries, most notably react-intl.

1.2 Likely human-written View on GitHub
1.2
Adjusted Score
1.2
Raw Score
100%
Time Factor
2026-05-30
Last Push
14,712
Stars
TypeScript
Language
173,870
Lines of Code
1173
Files
182
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 6LOW 176

Pattern Findings

182 matches across 7 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers84 hits · 86 pts
SeverityFileLineSnippet
LOWpackages/intl-datetimeformat/should-polyfill.ts37function hasUnthrownDateTimeStyleBug(): boolean {
LOWpackages/intl-datetimeformat/scripts/extract-dates.ts80function resolveDateTimeSymbolTable(token: string): string {
LOWpackages/intl-datetimeformat/scripts/extract-dates.ts137function extractTimezoneToMetazoneMap(): Record<string, string> {
LOW…ationformat/abstract/PartitionDurationFormatPattern.ts16export function PartitionDurationFormatPattern(
LOW…cu-messageformat-parser/date-time-pattern-generator.ts55function getDefaultHourSymbolFromLocale(locale: Intl.Locale): string {
LOWpackages/icu-messageformat-parser/manipulator.ts73function hoistPluralOrSelectElement(
LOWpackages/icu-messageformat-parser/manipulator.ts119function findPluralOrSelectElement(ast: MessageFormatElement[]): boolean {
LOW…s/ecma402-abstract/IsSanctionedSimpleUnitIdentifier.ts64export function IsSanctionedSimpleUnitIdentifier(
LOWpackages/ecma402-abstract/CanonicalizeTimeZoneName.ts31function ParseTimeZoneOffsetString(offsetString: string): string {
LOWpackages/ecma402-abstract/IsWellFormedUnitIdentifier.ts15export function IsWellFormedUnitIdentifier(unit: string): boolean {
LOWpackages/ecma402-abstract/DateTimeFormat/ToLocalTime.ts45function ParseTimeZoneOffsetString(offsetString: string): number {
LOW…-abstract/DateTimeFormat/FormatDateTimeRangeToParts.ts7export function FormatDateTimeRangeToParts(
LOW…stract/DateTimeFormat/PartitionDateTimeRangePattern.ts33export function PartitionDateTimeRangePattern(
LOW…cma402-abstract/DateTimeFormat/BestFitFormatMatcher.ts30export function bestFitFormatMatcherScore(
LOWpackages/ecma402-abstract/DateTimeFormat/skeleton.ts326export function splitFallbackRangePattern(
LOW…02-abstract/DateTimeFormat/InitializeDateTimeFormat.ts55function applyExplicitTimePatternOptions(pattern: string, opt: Opt) {
LOW…02-abstract/NumberFormat/SetNumberFormatUnitOptions.ts13export function SetNumberFormatUnitOptions(
LOW…402-abstract/NumberFormat/ApplyUnsignedRoundingMode.ts5export function ApplyUnsignedRoundingMode(
LOW…2-abstract/NumberFormat/SetNumberFormatDigitOptions.ts19export function SetNumberFormatDigitOptions(
LOW…2-abstract/NumberFormat/PartitionNumberRangePattern.ts15export function PartitionNumberRangePattern(
LOW…2-abstract/NumberFormat/ComputeExponentForMagnitude.ts13export function ComputeExponentForMagnitude(
LOW…402-abstract/NumberFormat/FormatNumericRangeToParts.ts11export function FormatNumericRangeToParts(
LOW…-abstract/DisplayNames/CanonicalCodeForDisplayNames.ts19function isUnicodeLocaleIdentifierType(code: string): boolean {
LOW…-abstract/DisplayNames/CanonicalCodeForDisplayNames.ts23export function CanonicalCodeForDisplayNames(
LOW…act/RelativeTimeFormat/PartitionRelativeTimePattern.ts14export function PartitionRelativeTimePattern(
LOW…act/RelativeTimeFormat/InitializeRelativeTimeFormat.ts17export function InitializeRelativeTimeFormat(
LOWpackages/intl/message.ts55function deepMergeFormatsAndSetTimeZone(
LOWpackages/cli-lib/extract.ts119function calculateLineColFromOffset(
LOWpackages/cli-lib/compile.ts121async function compileWithCustomFormatter(
LOWpackages/cli-lib/native.ts97export function compileMessagesWithNative(
LOWpackages/cli-lib/vue_extractor.ts65function templateSimpleExpressionNodeVisitor(parseScriptFn: ScriptParseFn) {
LOWpackages/utils/defaultCurrency.ts32export function countriesUsingDefaultCurrency(currencyCode?: string): string[] {
LOW…/integration-tests/extract/optionalChaining/actual.tsx5export function OptionalChainingComponent() {
LOWpackages/intl-numberformat/scripts/extract-numbers.ts156export function extractNumberingSystemNames() {
LOWpackages/intl-collator/scripts/generate-locale-data.ts40function collationPathsFromCopyConfig(dir: string): string[] {
LOWpackages/intl-collator/scripts/parse-uca.ts61function parseDottedWeightComponent(input: string): number {
LOWpackages/unplugin/transform.ts112 function unwrapTransparentTypeScriptExpression(node: any): any {
LOWpackages/intl-displaynames/index.ts246function isValidCodeForDisplayNames(
LOW…ages/intl-displaynames/scripts/extract-displaynames.ts96function extractDateTimeFieldStyleData(
LOW…ages/intl-displaynames/scripts/extract-displaynames.ts142function extractStandardLanguageStyleData(
LOWpackages/eslint-plugin-formatjs/util.ts47function isTemplateLiteralWithoutVar(node: Node): node is TemplateLiteral {
LOWpackages/eslint-plugin-formatjs/util.ts73function getStaticStringFromTemplateLiteral(
LOWpackages/eslint-plugin-formatjs/util.ts81function isStaticMessageExpression(
LOWpackages/eslint-plugin-formatjs/util.ts94function getStaticStringFromMessageExpression(
LOWpackages/eslint-plugin-formatjs/util.ts120function getStaticStringFromBinaryExpressionOperand(
LOWpackages/eslint-plugin-formatjs/util.ts139function staticallyEvaluateStringConcat(
LOWpackages/eslint-plugin-formatjs/util.ts185function isSingleMessageDescriptorDeclaration(
LOWpackages/eslint-plugin-formatjs/util.ts196function isMultipleMessageDescriptorDeclaration(node: Node) {
LOWpackages/eslint-plugin-formatjs/util.ts259function extractMessageDescriptorFromJSXElement(
LOWpackages/eslint-plugin-formatjs/util.ts350function extractMessageDescriptors(node?: Expression) {
LOWpackages/intl-locale/should-polyfill.ts4function hasIntlGetCanonicalLocalesBug(): boolean {
LOWpackages/intl-locale/preference-data.ts16export function getCalendarPreferenceDataForRegion(region?: string): string[] {
LOWpackages/intl-locale/preference-data.ts44export function getHourCyclesPreferenceDataForLocaleOrRegion(
LOWpackages/intl-locale/preference-data.ts60export function getTimeZonePreferenceForRegion(region: string): string[] {
LOWpackages/intl-locale/index.ts126function applyUnicodeExtensionToTag(
LOWpackages/intl-locale/index.ts320function createArrayFromListOrRestricted(
LOWpackages/intl-locale/index.ts423function characterDirectionOfLocale(loc: Locale): string {
LOWpackages/intl-locale/scripts/week-data.ts25function resolveWeekDaySymbolTable(token: string): number {
LOWpackages/intl-locale/scripts/hour-cycles.ts10function resolveDateTimeSymbolTable(token: string): string {
LOWpackages/babel-plugin-formatjs/utils.ts40function getMessageDescriptorValue(
24 more matches not shown…
Over-Commented Block76 hits · 76 pts
SeverityFileLineSnippet
LOWcrates/icu_skeleton_parser/number_parser.rs21
LOWcrates/icu_skeleton_parser/number_parser.rs41/// ```
LOWcrates/icu_skeleton_parser/number_parser.rs61///
LOWcrates/icu_skeleton_parser/number_parser.rs141/// # Returns
LOWcrates/icu_skeleton_parser/number_parser.rs201/// - `E0`, `E00`, etc. - scientific with minimum integer digits
LOWcrates/icu_skeleton_parser/number_parser.rs281///
LOWcrates/icu_skeleton_parser/number_skeleton_token.rs21 }
LOWcrates/icu_skeleton_parser/number_skeleton_token.rs41 /// ```
LOWcrates/icu_skeleton_parser/datetime_parser.rs21/// This should work fine for standard skeleton strings that don't contain quoted text.
LOWcrates/icu_skeleton_parser/datetime_parser.rs41///
LOWcrates/icu_skeleton_parser/datetime_parser.rs61/// - `w`, `W` - Week patterns
LOW…cu_messageformat_parser/date_time_pattern_generator.rs1use crate::time_data_generated::TIME_DATA;
LOWcrates/icu_messageformat_parser/error.rs81 /// Expecting a selector in `select` argument (e.g `{foo, select}`)
LOWcrates/icu_messageformat_parser/manipulator.rs1//! AST manipulation utilities for MessageFormat elements
LOWcrates/icu_messageformat_parser/manipulator.rs141fn is_plural_or_select_element(el: &MessageFormatElement) -> bool {
LOWcrates/icu_messageformat_parser/manipulator.rs241/// # Arguments
LOWcrates/icu_messageformat_parser/manipulator.rs261/// is more translator-friendly.
LOWcrates/icu_messageformat_parser/manipulator.rs401/// based on their position in the AST (left-to-right).
LOWcrates/icu_messageformat_parser/manipulator.rs421 hoist_selectors_impl(ast).unwrap_or_else(|e| panic!("{}", e))
LOWcrates/icu_messageformat_parser/manipulator.rs441) -> Result<Vec<MessageFormatElement>, ManipulatorError> {
LOWcrates/icu_messageformat_parser/manipulator.rs521/// The actual text content and order of elements doesn't matter - only that the
LOWcrates/icu_messageformat_parser/manipulator.rs541///
LOWcrates/icu_messageformat_parser/printer.rs1//! Printer module for converting AST back to ICU MessageFormat strings
LOWcrates/icu_messageformat_parser/printer.rs201///
LOWcrates/icu_messageformat_parser/printer.rs221/// A string like `{count, number, percent}`
LOWcrates/icu_messageformat_parser/printer.rs241/// A string like `{today, date, short}`
LOWcrates/icu_messageformat_parser/printer.rs261/// A string like `{now, time, ::jmm}`
LOWcrates/icu_messageformat_parser/printer.rs281///
LOWcrates/icu_messageformat_parser/printer.rs341///
LOWcrates/icu_messageformat_parser/printer.rs381 out.push_str(id);
LOWcrates/icu_messageformat_parser/printer.rs421///
LOWcrates/icu_messageformat_parser/parser.rs121 "plural" => Some(ArgType::Plural),
LOWcrates/icu_messageformat_parser/parser.rs301 panic!("{}", msg)
LOWcrates/icu_messageformat_parser/parser.rs321/// let parser = Parser::new("Hello {name}!", ParserOptions::default());
LOWcrates/icu_messageformat_parser/parser.rs361 /// Parses the message into an AST.
LOWcrates/icu_messageformat_parser/parser.rs401 self.position.offset
LOWcrates/icu_messageformat_parser/parser.rs801
LOWcrates/icu_messageformat_parser/parser.rs1041 /// - Arguments (`{name}`)
LOWcrates/formatjs_cli/src/compile_folder.rs1use anyhow::{Context, Result};
LOWcrates/formatjs_cli/src/compile_folder.rs21/// * `pseudo_locale` - Optional pseudo-locale generation
LOWcrates/formatjs_cli/src/id_generator.rs61 String::from_utf8(result).unwrap_or_default()
LOWcrates/formatjs_cli/src/verify.rs1use anyhow::{Context, Result};
LOWcrates/formatjs_cli/src/verify.rs21/// * `structural_equality` - Whether to check for structural equality of messages between source and targets
LOWcrates/formatjs_cli/src/verify.rs41/// * `1` - At least one check failed
LOWcrates/formatjs_cli/src/main.rs81 /// File glob patterns to extract from (e.g., src/**/*.tsx)
LOWcrates/formatjs_cli/src/main.rs141 /// Defaults to true for compatibility with fast-glob behavior (e.g., pnpm symlinked node_modules).
LOWcrates/formatjs_cli/src/main.rs181 /// Use --no-follow-links to disable.
LOWcrates/formatjs_cli/src/main.rs221 Verify {
LOWcrates/formatjs_cli/src/compile.rs61/// # Arguments
LOWcrates/formatjs_cli/src/compile.rs81/// ```no_run
LOWcrates/formatjs_cli/src/formatters/smartling.rs1use serde_json::{json, Value};
LOWcrates/formatjs_cli/src/formatters/lokalise.rs1use serde_json::{json, Value};
LOWcrates/formatjs_cli/src/formatters/transifex.rs1use serde_json::{json, Value};
LOWcrates/formatjs_cli/src/formatters/mod.rs21 /// Transifex formatter: extracts string field from structured format
LOWcrates/formatjs_cli/src/formatters/mod.rs81 Formatter::Smartling => smartling::compile(&vendor_json),
LOWcrates/formatjs_cli/src/formatters/simple.rs1use serde_json::{json, Value};
LOWcrates/formatjs_cli/src/formatters/crowdin.rs1use serde_json::{json, Value};
LOWcrates/formatjs_cli/src/formatters/default.rs1use serde_json::Value;
LOWpackages/intl-datetimeformat/scripts/extract-dates.ts361
LOW…geformat-parser/integration-tests/integration_tests.rs1//! Integration tests for ICU MessageFormat Parser
16 more matches not shown…
Decorative Section Separators6 hits · 18 pts
SeverityFileLineSnippet
MEDIUMpackages/unplugin/integration-tests/integration.test.ts22// ─── Vite ─────────────────────────────────────────────────────────────────────
MEDIUMpackages/unplugin/integration-tests/integration.test.ts67// ─── Rollup ───────────────────────────────────────────────────────────────────
MEDIUMpackages/unplugin/integration-tests/integration.test.ts83// ─── esbuild ──────────────────────────────────────────────────────────────────
MEDIUMpackages/unplugin/integration-tests/integration.test.ts99// ─── Webpack ──────────────────────────────────────────────────────────────────
MEDIUMpackages/unplugin/integration-tests/integration.test.ts130// ─── Rspack ───────────────────────────────────────────────────────────────────
MEDIUMpackages/unplugin/integration-tests/integration.test.ts161// ─── Test suites ──────────────────────────────────────────────────────────────
Verbosity Indicators10 hits · 17 pts
SeverityFileLineSnippet
LOWcrates/formatjs_cli/src/extract.rs84 // Step 1: Resolve file list from glob patterns or in_file
LOWcrates/formatjs_cli/src/extract.rs91 // Step 2: Extract messages from all files
LOWcrates/formatjs_cli/src/extract.rs163 // Step 3: Apply formatter if specified
LOWcrates/formatjs_cli/src/compile.rs152 // Step 1: Expand glob patterns to actual file paths
LOWcrates/formatjs_cli/src/compile.rs185 // Step 2: Load and aggregate all messages from files
LOWcrates/formatjs_cli/src/compile.rs361 // Step 4: Serialize and write output
LOWbenchmarks/cli-comparison/run-benchmark.sh17# Step 1: Build both CLIs
LOWbenchmarks/cli-comparison/run-benchmark.sh25# Step 2: Generate test files
LOWbenchmarks/cli-comparison/run-benchmark.sh35# Step 3: Run benchmark
LOWpackages/intl-getcanonicallocales/index.ts56 // Step 7: Iterate through elements
Redundant / Tautological Comments2 hits · 4 pts
SeverityFileLineSnippet
LOWbenchmarks/cli-comparison/run-benchmark.sh9# Check if we're in the right directory
LOWscripts/generate_generated_packages.sh14 # Check if this npm_package has @formatjs_generated in its package attr
Fake / Example Data3 hits · 3 pts
SeverityFileLineSnippet
LOWpackages/intl-segmenter/scripts/benchmark.ts11Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec orci magna, tristique quis sollicitudin ut, luctus eu lac
LOWpackages/intl-segmenter/scripts/benchmark.ts11Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec orci magna, tristique quis sollicitudin ut, luctus eu lac
LOW…es/react-intl/tests/unit/react-19-key-warning.test.tsx59 expect(container).toHaveTextContent('Lorem ipsum')
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippet
LOWpackages/intl-localematcher/abstract/utils.ts56function processData(): LanguageInfo {