summaryrefslogtreecommitdiff
path: root/snippets/javascript
diff options
context:
space:
mode:
authorVito G. Graffagnino <vito@graffagnino.xyz>2022-08-28 12:24:01 +0100
committerVito G. Graffagnino <vito@graffagnino.xyz>2022-08-28 12:24:01 +0100
commit823302458ec6c53455a3f34674415c43ce6a3187 (patch)
tree92168b44b01f5b2236b7cdf331e227c4790431ee /snippets/javascript
parent9ea6111717518625cbd28a020493ec06610ff01e (diff)
Added snippets directory
Diffstat (limited to 'snippets/javascript')
-rw-r--r--snippets/javascript/javascript-jquery.snippets589
-rw-r--r--snippets/javascript/javascript-react.snippets190
-rw-r--r--snippets/javascript/javascript-redux.snippets37
-rw-r--r--snippets/javascript/javascript-requirejs.snippets14
-rw-r--r--snippets/javascript/javascript.node.snippets51
-rw-r--r--snippets/javascript/javascript.snippets359
6 files changed, 1240 insertions, 0 deletions
diff --git a/snippets/javascript/javascript-jquery.snippets b/snippets/javascript/javascript-jquery.snippets
new file mode 100644
index 0000000..ef6f66c
--- /dev/null
+++ b/snippets/javascript/javascript-jquery.snippets
@@ -0,0 +1,589 @@
+snippet add
+ ${1:obj}.add('${2:selector expression}')
+snippet addClass
+ ${1:obj}.addClass('${2:class name}')
+snippet after
+ ${1:obj}.after('${2:Some text <b>and bold!</b>}')
+snippet ajax
+ $.ajax({
+ url: '${1:mydomain.com/url}',
+ type: '${2:POST}',
+ dataType: '${3:xml/html/script/json}',
+ data: $.param( $('${4:Element or Expression}') ),
+ complete: function (jqXHR, textStatus) {
+ ${5:// callback}
+ },
+ success: function (data, textStatus, jqXHR) {
+ ${6:// success callback}
+ },
+ error: function (jqXHR, textStatus, errorThrown) {
+ ${0:// error callback}
+ }
+ });
+snippet ajaxcomplete
+ ${1:obj}.ajaxComplete(function (${1:e}, xhr, settings) {
+ ${0:// callback}
+ });
+snippet ajaxerror
+ ${1:obj}.ajaxError(function (${1:e}, xhr, settings, thrownError) {
+ ${2:// error callback}
+ });
+ ${0}
+snippet ajaxget
+ $.get('${1:mydomain.com/url}',
+ ${2:{ param1: value1 },}
+ function (data, textStatus, jqXHR) {
+ ${0:// success callback}
+ }
+ );
+snippet ajaxpost
+ $.post('${1:mydomain.com/url}',
+ ${2:{ param1: value1 },}
+ function (data, textStatus, jqXHR) {
+ ${0:// success callback}
+ }
+ );
+snippet ajaxprefilter
+ $.ajaxPrefilter(function (${1:options}, ${2:originalOptions}, jqXHR) {
+ ${0: // Modify options, control originalOptions, store jqXHR, etc}
+ });
+snippet ajaxsend
+ ${1:obj}.ajaxSend(function (${1:request, settings}) {
+ ${2:// error callback}
+ });
+ ${0}
+snippet ajaxsetup
+ $.ajaxSetup({
+ url: "${1:mydomain.com/url}",
+ type: "${2:POST}",
+ dataType: "${3:xml/html/script/json}",
+ data: $.param( $("${4:Element or Expression}") ),
+ complete: function (jqXHR, textStatus) {
+ ${5:// callback}
+ },
+ success: function (data, textStatus, jqXHR) {
+ ${6:// success callback}
+ },
+ error: function (jqXHR, textStatus, errorThrown) {
+ ${0:// error callback}
+ }
+ });
+snippet ajaxstart
+ $.ajaxStart(function () {
+ ${1:// handler for when an AJAX call is started and no other AJAX calls are in progress};
+ });
+ ${0}
+snippet ajaxstop
+ $.ajaxStop(function () {
+ ${1:// handler for when all AJAX calls have been completed};
+ });
+ ${0}
+snippet ajaxsuccess
+ $.ajaxSuccess(function (${1:e}, xhr, settings) {
+ ${2:// handler for when any AJAX call is successfully completed};
+ });
+ ${0}
+snippet andself
+ ${1:obj}.andSelf()
+snippet animate
+ ${1:obj}.animate({${2:param1: value1, param2: value2}}, ${3:speed})
+snippet append
+ ${1:obj}.append('${2:Some text <b>and bold!</b>}')
+snippet appendTo
+ ${1:obj}.appendTo('${2:selector expression}')
+snippet attr
+ ${1:obj}.attr('${2:attribute}', '${3:value}')
+snippet attrm
+ ${1:obj}.attr({'${2:attr1}': '${3:value1}', '${4:attr2}': '${5:value2}'})
+snippet before
+ ${1:obj}.before('${2:Some text <b>and bold!</b>}')
+snippet bind
+ ${1:obj}.bind('${2:event name}', function (${3:e}) {
+ ${0:// event handler}
+ });
+snippet blur
+ ${1:obj}.blur(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet C
+ $.Callbacks()
+snippet Cadd
+ ${1:callbacks}.add(${2:callbacks})
+snippet Cdis
+ ${1:callbacks}.disable()
+snippet Cempty
+ ${1:callbacks}.empty()
+snippet Cfire
+ ${1:callbacks}.fire(${2:args})
+snippet Cfired
+ ${1:callbacks}.fired()
+snippet Cfirew
+ ${1:callbacks}.fireWith(${2:this}, ${3:args})
+snippet Chas
+ ${1:callbacks}.has(${2:callback})
+snippet Clock
+ ${1:callbacks}.lock()
+snippet Clocked
+ ${1:callbacks}.locked()
+snippet Crem
+ ${1:callbacks}.remove(${2:callbacks})
+snippet change
+ ${1:obj}.change(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet children
+ ${1:obj}.children('${2:selector expression}')
+snippet clearq
+ ${1:obj}.clearQueue(${2:'queue name'})
+snippet click
+ ${1:obj}.click(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet clone
+ ${1:obj}.clone()
+snippet contains
+ $.contains(${1:container}, ${0:contents});
+snippet css
+ ${1:obj}.css('${2:attribute}', '${3:value}')
+snippet csshooks
+ $.cssHooks['${1:CSS prop}'] = {
+ get: function (elem, computed, extra) {
+ ${2: // handle getting the CSS property}
+ },
+ set: function (elem, value) {
+ ${0: // handle setting the CSS value}
+ }
+ };
+snippet cssm
+ ${1:obj}.css({${2:attribute1}: '${3:value1}', ${4:attribute2}: '${5:value2}'})
+snippet D
+ $.Deferred()
+snippet Dalways
+ ${1:deferred}.always(${2:callbacks})
+snippet Ddone
+ ${1:deferred}.done(${2:callbacks})
+snippet Dfail
+ ${1:deferred}.fail(${2:callbacks})
+snippet Disrej
+ ${1:deferred}.isRejected()
+snippet Disres
+ ${1:deferred}.isResolved()
+snippet Dnotify
+ ${1:deferred}.notify(${2:args})
+snippet Dnotifyw
+ ${1:deferred}.notifyWith(${2:this}, ${3:args})
+snippet Dpipe
+ ${1:deferred}.then(${2:doneFilter}, ${3:failFilter}, ${4:progressFilter})
+snippet Dprog
+ ${1:deferred}.progress(${2:callbacks})
+snippet Dprom
+ ${1:deferred}.promise(${2:target})
+snippet Drej
+ ${1:deferred}.reject(${2:args})
+snippet Drejw
+ ${1:deferred}.rejectWith(${2:this}, ${3:args})
+snippet Dres
+ ${1:deferred}.resolve(${2:args})
+snippet Dresw
+ ${1:deferred}.resolveWith(${2:this}, ${3:args})
+snippet Dstate
+ ${1:deferred}.state()
+snippet Dthen
+ ${1:deferred}.then(${2:doneCallbacks}, ${3:failCallbacks}, ${4:progressCallbacks})
+snippet Dwhen
+ $.when(${1:deferreds})
+snippet data
+ ${1:obj}.data(${2:obj})
+snippet dataa
+ $.data('${1:selector expression}', '${2:key}'${3:, 'value'})
+snippet dblclick
+ ${1:obj}.dblclick(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet delay
+ ${1:obj}.delay('${2:slow/400/fast}'${3:, 'queue name'})
+snippet dele
+ ${1:obj}.delegate('${2:selector expression}', '${3:event name}', function (${4:e}) {
+ ${0:// event handler}
+ });
+snippet deq
+ ${1:obj}.dequeue(${2:'queue name'})
+snippet deqq
+ $.dequeue('${1:selector expression}'${2:, 'queue name'})
+snippet detach
+ ${1:obj}.detach('${2:selector expression}')
+snippet die
+ ${1:obj}.die(${2:event}, ${3:handler})
+snippet each
+ ${1:obj}.each(function (index) {
+ ${0:this.innerHTML = this + " is the element, " + index + " is the position";}
+ });
+snippet el
+ $('<${1}/>'${2:, {}})
+snippet eltrim
+ $.trim('${1:string}')
+snippet empty
+ ${1:obj}.empty()
+snippet end
+ ${1:obj}.end()
+snippet eq
+ ${1:obj}.eq(${2:element index})
+snippet error
+ ${1:obj}.error(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet eventsmap
+ {
+ :f${0}
+ }
+snippet extend
+ $.extend(${1:true, }${2:target}, ${3:obj})
+snippet fadein
+ ${1:obj}.fadeIn('${2:slow/400/fast}')
+snippet fadeinc
+ ${1:obj}.fadeIn('slow/400/fast', function () {
+ ${0:// callback};
+ });
+snippet fadeout
+ ${1:obj}.fadeOut('${2:slow/400/fast}')
+snippet fadeoutc
+ ${1:obj}.fadeOut('slow/400/fast', function () {
+ ${0:// callback};
+ });
+snippet fadeto
+ ${1:obj}.fadeTo('${2:slow/400/fast}', ${3:0.5})
+snippet fadetoc
+ ${1:obj}.fadeTo('slow/400/fast', ${2:0.5}, function () {
+ ${0:// callback};
+ });
+snippet filter
+ ${1:obj}.filter('${2:selector expression}')
+snippet filtert
+ ${1:obj}.filter(function (${2:index}) {
+ ${3}
+ })
+snippet find
+ ${1:obj}.find('${2:selector expression}')
+snippet focus
+ ${1:obj}.focus(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet focusin
+ ${1:obj}.focusIn(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet focusout
+ ${1:obj}.focusOut(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet get
+ ${1:obj}.get(${2:element index})
+snippet getjson
+ $.getJSON('${1:mydomain.com/url}',
+ ${2:{ param1: value1 },}
+ function (data, textStatus, jqXHR) {
+ ${0:// success callback}
+ }
+ );
+snippet getscript
+ $.getScript('${1:mydomain.com/url}', function (script, textStatus, jqXHR) {
+ ${0:// callback}
+ });
+snippet grep
+ $.grep(${1:array}, function (item, index) {
+ ${2}
+ }${0:, true});
+snippet hasc
+ ${1:obj}.hasClass('${2:className}')
+snippet hasd
+ $.hasData('${0:selector expression}');
+snippet height
+ ${1:obj}.height(${2:integer})
+snippet hide
+ ${1:obj}.hide('${2:slow/400/fast}')
+snippet hidec
+ ${1:obj}.hide('${2:slow/400/fast}', function () {
+ ${0:// callback}
+ });
+snippet hover
+ ${1:obj}.hover(function (${2:e}) {
+ ${3:// event handler}
+ }, function ($2) {
+ ${4:// event handler}
+ });
+snippet html
+ ${1:obj}.html('${2:Some text <b>and bold!</b>}')
+snippet inarr
+ $.inArray(${1:value}, ${0:array});
+snippet insa
+ ${1:obj}.insertAfter('${2:selector expression}')
+snippet insb
+ ${1:obj}.insertBefore('${2:selector expression}')
+snippet is
+ ${1:obj}.is('${2:selector expression}')
+snippet isarr
+ $.isArray(${1:obj})
+snippet isempty
+ $.isEmptyObject(${1:obj})
+snippet isfunc
+ $.isFunction(${1:obj})
+snippet isnum
+ $.isNumeric(${1:value})
+snippet isobj
+ $.isPlainObject(${1:obj})
+snippet iswin
+ $.isWindow(${1:obj})
+snippet isxml
+ $.isXMLDoc(${1:node})
+snippet jj
+ $('${1:selector}')
+snippet kdown
+ ${1:obj}.keydown(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet kpress
+ ${1:obj}.keypress(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet kup
+ ${1:obj}.keyup(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet last
+ ${1:obj}.last('${1:selector expression}')
+snippet live
+ ${1:obj}.live('${2:events}', function (${3:e}) {
+ ${0:// event handler}
+ });
+snippet load
+ ${1:obj}.load(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet loadf
+ ${1:obj}.load('${2:mydomain.com/url}',
+ ${2:{ param1: value1 },}
+ function (responseText, textStatus, xhr) {
+ ${0:// success callback}
+ }
+ });
+snippet makearray
+ $.makeArray(${0:obj});
+snippet map
+ ${1:obj}.map(function (${2:index}, ${3:element}) {
+ ${0:// callback}
+ });
+snippet mapp
+ $.map(${1:arrayOrObject}, function (${2:value}, ${3:indexOrKey}) {
+ ${0:// callback}
+ });
+snippet merge
+ $.merge(${1:target}, ${0:original});
+snippet mdown
+ ${1:obj}.mousedown(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet menter
+ ${1:obj}.mouseenter(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet mleave
+ ${1:obj}.mouseleave(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet mmove
+ ${1:obj}.mousemove(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet mout
+ ${1:obj}.mouseout(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet mover
+ ${1:obj}.mouseover(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet mup
+ ${1:obj}.mouseup(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet next
+ ${1:obj}.next('${2:selector expression}')
+snippet nexta
+ ${1:obj}.nextAll('${2:selector expression}')
+snippet nextu
+ ${1:obj}.nextUntil('${2:selector expression}'${3:, 'filter expression'})
+snippet not
+ ${1:obj}.not('${2:selector expression}')
+snippet off
+ ${1:obj}.off('${2:events}', '${3:selector expression}'${4:, handler})
+snippet offset
+ ${1:obj}.offset()
+snippet offsetp
+ ${1:obj}.offsetParent()
+snippet on
+ ${1:obj}.on('${2:events}', '${3:selector expression}', function (${4:e}) {
+ ${0:// event handler}
+ });
+snippet one
+ ${1:obj}.one('${2:event name}', function (${3:e}) {
+ ${0:// event handler}
+ });
+snippet outerh
+ ${1:obj}.outerHeight()
+snippet outerw
+ ${1:obj}.outerWidth()
+snippet param
+ $.param(${1:obj})
+snippet parent
+ ${1:obj}.parent('${2:selector expression}')
+snippet parents
+ ${1:obj}.parents('${2:selector expression}')
+snippet parentsu
+ ${1:obj}.parentsUntil('${2:selector expression}'${3:, 'filter expression'})
+snippet parsejson
+ $.parseJSON(${1:data})
+snippet parsexml
+ $.parseXML(${1:data})
+snippet pos
+ ${1:obj}.position()
+snippet prepend
+ ${1:obj}.prepend('${2:Some text <b>and bold!</b>}')
+snippet prependto
+ ${1:obj}.prependTo('${2:selector expression}')
+snippet prev
+ ${1:obj}.prev('${2:selector expression}')
+snippet preva
+ ${1:obj}.prevAll('${2:selector expression}')
+snippet prevu
+ ${1:obj}.prevUntil('${2:selector expression}'${3:, 'filter expression'})
+snippet promise
+ ${1:obj}.promise(${2:'fx'}, ${3:target})
+snippet prop
+ ${1:obj}.prop('${2:property name}')
+snippet proxy
+ $.proxy(${1:function}, ${2:this})
+snippet pushstack
+ ${1:obj}.pushStack(${2:elements})
+snippet queue
+ ${1:obj}.queue(${2:name}${3:, newQueue})
+snippet queuee
+ $.queue(${1:element}${2:, name}${3:, newQueue})
+snippet ready
+ $(function () {
+ ${0}
+ });
+snippet rem
+ ${1:obj}.remove()
+snippet rema
+ ${1:obj}.removeAttr('${2:attribute name}')
+snippet remc
+ ${1:obj}.removeClass('${2:class name}')
+snippet remd
+ ${1:obj}.removeData('${2:key name}')
+snippet remdd
+ $.removeData(${1:element}${2:, 'key name}')
+snippet remp
+ ${1:obj}.removeProp('${2:property name}')
+snippet repa
+ ${1:obj}.replaceAll(${2:target})
+snippet repw
+ ${1:obj}.replaceWith(${2:content})
+snippet reset
+ ${1:obj}.reset(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet resize
+ ${1:obj}.resize(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet scroll
+ ${1:obj}.scroll(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet scrolll
+ ${1:obj}.scrollLeft(${2:value})
+snippet scrollt
+ ${1:obj}.scrollTop(${2:value})
+snippet sdown
+ ${1:obj}.slideDown('${2:slow/400/fast}')
+snippet sdownc
+ ${1:obj}.slideDown('${2:slow/400/fast}', function () {
+ ${0:// callback};
+ });
+snippet select
+ ${1:obj}.select(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet serialize
+ ${1:obj}.serialize()
+snippet serializea
+ ${1:obj}.serializeArray()
+snippet show
+ ${1:obj}.show('${2:slow/400/fast}')
+snippet showc
+ ${1:obj}.show('${2:slow/400/fast}', function () {
+ ${0:// callback}
+ });
+snippet sib
+ ${1:obj}.siblings('${2:selector expression}')
+snippet size
+ ${1:obj}.size()
+snippet slice
+ ${1:obj}.slice(${2:start}${3:, end})
+snippet stoggle
+ ${1:obj}.slideToggle('${2:slow/400/fast}')
+snippet stop
+ ${1:obj}.stop('${2:queue}', ${3:false}, ${4:false})
+snippet submit
+ ${1:obj}.submit(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet sup
+ ${1:obj}.slideUp('${2:slow/400/fast}')
+snippet supc
+ ${1:obj}.slideUp('${2:slow/400/fast}', function () {
+ ${0:// callback};
+ });
+snippet text
+ ${1:obj}.text(${2:'some text'})
+snippet this
+ $(this)
+snippet toarr
+ ${0:obj}.toArray()
+snippet tog
+ ${1:obj}.toggle(function (${2:e}) {
+ ${3:// event handler}
+ }, function ($2) {
+ ${4:// event handler}
+ });
+ ${0}
+snippet togclass
+ ${1:obj}.toggleClass('${2:class name}')
+snippet togsh
+ ${1:obj}.toggle('${2:slow/400/fast}')
+snippet trig
+ ${1:obj}.trigger('${2:event name}')
+snippet trigh
+ ${1:obj}.triggerHandler('${2:event name}')
+snippet $trim
+ $.trim(${1:str})
+snippet $type
+ $.type(${1:obj})
+snippet unbind
+ ${1:obj}.unbind('${2:event name}')
+snippet undele
+ ${1:obj}.undelegate(${2:selector expression}, ${3:event}, ${4:handler})
+snippet uniq
+ $.unique(${1:array})
+snippet unload
+ ${1:obj}.unload(function (${2:e}) {
+ ${0:// event handler}
+ });
+snippet unwrap
+ ${1:obj}.unwrap()
+snippet val
+ ${1:obj}.val('${2:text}')
+snippet width
+ ${1:obj}.width(${2:integer})
+snippet wrap
+ ${1:obj}.wrap('${2:&lt;div class="extra-wrapper"&gt;&lt;/div&gt;}')
diff --git a/snippets/javascript/javascript-react.snippets b/snippets/javascript/javascript-react.snippets
new file mode 100644
index 0000000..65cb4e1
--- /dev/null
+++ b/snippets/javascript/javascript-react.snippets
@@ -0,0 +1,190 @@
+# Import
+snippet ir import React
+ import React from 'react';
+
+snippet irc import React and Component
+ import React, { Component } from 'react';
+
+snippet irh import React hooks
+ import { use$1 } from 'react';
+
+snippet ird import ReactDOM
+ import ReactDOM from 'react-dom';
+
+snippet irp import PropTypes
+ import PropTypes from 'prop-types';
+
+# Lifecycle Methods
+snippet cdm componentDidMount
+ componentDidMount() {
+ ${1}
+ };
+
+snippet cdup componentDidUpdate
+ componentDidUpdate(prevProps, prevState) {
+ ${1}
+ };
+
+snippet cwm componentWillMount
+ componentWillMount() {
+ ${1}
+ };
+
+snippet cwr componentWillReceiveProps
+ componentWillReceiveProps(nextProps) {
+ ${1}
+ };
+
+snippet cwun componentWillUnmount
+ componentWillUnmount() {
+ ${1}
+ };
+
+snippet cwu componentWillUpdate
+ componentWillUpdate(nextProps, nextState) {
+ ${1}
+ };
+
+snippet scu shouldComponentUpdate
+ shouldComponentUpdate(nextProps, nextState) {
+ ${1}
+ }
+
+# Props
+snippet spt static propTypes
+ static propTypes = {
+ ${1}: PropTypes.${2}
+ };
+
+snippet pt propTypes
+ ${1}.propTypes = {
+ ${2}: PropTypes.${2}
+ };
+
+snippet sdp static defaultProps
+ static defaultProps = {
+ ${1}: ${2}
+ };
+
+snippet dp defaultProps
+ ${1}.defaultProps = {
+ ${2}: ${3}
+ };
+
+snippet pp props
+ props.${1};
+
+snippet tp this props
+ this.props.${1};
+
+# State
+snippet st
+ state = {
+ ${1}: ${2},
+ };
+
+snippet sst
+ this.setState({
+ ${1}: ${2}
+ });
+
+snippet tst
+ this.state.${1};
+
+# Component
+snippet raf
+ const ${1:ComponentName} = (${2:props}) => {
+ ${3:state}
+
+ return (
+ <>
+ ${4}
+ </>
+ );
+ };
+
+snippet rcla
+ class ${1:ClassName} extends Component {
+ render() {
+ return (
+ <>
+ ${2}
+ </>
+ );
+ }
+ }
+
+snippet ercla
+ export default class ${1:ClassName} extends Component {
+ render() {
+ return (
+ <>
+ ${2}
+ </>
+ );
+ };
+ };
+
+snippet ctor
+ constructor() {
+ super();
+
+ ${1:state}
+ }
+
+snippet ren
+ render() {
+ return (
+ <>
+ ${2}
+ </>
+ );
+ }
+
+snippet fup
+ forceUpdate(${1:callback});
+
+# Hooks
+snippet uses useState
+ const [${1:state}, set${2}] = useState(${3:initialState});
+
+snippet usee useEffect
+ useEffect(() => {
+ ${1}
+ });
+
+snippet userd useReducer
+ const [${1:state}, ${2:dispatch}] = useReducer(${3:reducer});
+
+snippet userf useRef
+ const ${1:refContainer} = useRef(${2:initialValue});
+
+snippet usect useContext
+ const ${1:value} = useContext(${2:MyContext});
+
+snippet usecb useCallback
+ const ${1:memoizedCallback} = useCallback(
+ () => {
+ ${2}(${3})
+ },
+ [$3]
+ );
+
+snippet usem useMemo
+ const ${1:memoizedCallback} = useMemo(() => ${2}(${3}), [$3]);
+
+snippet usei useImperativeHandle
+ useImperativeHandle(${1:ref}, ${2:createHandle});
+
+snippet used useDebugValue
+ useDebugValue(${1:value});
+
+# ReactDOM methods
+snippet rdr ReactDOM.render
+ ReactDOM.render(${1}, ${2});
+
+snippet rdh ReactDOM.hydrate
+ ReactDOM.hydrate(${1:element}, ${2:container}[, ${3:callback}]);
+
+snippet rdcp ReactDOM.createPortal
+ ReactDOM.createPortal(${1:child}, ${2:container});
diff --git a/snippets/javascript/javascript-redux.snippets b/snippets/javascript/javascript-redux.snippets
new file mode 100644
index 0000000..e13253c
--- /dev/null
+++ b/snippets/javascript/javascript-redux.snippets
@@ -0,0 +1,37 @@
+snippet ist
+ import { createStore } from 'redux';
+snippet con
+ connect(${1:mapStateToProps}, ${2:mapDispatchToProps})(<${3:VISUAL}/>);
+snippet act
+ const ${1:actionName} = (${2:arg}) => {
+ return {
+ type: ${3:VISUAL},
+ $2
+ };
+ };
+snippet rdc
+ const ${1:reducerName} = (state={}, action) => {
+ switch(action.type) {
+ case ${1:action}:
+ return {
+ ...state,
+ $2
+ };
+ default:
+ return state;
+ };
+ };
+snippet mstp
+ const mapStateToProps = (state) => {
+ return {
+ ${1:propName}: state.$1,
+ };
+ };
+snippet mdtp
+ const mapDispatchToProps = (dispatch) => {
+ return {
+ ${1:propName}: () => {
+ dispatch(${2:actionName}());
+ },
+ };
+ };
diff --git a/snippets/javascript/javascript-requirejs.snippets b/snippets/javascript/javascript-requirejs.snippets
new file mode 100644
index 0000000..8e72ada
--- /dev/null
+++ b/snippets/javascript/javascript-requirejs.snippets
@@ -0,0 +1,14 @@
+snippet def
+ define(["${1:#dependencies1}"], function (${2:#dependencies2}) {
+ return ${0:TARGET};
+ });
+
+snippet defn
+ define("${1:#name}", ["${2:#dependencies1}"], function (${3:#dependencies2}) {
+ return ${0:TARGET};
+ });
+
+snippet reqjs
+ require(["${1:#dependencies1}"], function (${2:#dependencies2}) {
+ return ${0:TARGET};
+ });
diff --git a/snippets/javascript/javascript.node.snippets b/snippets/javascript/javascript.node.snippets
new file mode 100644
index 0000000..52a2ba4
--- /dev/null
+++ b/snippets/javascript/javascript.node.snippets
@@ -0,0 +1,51 @@
+snippet #!
+ #!/usr/bin/env node
+# module exports
+snippet ex
+ module.exports = ${1};
+# require
+snippet re
+ const ${1} = require('${2:module_name}');
+# EventEmitter
+snippet on
+ on('${1:event_name}', function(${2:stream}) {
+ ${3}
+ });
+snippet emit
+ emit('${1:event_name}', ${2:args});
+snippet once
+ once('${1:event_name}', function(${2:stream}) {
+ ${3}
+ });
+# http. User js function snippet as handler
+snippet http
+ http.createServer(${1:handler}).listen(${2:port_number});
+# net
+snippet net
+ net.createServer(function(${1:socket}){
+ ${1}.on('data', function('data'){
+ ${2}
+ ]});
+ ${1}.on('end', function(){
+ ${3}
+ });
+ }).listen(${4:8124});
+# Stream snippets
+snippet pipe
+ pipe(${1:stream})${2}
+# Express snippets
+snippet eget
+ ${1:app}.get('${2:route}', ${3:handler});
+snippet epost
+ ${1:app}.post('${2:route}', ${3:handler});
+snippet eput
+ ${1:app}.put('${2:route}', ${3:handler});
+snippet edel
+ ${1:app}.delete('${2:route}', ${3:handler});
+# process snippets
+snippet stdin
+ process.stdin
+snippet stdout
+ process.stdout
+snippet stderr
+ process.stderr
diff --git a/snippets/javascript/javascript.snippets b/snippets/javascript/javascript.snippets
new file mode 100644
index 0000000..78c651e
--- /dev/null
+++ b/snippets/javascript/javascript.snippets
@@ -0,0 +1,359 @@
+# Functions
+# prototype
+snippet proto
+ ${1:class_name}.prototype.${2:method_name} = function(${3}) {
+ ${0:${VISUAL}}
+ };
+# Function
+snippet fun "function"
+ function ${1:function_name}(${2}) {
+ ${0:${VISUAL}}
+ }
+# Asynchronous Function
+snippet asf "async function"
+ async function ${1:function_name}(${2}) {
+ ${0:${VISUAL}}
+ }
+# Anonymous Function
+snippet anf "" w
+ function(${1}) {
+ ${0:${VISUAL}}
+ }
+# Anonymous Function assigned to variable
+snippet vaf
+ var ${1:function_name} = function(${2}) {
+ ${0:${VISUAL}}
+ };
+# Function assigned to variable
+snippet vf
+ var ${1:function_name} = function $1(${2}) {
+ ${0:${VISUAL}}
+ };
+# Immediate function
+snippet (f
+ (function(${1}) {
+ ${0:${VISUAL}}
+ }(${2}));
+# Minify safe iife
+snippet ;fe
+ ;(function(${1}) {
+ ${0:${VISUAL}}
+ }(${2}))
+# self-defining function
+snippet sdf
+ var ${1:function_name} = function (${2:argument}) {
+ ${3}
+
+ $1 = function ($2) {
+ ${0:${VISUAL}}
+ };
+ };
+# Flow control
+# if
+snippet if "if (condition) { ... }"
+ if (${1:true}) {
+ ${0:${VISUAL}}
+ }
+# if ... else
+snippet ife "if (condition) { ... } else { ... }"
+ if (${1:true}) {
+ ${0:${VISUAL}}
+ } else {
+ ${2}
+ }
+# tertiary conditional
+snippet ter
+ ${1:/* condition */} ? ${2:/* if true */} : ${0:/* if false */}
+# switch
+snippet switch
+ switch (${1:expression}) {
+ case '${3:case}':
+ ${4}
+ break;
+ ${0}
+ default:
+ ${2}
+ }
+snippet case "case 'xyz': ... break"
+ case '${1:case}':
+ ${0:${VISUAL}}
+ break;
+snippet try "try { ... } catch(e) { ... }"
+ try {
+ ${0:${VISUAL}}
+ } catch (${1:e}) {
+ ${2:/* handle error */}
+ }
+snippet tryf "try { ... } catch(e) { ... } finally { ... }"
+ try {
+ ${0:${VISUAL}}
+ } catch (${1:e}) {
+ ${2:/* handle error */}
+ } finally {
+ ${3:/* be executed regardless of the try / catch result*/}
+ }
+# throw Error
+snippet terr
+ throw new Error('${1:error message}')
+# return
+snippet ret
+ return ${0:result};
+snippet for "for (...) {...}"
+ for (let ${1:i} = 0, ${2:len} = ${3:Things.length}; $1 < $2; $1++) {
+ ${0:${VISUAL}}
+ }
+snippet forr "reversed for (...) {...}"
+ for (let ${2:i} = ${1:Things.length} - 1; $2 >= 0; $2--) {
+ ${0:${VISUAL}}
+ }
+snippet wh "(condition) { ... }"
+ while (${1:/* condition */}) {
+ ${0:${VISUAL}}
+ }
+snippet do "do { ... } while (condition)"
+ do {
+ ${0:${VISUAL}}
+ } while (${1:/* condition */});
+# For in loop
+snippet fori
+ for (let ${1:prop} in ${2:object}) {
+ ${0:$2[$1]}
+ }
+# Objects
+# Object Method
+snippet :f
+ ${1:method_name}: function (${2:attribute}) {
+ ${0:${VISUAL}}
+ },
+# hasOwnProperty
+snippet has
+ hasOwnProperty(${0})
+# singleton
+snippet sing
+ function ${1:Singleton} (${2:argument}) {
+ // the cached instance
+ var instance;
+
+ // rewrite the constructor
+ $1 = function $1($2) {
+ return instance;
+ };
+
+ // carry over the prototype properties
+ $1.prototype = this;
+
+ // the instance
+ instance = new $1();
+
+ // reset the constructor pointer
+ instance.constructor = $1;
+
+ ${0}
+
+ return instance;
+ }
+# Crockford's object function
+snippet obj
+ function object(o) {
+ function F() {}
+ F.prototype = o;
+ return new F();
+ }
+# Define multiple properties
+snippet props
+ var ${1:my_object} = Object.defineProperties(
+ ${2:new Object()},
+ {
+ ${3:property} : {
+ get : function $1_$3_getter() {
+ // getter code
+ },
+ set : function $1_$3_setter(value) {
+ // setter code
+ },
+ value : ${4:value},
+ writeable : ${5:boolean},
+ enumerable : ${6:boolean},
+ configurable : ${0:boolean}
+ }
+ }
+ );
+# Define single property
+snippet prop
+ Object.defineProperty(
+ ${1:object},
+ '${2:property}',
+ {
+ get : function $1_$2_getter() {
+ // getter code
+ },
+ set : function $1_$2_setter(value) {
+ // setter code
+ },
+ value : ${3:value},
+ writeable : ${4:boolean},
+ enumerable : ${5:boolean},
+ configurable : ${0:boolean}
+ }
+ );
+# Documentation
+# docstring
+snippet /**
+ /**
+ * ${0:description}
+ *
+ */
+snippet @par
+ @param {${1:type}} ${2:name} ${0:description}
+snippet @ret
+ @return {${1:type}} ${0:description}
+# JSON.parse
+snippet jsonp
+ JSON.parse(${0:jstr});
+# JSON.stringify
+snippet jsons
+ JSON.stringify(${0:object});
+# DOM selectors
+# Get elements
+snippet get
+ getElementsBy${1:TagName}('${0}')
+# Get element
+snippet gett
+ getElementBy${1:Id}('${0}')
+# Elements by class
+snippet by.
+ ${1:document}.getElementsByClassName('${0:class}')
+# Element by ID
+snippet by#
+ ${1:document}.getElementById('${0:element ID}')
+# Query selector
+snippet qs
+ ${1:document}.querySelector('${0:CSS selector}')
+# Query selector all
+snippet qsa
+ ${1:document}.querySelectorAll('${0:CSS selector}')
+# Debugging
+snippet de
+ debugger;
+snippet cl "console.log"
+ console.log(${0});
+snippet cd "console.debug"
+ console.debug(${0});
+snippet ce "console.error"
+ console.error(${0});
+snippet cw "console.warn"
+ console.warn(${0});
+snippet ci "console.info"
+ console.info(${0});
+snippet ct "console.trace"
+ console.trace(${0:label});
+snippet ctime "console.time ... console.timeEnd"
+ console.time("${1:label}");
+ ${0:${VISUAL}}
+ console.timeEnd("$1");
+snippet ctimestamp "console.timeStamp"
+ console.timeStamp("${1:label}");
+snippet ca "console.assert"
+ console.assert(${1:expression}, ${0:obj});
+snippet cclear "console.clear"
+ console.clear();
+snippet cdir "console.dir"
+ console.dir(${0:obj});
+snippet cdirx "console.dirxml"
+ console.dirxml(${1:object});
+snippet cgroup "console.group"
+ console.group("${1:label}");
+ ${0:${VISUAL}}
+ console.groupEnd();
+snippet cgroupc "console.groupCollapsed"
+ console.groupCollapsed("${1:label}");
+ ${0:${VISUAL}}
+ console.groupEnd();
+snippet cprof "console.profile"
+ console.profile("${1:label}");
+ ${0:${VISUAL}}
+ console.profileEnd();
+snippet ctable "console.table"
+ console.table(${1:"${2:value}"});
+snippet clstr "console.log stringified"
+ console.log(JSON.stringify(${0}, null, 2));
+# Misc
+snippet us
+ 'use strict';
+# setTimeout function
+snippet timeout
+ setTimeout(function () {${0}}${2}, ${1:10});
+snippet const
+ const ${1} = ${0};
+snippet constn
+ const ${1} = new ${0};
+snippet let
+ let ${1} = ${0};
+snippet im "import xyz from 'xyz'"
+ import ${1} from '${2:$1}';
+snippet imas "import * as xyz from 'xyz'"
+ import * as ${1} from '${2:$1}';
+snippet imm "import { member } from 'xyz'"
+ import { ${1} } from '${2}';
+snippet cla
+ class ${1} {
+ ${0:${VISUAL}}
+ }
+snippet clax
+ class ${1} extends ${2} {
+ ${0:${VISUAL}}
+ }
+snippet clac
+ class ${1} {
+ constructor(${2}) {
+ ${0:${VISUAL}}
+ }
+ }
+snippet foro "for (const prop of object}) { ... }"
+ for (const ${1:prop} of ${2:object}) {
+ ${0:$1}
+ }
+snippet forl "for (let prop of object}) { ... }"
+ for (let ${1:prop} of ${2:object}) {
+ ${0:$1}
+ }
+snippet fun*
+ function* ${1:function_name}(${2}) {
+ ${0:${VISUAL}}
+ }
+snippet c=>
+ const ${1:function_name} = (${2}) => {
+ ${0:${VISUAL}}
+ }
+snippet ca=>
+ const ${1:function_name} = async (${2}) => {
+ ${0:${VISUAL}}
+ }
+snippet caf
+ const ${1:function_name} = (${2}) => {
+ ${0:${VISUAL}}
+ }
+snippet casf
+ const ${1:function_name} = async (${2}) => {
+ ${0:${VISUAL}}
+ }
+snippet =>
+ (${1}) => {
+ ${0:${VISUAL}}
+ }
+snippet af "() =>"
+ (${1}) => ${0:${VISUAL}}
+snippet afb "() => {}"
+ (${1}) => {
+ ${0:${VISUAL}}
+ }
+snippet sym
+ const ${1} = Symbol('${0}');
+snippet ed
+ export default ${0}
+snippet ${
+ \${${1}}${0}
+snippet as "async"
+ async ${0}
+snippet aw "await"
+ await ${0:${VISUAL}}