w3resource

Mastering Aggregated Exports in JavaScript Modules


Aggregating Exports:

Write a JavaScript program to aggregate exports from two different modules into one module and use them.

Solution-1:

JavaScript Code:

File: mathUtils.js

// mathUtils.js
// This file contains named exports for mathematical operations.
// Exporting functions from mathUtils.js
export const add = (a, b) => a + b; // Adds two numbers
export const subtract = (a, b) => a - b; // Subtracts two numbers

File: stringUtils.js

// stringUtils.js
// This file contains named exports for string operations.
// Exporting functions from stringUtils.js
export const toUpperCase = (str) => str.toUpperCase(); // Converts a string to uppercase
export const toLowerCase = (str) => str.toLowerCase(); // Converts a string to lowercase

File: index.js

// index.js
//This file aggregates exports from both modules.
// Aggregating exports from mathUtils and stringUtils
export * from './mathUtils.js'; // Aggregates all exports from mathUtils
export * from './stringUtils.js'; // Aggregates all exports from stringUtils

File: main.js

//main.js
// This file imports and uses the aggregated exports.
// Importing aggregated exports
import { add, subtract, toUpperCase, toLowerCase } from './index.js';
// Using the imported functions
console.log(add(5, 3)); // Logs 8
console.log(subtract(10, 4)); // Logs 6
console.log(toUpperCase('hello')); // Logs HELLO
console.log(toLowerCase('WORLD')); // Logs world

Output:

8
6
HELLO
world

Explanation:

  • mathUtils.js and stringUtils.js define named exports for different utilities.
  • index.js aggregates exports from both modules using export *.
  • main.js imports all functions directly from index.js and uses them.

Solution-2: Aggregating Exports Using Named Imports and Exports

JavaScript Code:

File: stringUtils.js

// stringUtils.js
//  This file contains named exports for string operations (same as above).
// Exporting functions from stringUtils.js
export const toUpperCase = (str) => str.toUpperCase(); // Converts a string to uppercase
export const toLowerCase = (str) => str.toLowerCase(); // Converts a string to lowercase

File: mathUtils.js

// mathUtils.js
// This file contains named exports for mathematical operations (same as above).
// Exporting functions from mathUtils.js
export const add = (a, b) => a + b; // Adds two numbers
export const subtract = (a, b) => a - b; // Subtracts two numbers

File: index.js

// index.js
// This file explicitly imports and exports the modules.
// Importing named exports from both modules
import { add, subtract } from './mathUtils.js';
import { toUpperCase, toLowerCase } from './stringUtils.js';
// Re-exporting them from index.js
export { add, subtract, toUpperCase, toLowerCase };

File: main.js

//main.js
// This file imports and uses the aggregated exports.
// Importing aggregated exports
import { add, subtract, toUpperCase, toLowerCase } from './index.js';

// Using the imported functions
console.log(add(7, 2)); // Logs 9
console.log(subtract(15, 5)); // Logs 10
console.log(toUpperCase('coding')); // Logs CODING
console.log(toLowerCase('EXERCISES')); // Logs exercise

Output:

9
10
CODING
exercises

Explanation:

  • mathUtils.js and stringUtils.js define named exports for different utilities.
  • index.js explicitly imports the exports from these modules and re-exports them.
  • main.js imports the aggregated exports from index.js and uses them.

Improve this sample solution and post your code through Disqus

Previous: Constants Export and Import in JavaScript Modules.
Next: Import JSON Data in JavaScript Modules.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.