Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Example 1.

Code Block
languagejavascriptjs
titleModule 1 - increment.js
linenumberstrue
function increment() {
  // x and y must be declared in the parent scope where pjs.import() is used
  x += 1;
  y += 2;
}
exports.increment = increment;


Code Block
languagejavascriptjs
titleModule 2 - decrement.js
linenumberstrue
function decrement() {
  // x and y must be declared in the parent scope where pjs.import() is used
  x -= 1;
  y -= 2;
}
exports.decrement = decrement;


Code Block
languagejavascriptjs
titleImporting one module
linenumberstrue
function main() {
  pjs.define("x", { type: "integer" });
  pjs.define("y", { type: "integer" });
  
  x = 1;
  y = 2;
  
  pjs.import("./main/increment.js");
  
  increment();
  
  console.log(x, y);  // outputs 2  4
}
exports.run = main;


Code Block
languagejavascriptjs
titleImporting one module and providing an import list
linenumberstrue
function main() {
  pjs.define("x", { type: "integer" });
  pjs.define("y", { type: "integer" });
  
  x = 1;
  y = 2;
  
  pjs.import("./main/increment.js", ["increment"]);
  
  increment();
  
  console.log(x, y);  // outputs 2  4
}
exports.run = main;


Code Block
languagejavascriptjs
titleImporting all modules in a directory
linenumberstrue
function main() {
  pjs.define("x", { type: "integer" });
  pjs.define("y", { type: "integer" });
  
  x = 1;
  y = 2;
  
  pjs.import("./main/*.js");
  
  increment();
  decrement();
  decrement();
 
  console.log(x, y);  // outputs 0  0
}
exports.run = main;

...