diff --git a/backendless.d.ts b/backendless.d.ts index 48774966..6d0a0bda 100644 --- a/backendless.d.ts +++ b/backendless.d.ts @@ -5,6 +5,7 @@ declare module __Backendless { import Backendless = __Backendless; + var debugMode:boolean; var serverURL:string; var applicationId:string; var secretKey:string; @@ -19,7 +20,7 @@ declare module __Backendless { /** * @dictionary */ - var PublishOptionsHeaders:{ [key: string]: string; }; + var PublishOptionsHeaders:{ [key:string]:string; }; /** @@ -105,7 +106,7 @@ declare module __Backendless { * @constructor */ class Async { - constructor(onSuccess?:(data?:Object) => void, onError?:((data:Object) => void) | Object, context?:Object); + constructor(onSuccess?:(data?:Object) => void, onError?:((data:Object) => void)|Object, context?:Object); success(data:Object):void; @@ -224,7 +225,7 @@ declare module __Backendless { */ class GeoCluster extends Backendless.GeoPoint { totalPoints:number; - geoQuery:Backendless.GeoQuery | Backendless.RectangleGeoQueryI | Backendless.CircleGeoQueryI; + geoQuery:Backendless.GeoQuery|Backendless.RectangleGeoQueryI|Backendless.CircleGeoQueryI; } /** @@ -322,7 +323,7 @@ declare module __Backendless { class Proxy { eventHandlers:Object; - on(eventName:string, handler:(data:any)=>any):void; + on(eventName:string, handler:(data:any) => any):void; fireEvent(eventName:string, data:any):void; } @@ -830,23 +831,23 @@ declare module __Backendless { } interface PersistencePermissionI { - grantUserSync(userId: string, dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; - grantUser(userId: string, dataItem: ExistDataItemI): Promise; + grantUserSync(userId:string, dataItem:Backendless.ExistDataItemI):Backendless.ExistDataItemI; + grantUser(userId:string, dataItem:ExistDataItemI):Promise; - grantRoleSync(roleName: string, dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; - grantRole(roleName: string, dataItem: Backendless.ExistDataItemI): Promise; + grantRoleSync(roleName:string, dataItem:Backendless.ExistDataItemI):Backendless.ExistDataItemI; + grantRole(roleName:string, dataItem:Backendless.ExistDataItemI):Promise; - grantSync(dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; - grant(dataItem: Backendless.ExistDataItemI): Promise; + grantSync(dataItem:Backendless.ExistDataItemI):Backendless.ExistDataItemI; + grant(dataItem:Backendless.ExistDataItemI):Promise; - denyUserSync(userId: string, dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; - denyUser(userId: string, dataItem: Backendless.ExistDataItemI): Promise; + denyUserSync(userId:string, dataItem:Backendless.ExistDataItemI):Backendless.ExistDataItemI; + denyUser(userId:string, dataItem:Backendless.ExistDataItemI):Promise; - denyRoleSync(roleName: string, dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; - denyRole(roleName: string, dataItem: Backendless.ExistDataItemI): Promise; + denyRoleSync(roleName:string, dataItem:Backendless.ExistDataItemI):Backendless.ExistDataItemI; + denyRole(roleName:string, dataItem:Backendless.ExistDataItemI):Promise; - denySync(dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; - deny(dataItem: Backendless.ExistDataItemI): Promise; + denySync(dataItem:Backendless.ExistDataItemI):Backendless.ExistDataItemI; + deny(dataItem:Backendless.ExistDataItemI):Promise; } interface FilePermissionI { @@ -927,6 +928,7 @@ declare module __Backendless { subscriptionId:string; restUrl:string; proxy:Proxy; + cancelSubscription():void; } diff --git a/package.json b/package.json index 2e003b00..5eef81bd 100644 --- a/package.json +++ b/package.json @@ -68,22 +68,22 @@ "chai": "^3.5.0", "chai-as-promised": "^6.0.0", "copyfiles": "^1.1.0", - "cross-env": "^5.0.5", + "cross-env": "^5.1.0", "eslint": "^3.12.2", - "karma": "^1.3.0", + "karma": "^1.7.1", "karma-babel-preprocessor": "^6.0.1", "karma-browserify": "^5.1.0", "karma-mocha": "^1.3.0", "karma-phantomjs-launcher": "^1.0.2", "mocha": "^3.2.0", - "rimraf": "^2.5.4", - "typescript": "^2.0.3", - "uglify-js": "^3.0.15", + "rimraf": "^2.6.2", + "typescript": "^2.5.3", + "uglify-js": "^3.1.4", "watch": "^1.0.2", "watchify": "^3.8.0", - "webpack": "^3.5.5" + "webpack": "^3.8.1" }, "dependencies": { - "backendless-request": "^0.0.9" + "backendless-request": "^0.0.10" } } diff --git a/src/cache/put.js b/src/cache/put.js index 4fda8c80..c4c9b54e 100644 --- a/src/cache/put.js +++ b/src/cache/put.js @@ -13,7 +13,7 @@ export function put(key, value, timeToLive, asyncHandler) { timeToLive = undefined } - if (timeToLive && !Utils.isNumber(key)) { + if (timeToLive && !Utils.isNumber(timeToLive)) { throw new Error('Cache timeToLive must be Number') } diff --git a/src/data/store/count.js b/src/data/store/count.js index c40eb9a6..8dd8a178 100644 --- a/src/data/store/count.js +++ b/src/data/store/count.js @@ -11,7 +11,7 @@ export function getObjectCount(condition, asyncHandler) { } if (condition instanceof DataQueryBuilder) { - condition = condition.build().condition + condition = condition.build().condition || undefined } return Request.get({ diff --git a/src/request/request-for-browser.js b/src/request/request-for-browser.js index 31f365e0..a916fbfb 100644 --- a/src/request/request-for-browser.js +++ b/src/request/request-for-browser.js @@ -55,6 +55,10 @@ const sendRequest = config => { } else { const contentType = config.data ? 'application/json' : 'application/x-www-form-urlencoded' + if (contentType === 'application/json' && config.data && typeof config.data !== 'string') { + config.data = JSON.stringify(config.data) + } + xhr.setRequestHeader('Content-Type', contentType) } diff --git a/src/utils.js b/src/utils.js index 4a8758b9..ccfd1d2d 100644 --- a/src/utils.js +++ b/src/utils.js @@ -29,7 +29,7 @@ const Utils = { return Object.prototype.toString.call(obj).slice(8, -1) === 'Date' }, - isBrowser: (new Function('try {return this===window;}catch(e){ return false;}'))(), + isBrowser: isBrowser(), castArray(value) { if (Utils.isArray(value)) { @@ -184,6 +184,10 @@ const Utils = { } } +function isBrowser(){ + return (typeof self === 'object' && self.self === self) && (typeof window === 'object' && window === self) +} + function classWrapper(obj) { //TODO: refactor it const wrapper = obj => { diff --git a/webpack.config.js b/webpack.config.js index 90308680..c8c00ad6 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -23,9 +23,16 @@ const uglify = new webpack.optimize.UglifyJsPlugin({ module.exports = { devtool: 'source-map', - target : 'node', + + target : 'web', + + node: { + Buffer: false + }, module: { + noParse: /backendless-request/, + rules: [ { test : /\.js$/,