profile
viewpoint
Nick Messing nickmessing Chisinau, Moldova Yet another JavaScript developer with @vuejs in heart. Member of Vue.js core team.

nickmessing/babel-plugin-jsx-v-model 146

JSX Syntactic Sugar Plugin for v-model

vueact/babel-plugin-transform-react-to-vue 138

Transform React component to Vue component (beta)

nickmessing/babel-plugin-jsx-vue-functional 64

JSX Syntactic Sugar Plugin for Vue Functional Components

nickmessing/babel-plugin-jsx-event-modifiers 45

Event modifiers syntactic sugar for JSX

nickmessing/vue-tsx 24

Vue + TSX = <3

nickmessing/angular-context-menu 1

An AngularJS directive to set up and display a context menu when a (right-)click event is triggered.

nickmessing/babel-preset-vue 1

Babel preset for transforming Vue JSX.

nickmessing/fs-multi-copy 1

Node.JS copy multiple files

nickmessing/awesome-vue 0

A curated list of awesome things related to Vue.js

delete branch nickmessing/vuetify-module

delete branch : patch-1

delete time in 3 days

push eventnickmessing/vue-3-tsx-poc

Nick Messing

commit sha 56b9cb6e05fec63c8b4dca990f116ab0a6533f08

fix: add dep & fix build

view details

push time in 4 days

create barnchnickmessing/vue-3-tsx-poc

branch : master

created branch time in 4 days

created repositorynickmessing/vue-3-tsx-poc

created time in 4 days

push eventnickmessing/vuetify-module

Nick Messing

commit sha aa5cde91fed5fc8ae4809d53b5b7ff797ed1d470

fix: tests

view details

push time in 25 days

PR opened nuxt-community/vuetify-module

Fix VuetifyLoaderOptions

According to vuetify docs match function optionally returns a tuple rather than an array of tuples.

+1 -1

0 comment

1 changed file

pr created time in 25 days

push eventnickmessing/vuetify-module

Nick Messing

commit sha 4972a99d05bc7b173ff2a2858f4ff236e5495880

Fix VuetifyLoaderOptions According to [vuetify docs](https://vuetifyjs.com/en/customization/a-la-carte#vuetify-loader) match function optionally returns a tuple rather than an array of tuples.

view details

push time in 25 days

create barnchvuejs/jsx

branch : ts-next

created branch time in a month

push eventvuejs/jsx

Nandiin

commit sha b49fa8adb91c79df76d4a1a6e1150f01b1db48a2

feat: allow prior babel plugins to traverse JSX tree throughly, close #86

view details

Nandiin

commit sha 566cf2a207cdff91885c85698a0bce14303199af

chore: add new line at end of file

view details

Nandiin

commit sha 094358049a3844e56271b9584bdb2d55f51b16e5

feat: change all sugar plugins to work without pre-traversing the Program

view details

Nick Messing

commit sha 75825da09b136f8abcf6a9d973bd93e7db7ced66

Merge pull request #87 from Nandiin/dev feat: allow prior babel plugins to traverse JSX tree thoroughly

view details

push time in 2 months

PR merged vuejs/jsx

feat: allow prior babel plugins to traverse JSX tree thoroughly

close #86

+105 -89

4 comments

6 changed files

Nandiin

pr closed time in 2 months

issue closedvuejs/jsx

Replace JSXElement node on 'exit' instead of 'enter'.

Current behavior of this plugin is replacing the entire JSXElement node, along with its children, on enter phase, which hinders other plugins from visiting decendants of that JSXElement recursively.

Usecase:

Suppose that a plugin foo is to collect thrid party component references in every file and then emit a file that imports and globally registeres all used components (common practice when the third party library provides tons of components but only a few of them is of interest).

Problem:

With this (referring to @vue/babel-plugin-transform-vue-jsx) plugin applied, foo can only visit the root JSXElement and all of its children would not be visited because they would have been replaced with normal h call by this plugin. Indeed, author of foo can traverse the children of root JSXElement by himself/herself but that would be duplicating the visitor pattern provided by babel.

Solution:

Changing this plugin's visitor to replace the original jsx node on exit phase would make other plugins (which are, by assumption, applied prior to this plugin) have a chance to recursively visit all the jsx nodes, without affecting the original behavior of this plugin.

Reference:

Both babel-plugin-jsx and babel-plugin-transform-react-jsx(which inherits the former) are applying the actual transformation on exit phase.

closed time in 2 months

Nandiin

pull request commentvuejs/jsx

feat: allow prior babel plugins to traverse JSX tree thoroughly

@Nandiin, nice PR, good idea, but with this PR it makes sense to change all sugar plugins to work without pre-traversing the Program, do you want to include that?

Nandiin

comment created time in 3 months

issue commentvuejs/jsx

Replace JSXElement node on 'exit' instead of 'enter'.

Good point, Vue had a lot of updates that are currently not supported entirely by JSX, I'm working on a changelist to update JSX and will include this too.

Nandiin

comment created time in 3 months

more