Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

major dependency update #31

Merged
merged 1 commit into from
Feb 8, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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