MCPcopy Index your code
hub / github.com/formatjs/formatjs / generateFileContent

Function generateFileContent

benchmarks/cli-comparison/generate-test-files.mjs:89–195  ·  view source on GitHub ↗
(fileIndex)

Source from the content-addressed store, hash-verified

87}
88
89function generateFileContent(fileIndex) {
90 const numMessages = Math.floor(Math.random() * 10) + 5 // 5-15 messages per file
91
92 const messages = []
93 for (let i = 0; i < numMessages; i++) {
94 const messageId = `msg_${fileIndex}_${i}`
95 const defaultMessage = selectRandomMessage()
96 messages.push({
97 id: messageId,
98 defaultMessage,
99 description: `Message ${i} in file ${fileIndex}`,
100 })
101 }
102
103 // Mix different patterns: defineMessages, defineMessage, formatMessage, FormattedMessage
104 const formatType = fileIndex % 4
105
106 if (formatType === 0) {
107 // defineMessages pattern (group of messages)
108 const imports = `import {defineMessages} from 'react-intl'\n\n`
109 const messagesObj = messages
110 .map(
111 msg => ` ${msg.id}: {
112 id: '${msg.id}',
113 defaultMessage: '${msg.defaultMessage.replace(/'/g, "\\'")}',
114 description: '${msg.description}',
115 }`
116 )
117 .join(',\n')
118
119 const component = `
120const messages = defineMessages({
121${messagesObj}
122})
123
124export function Component${fileIndex}() {
125 return <div>{/* Component content */}</div>
126}
127`
128 return imports + component
129 } else if (formatType === 1) {
130 // defineMessage pattern (individual messages)
131 const imports = `import {defineMessage} from 'react-intl'\n\n`
132 const messageDefs = messages
133 .map(
134 msg => `const ${msg.id} = defineMessage({
135 id: '${msg.id}',
136 defaultMessage: '${msg.defaultMessage.replace(/'/g, "\\'")}',
137 description: '${msg.description}',
138})`
139 )
140 .join('\n\n')
141
142 const component = `
143export function Component${fileIndex}() {
144 return <div>{/* Component content */}</div>
145}
146`

Callers 1

generateFilesFunction · 0.85

Calls 2

selectRandomMessageFunction · 0.85
floorMethod · 0.80

Tested by

no test coverage detected