Most of the time javascript files in node.js project have .js extension.
In Node.js, a file is treated as a "module". JavaScript code in one module 
(file) can't be seen from another module (file), unless one module explicitly 
exports functionality and the other module explicitly imports that functionality.
There are two common systems for imports and exports in Node: Common.js Modules 
and ES Modules.
By default, Node.js will expect Common.js-style modules for files that have a .js or .cjs extension.
To use ES modules  .mjs file extension required.
If you want to use file with .js extension in ES module then 
set "type" to "module" in the package.json.
Here is index.mjs but "type"  is absent in package.json
 import "core-js";
const inventory = [
    { name: "asparagus", type: "vegetables", quantity: 5 },
    { name: "bananas", type: "fruit", quantity: 0 },
    { name: "goat", type: "meat", quantity: 23 },
    { name: "cherries", type: "fruit", quantity: 5 },
    { name: "fish", type: "meat", quantity: 22 },
  ];
const result = inventory.group(item=>{
  return item.type
})
console.log(result)
const result2 = inventory.groupByToMap(item=>{
  return item.type == "meat"?"Non-Veg":"Veg"
})
console.log(result2)
when we ran it as 
node index.mjs
we get following output
[Object: null prototype] {
    vegetables: [ { name: 'asparagus', type: 'vegetables', quantity: 5 } ],
    fruit: [
      { name: 'bananas', type: 'fruit', quantity: 0 },
      { name: 'cherries', type: 'fruit', quantity: 5 }
    ],
    meat: [
      { name: 'goat', type: 'meat', quantity: 23 },
      { name: 'fish', type: 'meat', quantity: 22 }
    ]
  }
  Map(2) {
    'Veg' => [
      { name: 'asparagus', type: 'vegetables', quantity: 5 },
      { name: 'bananas', type: 'fruit', quantity: 0 },
      { name: 'cherries', type: 'fruit', quantity: 5 }
    ],
    'Non-Veg' => [
      { name: 'goat', type: 'meat', quantity: 23 },
      { name: 'fish', type: 'meat', quantity: 22 }
    ]
  }
Other way is rename index.mjs as index.js but set "type" as module in package.json
Now we can run it as 
node index.js
output of this file will be same as previous one.
No comments:
Post a Comment