Skip to content

Commit 42f3341

Browse files
authored
feat: string-compiler ESM support (adobe#9465)
1 parent 8d310eb commit 42f3341

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

packages/@internationalized/string-compiler/src/stringCompiler.d.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,16 @@
1010
* governing permissions and limitations under the License.
1111
*/
1212

13+
interface Options {
14+
/**
15+
* Output module format.
16+
* @default 'cjs'
17+
*/
18+
format?: 'cjs' | 'esm'
19+
}
20+
1321
/** Compiles an object containing ICU message strings to a JavaScript module. */
14-
export function compileStrings(messages: Record<string, string>): string;
22+
export function compileStrings(messages: Record<string, string>, options?: Options): string;
1523

1624
/** Compiles a single ICU message string to JavaScript source code. */
1725
export function compileString(message: string): string;

packages/@internationalized/string-compiler/src/stringCompiler.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
const {parse, TYPE} = require('@formatjs/icu-messageformat-parser');
1414

15-
function compileStrings(messages) {
16-
let res = 'module.exports = {';
15+
function compileStrings(messages, options) {
16+
let res = options?.format === 'esm' ? 'export default {' : 'module.exports = {';
1717
for (let key in messages) {
1818
res += ' ' + JSON.stringify(key) + ': ' + compileString(messages[key]) + ',\n';
1919
}

0 commit comments

Comments
 (0)