potion-client
Advanced tools
Comparing version 0.12.0 to 0.12.1
@@ -0,1 +1,2 @@ | ||
import 'reflect-metadata'; | ||
export declare function readonly(target: any, property: any): void; | ||
@@ -2,0 +3,0 @@ /** |
54
base.js
"use strict"; | ||
require('reflect-metadata'); | ||
var utils_1 = require('./utils'); | ||
/* tslint:disable: variable-name */ | ||
var Reflect = window.Reflect; | ||
/* tslint:enable: variable-name */ | ||
// Make sure Reflect API is available, | ||
// else throw an error. | ||
// See https://github.com/angular/angular/blob/60727c4d2ba1e4b0b9455c767d0ef152bcedc7c2/modules/angular2/src/core/util/decorators.ts#L243 | ||
(function checkReflect() { | ||
if (!(Reflect && Reflect.getMetadata)) { | ||
throw 'reflect-metadata shim is required when using potion-node library'; | ||
} | ||
})(); | ||
var POTION_METADATA_KEY = Symbol('potion'); | ||
@@ -10,3 +22,3 @@ var POTION_URI_METADATA_KEY = Symbol('potion:uri'); | ||
function readonly(target, property) { | ||
utils_1.reflector.set(target.constructor, READONLY_METADATA_KEY, Object.assign(utils_1.reflector.get(target.constructor, READONLY_METADATA_KEY) || {}, (_a = {}, _a[property] = true, _a))); | ||
Reflect.defineMetadata(READONLY_METADATA_KEY, Object.assign(Reflect.getOwnMetadata(READONLY_METADATA_KEY, target.constructor) || {}, (_a = {}, _a[property] = true, _a)), target.constructor); | ||
var _a; | ||
@@ -46,3 +58,3 @@ } | ||
var properties = {}; | ||
var metadata = utils_1.reflector.get(this.constructor, READONLY_METADATA_KEY); | ||
var metadata = Reflect.getOwnMetadata(READONLY_METADATA_KEY, this.constructor); | ||
Object | ||
@@ -63,3 +75,3 @@ .keys(this) | ||
this._itemConstructor = itemConstructor; | ||
var potion = utils_1.reflector.get(itemConstructor, POTION_METADATA_KEY); | ||
var potion = Reflect.getOwnMetadata(POTION_METADATA_KEY, itemConstructor); | ||
this.promise = potion.constructor.promise; | ||
@@ -71,3 +83,3 @@ this.cache = potion.cache; | ||
var cache = (_a === void 0 ? {} : _a).cache; | ||
var uri = utils_1.reflector.get(this._itemConstructor, POTION_URI_METADATA_KEY) + "/" + id; | ||
var uri = Reflect.getOwnMetadata(POTION_URI_METADATA_KEY, this._itemConstructor) + "/" + id; | ||
// Try to get from cache | ||
@@ -90,4 +102,4 @@ if (cache && this.cache && this.cache.get) { | ||
// Enforce GET method | ||
promise = this._promises[uri] = utils_1.reflector | ||
.get(this._itemConstructor, POTION_METADATA_KEY) | ||
promise = this._promises[uri] = Reflect | ||
.getOwnMetadata(POTION_METADATA_KEY, this._itemConstructor) | ||
.fetch(uri, { cache: cache, method: 'GET' }) | ||
@@ -102,5 +114,5 @@ .then(function (item) { | ||
var _b = _a === void 0 ? {} : _a, _c = _b.paginate, paginate = _c === void 0 ? false : _c, _d = _b.cache, cache = _d === void 0 ? true : _d; | ||
return utils_1.reflector | ||
.get(this._itemConstructor, POTION_METADATA_KEY) | ||
.fetch(utils_1.reflector.get(this._itemConstructor, POTION_URI_METADATA_KEY), { | ||
return Reflect | ||
.getOwnMetadata(POTION_METADATA_KEY, this._itemConstructor) | ||
.fetch(Reflect.getOwnMetadata(POTION_URI_METADATA_KEY, this._itemConstructor), { | ||
paginate: paginate, | ||
@@ -114,4 +126,4 @@ cache: cache, | ||
if (data === void 0) { data = {}; } | ||
return utils_1.reflector | ||
.get(this._itemConstructor, POTION_METADATA_KEY) | ||
return Reflect | ||
.getOwnMetadata(POTION_METADATA_KEY, this._itemConstructor) | ||
.fetch(item.uri, { data: data, cache: true, method: 'PATCH' }); | ||
@@ -121,5 +133,5 @@ }; | ||
if (data === void 0) { data = {}; } | ||
return utils_1.reflector | ||
.get(this._itemConstructor, POTION_METADATA_KEY) | ||
.fetch(utils_1.reflector.get(this._itemConstructor, POTION_URI_METADATA_KEY), { data: data, cache: true, method: 'POST' }); | ||
return Reflect | ||
.getOwnMetadata(POTION_METADATA_KEY, this._itemConstructor) | ||
.fetch(Reflect.getOwnMetadata(POTION_URI_METADATA_KEY, this._itemConstructor), { data: data, cache: true, method: 'POST' }); | ||
}; | ||
@@ -129,4 +141,4 @@ Store.prototype.destroy = function (item) { | ||
var uri = item.uri; | ||
return utils_1.reflector | ||
.get(this._itemConstructor, POTION_METADATA_KEY) | ||
return Reflect | ||
.getOwnMetadata(POTION_METADATA_KEY, this._itemConstructor) | ||
.fetch(uri, { method: 'DELETE' }) | ||
@@ -148,3 +160,3 @@ .then(function () { | ||
var isCtor = typeof this === 'function'; | ||
uri = "" + (isCtor ? utils_1.reflector.get(this, POTION_URI_METADATA_KEY) : this.uri) + uri; | ||
uri = "" + (isCtor ? Reflect.getOwnMetadata(POTION_URI_METADATA_KEY, this) : this.uri) + uri; | ||
var options = { method: method, paginate: paginate, cache: cache }; | ||
@@ -157,4 +169,4 @@ if (method === 'GET') { | ||
} | ||
return utils_1.reflector | ||
.get(isCtor ? this : this.constructor, POTION_METADATA_KEY) | ||
return Reflect | ||
.getOwnMetadata(POTION_METADATA_KEY, isCtor ? this : this.constructor) | ||
.fetch(uri, options); | ||
@@ -236,4 +248,4 @@ }; | ||
PotionBase.prototype.register = function (uri, resource) { | ||
utils_1.reflector.set(resource, POTION_METADATA_KEY, this); | ||
utils_1.reflector.set(resource, POTION_URI_METADATA_KEY, uri); | ||
Reflect.defineMetadata(POTION_METADATA_KEY, this, resource); | ||
Reflect.defineMetadata(POTION_URI_METADATA_KEY, uri, resource); | ||
this.resources[uri] = resource; | ||
@@ -240,0 +252,0 @@ resource.store = new Store(resource); |
{ | ||
"name": "potion-client", | ||
"version": "0.12.0", | ||
"version": "0.12.1", | ||
"description": "A ES6 client for APIs written in Flask-Potion", | ||
@@ -5,0 +5,0 @@ "keywords": [], |
@@ -1,11 +0,3 @@ | ||
import 'reflect-metadata'; | ||
import { PotionItemCache } from './base'; | ||
/** | ||
* Quick way of getting/setting constructor metadata | ||
*/ | ||
export declare let reflector: { | ||
get(constructor: Function, key: string | symbol): any; | ||
set(constructor: Function, key: string | symbol, annotations: any): void; | ||
}; | ||
/** | ||
* Camel case to snake case | ||
@@ -12,0 +4,0 @@ */ |
12
utils.js
"use strict"; | ||
require('reflect-metadata'); | ||
/** | ||
* Quick way of getting/setting constructor metadata | ||
*/ | ||
exports.reflector = { | ||
get: function (constructor, key) { | ||
return Reflect.getOwnMetadata(key, constructor); | ||
}, | ||
set: function (constructor, key, annotations) { | ||
Reflect.defineMetadata(key, annotations, constructor); | ||
} | ||
}; | ||
/** | ||
* Camel case to snake case | ||
@@ -16,0 +4,0 @@ */ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
68709
879