Skip to content

Commit

Permalink
major dependency update
Browse files Browse the repository at this point in the history
  • Loading branch information
Huseyn Guliyev committed Jan 25, 2019
1 parent d6f8886 commit c417cb0
Show file tree
Hide file tree
Showing 5 changed files with 170 additions and 165 deletions.
278 changes: 138 additions & 140 deletions lib/nuxt-property-decorator.umd.js
Original file line number Diff line number Diff line change
@@ -1,146 +1,144 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('vue-property-decorator'), require('vue-class-component'), require('reflect-metadata'), require('vuex-class')) :
typeof define === 'function' && define.amd ? define(['exports', 'vue', 'vue-property-decorator', 'vue-class-component', 'reflect-metadata', 'vuex-class'], factory) :
(factory((global.NuxtPropertyDecorator = {}),global.Vue,global.vuePropertyDecorator,global.VueClassComponent,null,global.vuexClass));
}(this, (function (exports,vue,vuePropertyDecorator,Component,reflectMetadata,vuexClass) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('vue-property-decorator'), require('vue-class-component'), require('reflect-metadata'), require('vuex-class')) :
typeof define === 'function' && define.amd ? define(['exports', 'vue', 'vue-property-decorator', 'vue-class-component', 'reflect-metadata', 'vuex-class'], factory) :
(global = global || self, factory(global.NuxtPropertyDecorator = {}, global.Vue, global.VuePropertyDecorator, global.VueClassComponent, null, global.VuexClass));
}(this, function (exports, vue, vuePropertyDecorator, Component, reflectMetadata, vuexClass) { 'use strict';

vue = vue && vue.hasOwnProperty('default') ? vue['default'] : vue;
var Component__default = 'default' in Component ? Component['default'] : Component;
vue = vue && vue.hasOwnProperty('default') ? vue['default'] : vue;
var Component__default = 'default' in Component ? Component['default'] : Component;

Component__default.registerHooks([
'beforeRouteEnter',
'beforeRouteUpdate',
'beforeRouteLeave',
'asyncData',
'fetch',
'head',
'middleware',
'layout',
'transition',
'scrollToTop',
'validate'
]);
// const Component = require('nuxt-class-component');
// const { createDecorator } = require('nuxt-class-component');
// Code copied from Vue/src/shared/util.js
var hyphenateRE = /\B([A-Z])/g;
var hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };
/**
* decorator of $off
* @param event The name of the event
* @param method The name of the method
*/
function Off(event, method) {
return function (target, key, descriptor) {
key = hyphenate(key);
var original = descriptor.value;
descriptor.value = function offer() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (original.apply(this, args) !== false) {
if (method) {
if (typeof this[method] === 'function') {
this.$off(event || key, this[method]);
}
else {
throw new TypeError('must be a method name');
}
}
else if (event) {
this.$off(event || key);
}
else {
this.$off();
}
}
};
};
}
/**
* decorator of $on
* @param event The name of the event
*/
function On(event) {
return Component.createDecorator(function (componentOptions, k) {
var key = hyphenate(k);
if (typeof componentOptions.created !== 'function') {
componentOptions.created = function () { };
}
var original = componentOptions.created;
componentOptions.created = function () {
original();
if (typeof componentOptions.methods !== 'undefined') {
this.$on(event || key, componentOptions.methods[k]);
}
};
});
}
/**
* decorator of $once
* @param event The name of the event
*/
function Once(event) {
return Component.createDecorator(function (componentOptions, k) {
var key = hyphenate(k);
if (typeof componentOptions.created !== 'function') {
componentOptions.created = function () { };
}
var original = componentOptions.created;
componentOptions.created = function () {
original();
if (typeof componentOptions.methods !== 'undefined') {
this.$once(event || key, componentOptions.methods[k]);
}
};
});
}
/**
* decorator of $nextTick
*
* @export
* @param {string} method
* @returns {MethodDecorator}
*/
function NextTick(method) {
return function (target, key, descriptor) {
var original = descriptor.value;
descriptor.value = function emitter() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (original.apply(this, args) !== false)
if (typeof this[method] === 'function') {
this.$nextTick(this[method]);
}
else {
throw new TypeError('must be a method name');
}
};
};
}
Component__default.registerHooks([
'beforeRouteEnter',
'beforeRouteUpdate',
'beforeRouteLeave',
'asyncData',
'fetch',
'head',
'middleware',
'layout',
'transition',
'scrollToTop',
'validate'
]);
// Code copied from Vue/src/shared/util.js
var hyphenateRE = /\B([A-Z])/g;
var hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };
/**
* decorator of $off
* @param event The name of the event
* @param method The name of the method
*/
function Off(event, method) {
return function (target, key, descriptor) {
key = hyphenate(key);
var original = descriptor.value;
descriptor.value = function offer() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (original.apply(this, args) !== false) {
if (method) {
if (typeof this[method] === 'function') {
this.$off(event || key, this[method]);
}
else {
throw new TypeError('must be a method name');
}
}
else if (event) {
this.$off(event || key);
}
else {
this.$off();
}
}
};
};
}
/**
* decorator of $on
* @param event The name of the event
*/
function On(event) {
return Component.createDecorator(function (componentOptions, k) {
var key = hyphenate(k);
if (typeof componentOptions.created !== 'function') {
componentOptions.created = function () { };
}
var original = componentOptions.created;
componentOptions.created = function () {
original();
if (typeof componentOptions.methods !== 'undefined') {
this.$on(event || key, componentOptions.methods[k]);
}
};
});
}
/**
* decorator of $once
* @param event The name of the event
*/
function Once(event) {
return Component.createDecorator(function (componentOptions, k) {
var key = hyphenate(k);
if (typeof componentOptions.created !== 'function') {
componentOptions.created = function () { };
}
var original = componentOptions.created;
componentOptions.created = function () {
original();
if (typeof componentOptions.methods !== 'undefined') {
this.$once(event || key, componentOptions.methods[k]);
}
};
});
}
/**
* decorator of $nextTick
*
* @export
* @param {string} method
* @returns {MethodDecorator}
*/
function NextTick(method) {
return function (target, key, descriptor) {
var original = descriptor.value;
descriptor.value = function emitter() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (original.apply(this, args) !== false)
if (typeof this[method] === 'function') {
this.$nextTick(this[method]);
}
else {
throw new TypeError('must be a method name');
}
};
};
}

exports.Off = Off;
exports.On = On;
exports.Once = Once;
exports.NextTick = NextTick;
exports.Vue = vue;
exports.Component = Component__default;
exports.Emit = vuePropertyDecorator.Emit;
exports.Inject = vuePropertyDecorator.Inject;
exports.Model = vuePropertyDecorator.Model;
exports.Prop = vuePropertyDecorator.Prop;
exports.Provide = vuePropertyDecorator.Provide;
exports.Watch = vuePropertyDecorator.Watch;
exports.mixins = Component.mixins;
exports.State = vuexClass.State;
exports.Getter = vuexClass.Getter;
exports.Action = vuexClass.Action;
exports.Mutation = vuexClass.Mutation;
exports.namespace = vuexClass.namespace;
exports.Vue = vue;
exports.Emit = vuePropertyDecorator.Emit;
exports.Inject = vuePropertyDecorator.Inject;
exports.Model = vuePropertyDecorator.Model;
exports.Prop = vuePropertyDecorator.Prop;
exports.Provide = vuePropertyDecorator.Provide;
exports.Watch = vuePropertyDecorator.Watch;
exports.Component = Component__default;
exports.mixins = Component.mixins;
exports.State = vuexClass.State;
exports.Getter = vuexClass.Getter;
exports.Action = vuexClass.Action;
exports.Mutation = vuexClass.Mutation;
exports.namespace = vuexClass.namespace;
exports.Off = Off;
exports.On = On;
exports.Once = Once;
exports.NextTick = NextTick;

Object.defineProperty(exports, '__esModule', { value: true });
Object.defineProperty(exports, '__esModule', { value: true });

})));
}));
21 changes: 11 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,23 +36,24 @@
"reflect-metadata": "^0.1.12",
"vue-class-component": "6.3.2",
"vue-property-decorator": "^7.3.0",
"vuex": "^3.1.0",
"vuex-class": "^0.3.1"
},
"devDependencies": {
"@std/esm": "^0.26.0",
"@types/jest": "^22.2.3",
"@types/node": "^9.6.4",
"@types/jest": "^23.3.13",
"@types/node": "^10.12.18",
"@vue/test-utils": "^1.0.0-beta.13",
"babel-jest": "^22.4.3",
"jest": "^22.4.3",
"rollup": "^0.45.2",
"rollup-plugin-typescript2": "^0.12.0",
"babel-jest": "^23.6.0",
"jest": "^23.6.0",
"rollup": "^1.1.2",
"rollup-plugin-typescript2": "^0.19.2",
"standard-version": "^4.3.0",
"ts-jest": "^22.4.2",
"ts-node": "^5.0.1",
"typescript": "^2.8.1",
"ts-jest": "^23.10.5",
"ts-node": "^8.0.1",
"typescript": "^3.2.4",
"vue": "^2.5.15",
"vue-jest": "^2.4.1",
"vue-jest": "^3.0.2",
"vue-template-compiler": "^2.5.16",
"yorkie": "^2.0.0"
},
Expand Down
26 changes: 15 additions & 11 deletions rollup.config.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
import typescript from 'rollup-plugin-typescript2';

export default {
entry: './src/nuxt-property-decorator.ts',
input: './src/nuxt-property-decorator.ts',
plugins: [
typescript({
tsconfig: './tsconfig.json'
})
],
format: 'umd',
moduleName: 'NuxtPropertyDecorator',
dest: 'lib/nuxt-property-decorator.umd.js',
external: [
'vue', 'vue-class-component', 'reflect-metadata'
],
globals: {
'vue': 'Vue',
'vue-class-component': 'VueClassComponent'
}
output:{
format: 'umd',
name: 'NuxtPropertyDecorator',
file: 'lib/nuxt-property-decorator.umd.js',
globals: {
'vue': 'Vue',
'vuex-class': 'VuexClass',
'vue-class-component': 'VueClassComponent',
'vue-property-decorator': 'VuePropertyDecorator'
}
},
external: [
'vue', 'vuex-class', 'vue-property-decorator', 'vue-class-component', 'reflect-metadata'
]
}
6 changes: 4 additions & 2 deletions tests/decorator.spec.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { mount, shallow } from '@vue/test-utils';
import { mount, shallowMount } from '@vue/test-utils';
import { Component, Emit, Inject, Model, Prop, Provide, Watch } from '../src/nuxt-property-decorator';
import EmitFixture from '../fixtures/emit'
import { Parent, Child, GrandChild } from '../fixtures/inject';
import ModelFixture from '../fixtures/model';

describe('@Emit decorator tests', () => {
const wrapper = shallow(new EmitFixture());
const wrapper = shallowMount(new EmitFixture());

test('emitted increment correctly', () => {
wrapper.vm.$emit('increment', 123);
expect(wrapper.emitted().increment).toBeTruthy();
Expand All @@ -22,6 +23,7 @@ describe('@Emit decorator tests', () => {
wrapper.vm.$emit('canceled');
expect(wrapper.emitted().canceled).toBeTruthy();
})

});

describe('@Inject decorator test', () => {
Expand Down
4 changes: 2 additions & 2 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"compilerOptions": {
"outDir": "./lib",
"esModuleInterop": true,
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"isolatedModules": false,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"declaration": true,
"emitDecoratorMetadata": false,
"noImplicitAny": true,
"removeComments": false,
"strictNullChecks": true,
Expand Down

0 comments on commit c417cb0

Please sign in to comment.