Skip to content

ULL-ESIT-PL/babel-default-vector-npm-test

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is this?

Caution

This is a work in progress. The syntax and the semantic of the proposed extension to JavaScript are not yet fully defined. The packages are published in the GitHub registry, but they are not yet ready for production. The current version is not working.

This is a repo illustrating how to use Adrian Mora's set of packages published in the GitHub registry inside the ull-esit-pl organization. These packages extend the JavaScript language with a new kind of functions. The packages are:

The proposed Syntax and Semantic

These packages extend JS with a new syntax for arrays. And in the future the syntax will be extended for Objects. Here is an example of such syntax:

let a = [1, 2, 3, else x => x * x];

console.log(a[2]);  // 3
console.log(a[5]);  // 25 (since 5 * 5 = 25)

Install

Here are the node and npm versions I have used to test the packages:

➜  babel-npm-test node --version
v20.5.0
➜  babel-npm-test npm --version
9.8.0

These packages use the GitHub registry instead of the npm registry. Therefore, remember to set the registry entry in your .npmrc file:

➜  babel-default-vector-npm-test git:(main) ✗ cat ~/.npmrc | grep '@ull-esit-pl:'
@ull-esit-pl:registry=https://npm.pkg.github.com

or set an entry registry in your package.json file:

➜  babel-default-vector-npm-test git:(main) ✗ jq '.registry' package.json 
"https://npm.pkg.github.com"

Then you can proceed to install the packages:

npm i -D @babel/cli@7.10 @ull-esit-pl/babel-plugin-default-vector-plugin @ull-esit-pl/babel-plugin-default-vector-support @ull-esit-pl/parser-default-vector 

Your package.json devDependencies section will look similar to this:

➜ babel-default-vector-npm-test git:(main) ✗ jq '.devDependencies' package.json

{
  "@babel/cli": "^7.10.1",
  "@ull-esit-pl/babel-plugin-default-vector": "latest",
  "@ull-esit-pl/parser-default-vector": "latest"
}

Compiling the code

To compile the example above add a babel.config.js to your workspace folder:

➜ babel-npm-test git:(main) cat babel.config.js

module.exports = {
  "plugins": [
    "@ull-esit-pl/babel-plugin-default-vector-plugin"
  ],
}

and then compile it using the installed packages:

  babel-npm-test npx babel  example.js

This will output the compiled code to the console:

const {
  assign,
  functionObject
} = require("@ull-esit-pl/babel-plugin-default-vector-support");
const foo = functionObject(function (bar) {
  return bar * 2;
});
assign(foo, [10], 5);
console.log(foo(10));
console.log(foo(5));

If you want to save it to a file, use the -o option.

Running

You can pipe the output to node:

➜  babel-npm-test npx babel  example.js | node  -
5
10

or alternatively, use the -o option to save the output to a file and then run it:

➜  babel-default-vector-npm-test git:(main) npx babel  example.js -o example.cjs
➜  babel-default-vector-npm-test git:(main) ✗ node example.cjs 
5
10

References

TODO

  • README.md is the one babel has. It has to change to be specific about the extension for the three packages,
  • Add -D to all install instructions and remove the version number: npm install @ull-esit-pl/babel-plugin-default-vector-plugin -D
  • Do we need two separated packages for the plugin and the support? Can we have a single package?

License

MIT

About

Testing Adrian's @ull-esit-pl/parser-default-vector set of packages in GitHub registry

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%