@sajari/sdk-node
Advanced tools
Comparing version 1.0.0-alpha.10 to 1.0.0-beta
@@ -91,3 +91,3 @@ "use strict"; | ||
* createCallCredentials creates the grpc.CallCredientials from the | ||
* pass credentials | ||
* passed sajari credentials | ||
* @hidden | ||
@@ -94,0 +94,0 @@ */ |
@@ -25,3 +25,3 @@ "use strict"; | ||
mutation: "append", | ||
set: value | ||
append: value | ||
}; | ||
@@ -37,3 +37,3 @@ } | ||
mutation: "increment", | ||
set: value | ||
increment: value | ||
}; | ||
@@ -83,6 +83,6 @@ } | ||
recordMutations: recordMutations.map(function (recordMutation) { | ||
return { | ||
return proto_1.sajari.engine.store.record.MutateRequest.RecordMutation.create({ | ||
key: key_1.Key.toProto(recordMutation.key), | ||
mutations: recordMutation.mutations.map(createFieldMutation) | ||
}; | ||
fieldMutations: recordMutation.mutations.map(createFieldMutation) | ||
}); | ||
}) | ||
@@ -89,0 +89,0 @@ }); |
@@ -12,6 +12,7 @@ "use strict"; | ||
var values = Object.keys(r).reduce(function (obj, key) { | ||
if (r[key] == null) { | ||
var value = utils_1.Value.toProto(r[key]); | ||
if (value === undefined) { | ||
return obj; | ||
} | ||
obj[key] = utils_1.Value.toProto(r[key]); | ||
obj[key] = value; | ||
return obj; | ||
@@ -18,0 +19,0 @@ }, {}); |
@@ -0,4 +1,6 @@ | ||
export { status as errorCode } from "grpc"; | ||
export { Client } from "./client"; | ||
export { Session, DefaultSession, Tracking, TrackingType } from "./pipeline/session"; | ||
export { default as schema, FieldMode, Mutation, ModeMutation, NameMutation, DescriptionMutation, TypeMutation, RepeatedMutation } from "./schema"; | ||
export { SearchResponse } from "./pipeline/search"; | ||
export { default as schema, FieldMode, Mutation, NameMutation, DescriptionMutation, TypeMutation, RepeatedMutation } from "./schema"; | ||
export { default as records, FieldMutation, Record, Key } from "./engine"; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
// reexport the grpc status code enum | ||
var grpc_1 = require("grpc"); | ||
exports.errorCode = grpc_1.status; | ||
var client_1 = require("./client"); | ||
@@ -12,2 +15,3 @@ exports.Client = client_1.Client; | ||
exports.FieldMode = schema_1.FieldMode; | ||
exports.Mutation = schema_1.Mutation; | ||
var engine_1 = require("./engine"); | ||
@@ -17,2 +21,1 @@ exports.records = engine_1.default; | ||
exports.Key = engine_1.Key; | ||
// export error consts |
@@ -19,2 +19,2 @@ import { sajari } from "../../generated/proto"; | ||
*/ | ||
export declare function parseAddResponse(response: sajari.engine.store.record.IAddResponse): AddResponse[]; | ||
export declare function parseAddResponse(response: sajari.engine.store.record.IAddResponse): Promise<AddResponse[]>; |
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -26,12 +61,17 @@ var proto_1 = require("../../generated/proto"); | ||
function parseAddResponse(response) { | ||
var res = response; | ||
var keys = res.keys.map(key_1.Key.fromProto); | ||
var errors = res.status.map(utils_1.errorFromStatus); | ||
return keys.map(function (key, idx) { | ||
return { | ||
key: key, | ||
error: errors[idx] | ||
}; | ||
return __awaiter(this, void 0, void 0, function () { | ||
var res, keys, errors; | ||
return __generator(this, function (_a) { | ||
res = response; | ||
keys = res.keys.map(key_1.Key.fromProto); | ||
errors = res.status.map(utils_1.errorFromStatus); | ||
return [2 /*return*/, keys.map(function (key, idx) { | ||
return { | ||
key: key, | ||
error: errors[idx] | ||
}; | ||
})]; | ||
}); | ||
}); | ||
} | ||
exports.parseAddResponse = parseAddResponse; |
@@ -48,6 +48,6 @@ "use strict"; | ||
var key = _a.key, record = _a.record; | ||
return { | ||
return ({ | ||
key: key_1.Key.toProto(key), | ||
record: record_1.Record.toProto(record) | ||
}; | ||
}); | ||
}); | ||
@@ -76,8 +76,6 @@ var req = { | ||
errors = res.status.map(utils_1.errorFromStatus); | ||
return [2 /*return*/, keys.map(function (key, idx) { | ||
return { | ||
key: key, | ||
error: errors[idx] | ||
}; | ||
})]; | ||
return [2 /*return*/, keys.map(function (key, idx) { return ({ | ||
key: key, | ||
error: errors[idx] | ||
}); })]; | ||
}); | ||
@@ -84,0 +82,0 @@ }); |
@@ -7,8 +7,8 @@ import { sajari } from "../../generated/proto"; | ||
type: TrackingType; | ||
query_id: string; | ||
sequence: number; | ||
query_id?: string; | ||
sequence?: number; | ||
/** field is a unique field on each result used to associate tracking information to the result. */ | ||
field: string; | ||
field?: string; | ||
/** data values which will be recorded along with query requests. */ | ||
data: { | ||
data?: { | ||
[k: string]: string; | ||
@@ -15,0 +15,0 @@ }; |
@@ -46,21 +46,22 @@ "use strict"; | ||
function fromProto(t) { | ||
switch (t) { | ||
case proto_1.sajari.api.query.v1.Token.Click: | ||
if (t.click == null || t.click.token == null) { | ||
throw new Error("sajari: invalid click token"); | ||
} | ||
return { | ||
click: t.click.token | ||
}; | ||
case proto_1.sajari.api.query.v1.Token.PosNeg: | ||
if (t.posNeg == null || t.posNeg.pos == null || t.posNeg.neg == null) { | ||
throw new Error("sajari: invalid posNeg token"); | ||
} | ||
return { | ||
pos: t.posNeg.pos, | ||
neg: t.posNeg.neg | ||
}; | ||
default: | ||
throw new Error("sajari: invalid token type"); | ||
if (t.click != null) { | ||
if (t.click.token === "" || t.click.token == null) { | ||
throw new Error("sajari: invalid click token"); | ||
} | ||
return { | ||
click: t.click.token | ||
}; | ||
} | ||
else if (t.posNeg != null) { | ||
if (t.posNeg.pos === "" || | ||
t.posNeg.pos === "" || | ||
(t.posNeg.pos == null || t.posNeg.neg == null)) { | ||
throw new Error("sajari: invalid posNeg token"); | ||
} | ||
return { | ||
pos: t.posNeg.pos, | ||
neg: t.posNeg.neg | ||
}; | ||
} | ||
throw new Error("sajari: invalid token type"); | ||
} | ||
@@ -67,0 +68,0 @@ Token.fromProto = fromProto; |
@@ -24,3 +24,9 @@ import { sajari } from "../../generated/proto"; | ||
export declare namespace Field { | ||
/** | ||
* @hidden | ||
*/ | ||
function toProto(f: Field): sajari.engine.schema.Field; | ||
/** | ||
* @hidden | ||
*/ | ||
function fromProto(f: sajari.engine.schema.IField): Field; | ||
@@ -41,3 +47,9 @@ } | ||
export declare namespace Type { | ||
/** | ||
* @hidden | ||
*/ | ||
function toProto(t: Type): sajari.engine.schema.Field.Type; | ||
/** | ||
* @hidden | ||
*/ | ||
function fromProto(t: sajari.engine.schema.Field.Type): Type; | ||
@@ -61,3 +73,9 @@ } | ||
export declare namespace FieldMode { | ||
/** | ||
* @hidden | ||
*/ | ||
function toProto(m: FieldMode): sajari.engine.schema.Field.Mode; | ||
/** | ||
* @hidden | ||
*/ | ||
function fromProto(m: sajari.engine.schema.Field.Mode): FieldMode; | ||
@@ -83,2 +101,2 @@ } | ||
*/ | ||
export declare function field(type: Type, name: string, options: FieldOptions): Field; | ||
export declare function field(type: Type, name: string, options?: FieldOptions): Field; |
@@ -10,2 +10,5 @@ "use strict"; | ||
(function (Field) { | ||
/** | ||
* @hidden | ||
*/ | ||
function toProto(f) { | ||
@@ -18,2 +21,5 @@ return new proto_1.sajari.engine.schema.Field(deepmerge_1.default(f, { | ||
Field.toProto = toProto; | ||
/** | ||
* @hidden | ||
*/ | ||
function fromProto(f) { | ||
@@ -52,2 +58,5 @@ var err = proto_1.sajari.engine.schema.Field.verify(f); | ||
(function (Type) { | ||
/** | ||
* @hidden | ||
*/ | ||
function toProto(t) { | ||
@@ -70,2 +79,5 @@ switch (t) { | ||
Type.toProto = toProto; | ||
/** | ||
* @hidden | ||
*/ | ||
function fromProto(t) { | ||
@@ -106,2 +118,5 @@ switch (t) { | ||
(function (FieldMode) { | ||
/** | ||
* @hidden | ||
*/ | ||
function toProto(m) { | ||
@@ -118,2 +133,5 @@ switch (m) { | ||
FieldMode.toProto = toProto; | ||
/** | ||
* @hidden | ||
*/ | ||
function fromProto(m) { | ||
@@ -120,0 +138,0 @@ switch (m) { |
import { Field, FieldOptions, Type } from "./field"; | ||
export { Mutation, NameMutation, DescriptionMutation, TypeMutation, ModeMutation, RepeatedMutation } from "./mutation"; | ||
export { Mutation, NameMutation, DescriptionMutation, TypeMutation, RepeatedMutation } from "./mutation"; | ||
export { FieldMode } from "./field"; | ||
@@ -19,5 +19,4 @@ export { Schema } from "./client"; | ||
repeated: (b: boolean) => import("./mutation").RepeatedMutation; | ||
mode: (m: FieldMode) => import("./mutation").ModeMutation; | ||
}; | ||
}; | ||
export default _default; |
@@ -5,2 +5,4 @@ "use strict"; | ||
var mutation_1 = require("./mutation"); | ||
var mutation_2 = require("./mutation"); | ||
exports.Mutation = mutation_2.Mutation; | ||
var field_2 = require("./field"); | ||
@@ -7,0 +9,0 @@ exports.FieldMode = field_2.FieldMode; |
@@ -1,3 +0,10 @@ | ||
import { FieldMode, Type } from "./field"; | ||
export declare type Mutation = NameMutation | DescriptionMutation | TypeMutation | RepeatedMutation | ModeMutation; | ||
import { sajari } from "../../generated/proto"; | ||
import { Type } from "./field"; | ||
export declare type Mutation = NameMutation | DescriptionMutation | TypeMutation | RepeatedMutation; | ||
export declare namespace Mutation { | ||
/** | ||
* @hidden | ||
*/ | ||
function toProto(m: Mutation): sajari.engine.schema.MutateFieldRequest.Mutation; | ||
} | ||
export interface NameMutation { | ||
@@ -15,5 +22,2 @@ name: string; | ||
} | ||
export interface ModeMutation { | ||
mode: FieldMode; | ||
} | ||
declare function name(n: string): NameMutation; | ||
@@ -23,3 +27,2 @@ declare function description(d: string): DescriptionMutation; | ||
declare function repeated(b: boolean): RepeatedMutation; | ||
declare function mode(m: FieldMode): ModeMutation; | ||
export declare const mutation: { | ||
@@ -30,4 +33,3 @@ name: typeof name; | ||
repeated: typeof repeated; | ||
mode: typeof mode; | ||
}; | ||
export {}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var proto_1 = require("../../generated/proto"); | ||
var field_1 = require("./field"); | ||
var Mutation; | ||
(function (Mutation) { | ||
/** | ||
* @hidden | ||
*/ | ||
function toProto(m) { | ||
var mut = m; | ||
if ("type" in mut) { | ||
mut.type = field_1.Type.toProto(mut.type); | ||
} | ||
return proto_1.sajari.engine.schema.MutateFieldRequest.Mutation.create(mut); | ||
} | ||
Mutation.toProto = toProto; | ||
})(Mutation = exports.Mutation || (exports.Mutation = {})); | ||
function name(n) { | ||
@@ -23,7 +39,2 @@ return { | ||
} | ||
function mode(m) { | ||
return { | ||
mode: m | ||
}; | ||
} | ||
exports.mutation = { | ||
@@ -33,4 +44,3 @@ name: name, | ||
type: type, | ||
repeated: repeated, | ||
mode: mode | ||
repeated: repeated | ||
}; |
@@ -5,2 +5,3 @@ "use strict"; | ||
var field_1 = require("./field"); | ||
var mutation_1 = require("./mutation"); | ||
/** | ||
@@ -22,12 +23,3 @@ * @hidden | ||
function createMutateFieldRequest(name, mutations) { | ||
var engineMutations = mutations.map(function (mutation) { | ||
// @ts-ignore: if the mutation is a schema field type mutation we | ||
// need to convert to the correct proto message type | ||
if (mutation.type !== undefined) { | ||
// @ts-ignore | ||
return { type: field_1.Type.toProto(mutation.type) }; | ||
} | ||
return mutation; | ||
}); | ||
var req = { name: name, mutations: engineMutations }; | ||
var req = { name: name, mutations: mutations.map(mutation_1.Mutation.toProto) }; | ||
var err = proto_1.sajari.engine.schema.MutateFieldRequest.verify(req); | ||
@@ -37,6 +29,4 @@ if (err) { | ||
} | ||
// FIXME(@benhinchley): type error due to merge above. | ||
// @ts-ignore | ||
return proto_1.sajari.engine.schema.MutateFieldRequest.create(req); | ||
} | ||
exports.createMutateFieldRequest = createMutateFieldRequest; |
@@ -7,3 +7,3 @@ import { sajari } from "../generated/proto"; | ||
*/ | ||
function toProto(v: Value): sajari.engine.Value; | ||
function toProto(v: Value): sajari.engine.Value | undefined; | ||
/** | ||
@@ -23,5 +23,3 @@ * @hidden | ||
export declare class MultiError extends Error { | ||
errors: { | ||
[k: number]: Error; | ||
}; | ||
errors: Errors; | ||
constructor(errors: { | ||
@@ -38,2 +36,10 @@ [k: number]: Error; | ||
*/ | ||
export declare class Errors extends Array<Error> { | ||
constructor(errors: { | ||
[k: number]: Error; | ||
}); | ||
} | ||
/** | ||
* @hidden | ||
*/ | ||
export declare const deadline: (seconds: number) => number; |
"use strict"; | ||
// tslint:disable:max-classes-per-file | ||
var __extends = (this && this.__extends) || (function () { | ||
@@ -28,5 +29,6 @@ var extendStatics = function (d, b) { | ||
} | ||
else { | ||
else if (typeof value === "string") { | ||
return new proto_1.sajari.engine.Value({ single: value }); | ||
} | ||
return undefined; | ||
} | ||
@@ -53,3 +55,3 @@ Value.toProto = toProto; | ||
/** | ||
* convertTypes takes in a value and converts the underlaying value | ||
* convertTypes takes in any value and converts the underlaying value | ||
* into its string representation | ||
@@ -62,3 +64,6 @@ * @hidden | ||
} | ||
else if (v === null) { | ||
else if (v instanceof Date) { | ||
return String(Math.floor(v.valueOf() / 1000)); | ||
} | ||
else if (v === null || v === undefined) { | ||
return null; | ||
@@ -125,3 +130,3 @@ } | ||
}; | ||
_this.errors = errors; | ||
_this.errors = new Errors(errors); | ||
_this.message = _this.messageCreator(); | ||
@@ -136,4 +141,22 @@ return _this; | ||
*/ | ||
var Errors = /** @class */ (function (_super) { | ||
__extends(Errors, _super); | ||
function Errors(errors) { | ||
var _this = this; | ||
var lastIdx = Object.keys(errors).pop(); | ||
_this = _super.call(this, parseInt(lastIdx || "", 10)) || this; | ||
Object.keys(errors).forEach(function (key) { | ||
var idx = parseInt(key, 10); | ||
_this[idx] = errors[idx]; | ||
}); | ||
return _this; | ||
} | ||
return Errors; | ||
}(Array)); | ||
exports.Errors = Errors; | ||
/** | ||
* @hidden | ||
*/ | ||
exports.deadline = function (seconds) { | ||
return new Date().setSeconds(new Date().getSeconds() + seconds); | ||
}; |
{ | ||
"name": "@sajari/sdk-node", | ||
"version": "1.0.0-alpha.10", | ||
"version": "1.0.0-beta", | ||
"main": "dist/index.js", | ||
@@ -14,2 +14,5 @@ "types": "dist/index.d.ts", | ||
], | ||
"engines": { | ||
"node": ">= 10.0.0" | ||
}, | ||
"scripts": { | ||
@@ -20,3 +23,7 @@ "prebuild": "npm-run-all lint test", | ||
"lint": "tslint --fix -p tsconfig.json", | ||
"type-check": "tsc --noEmit", | ||
"pretest": "npm-run-all type-check", | ||
"test": "jest", | ||
"test:watch": "jest --watch", | ||
"coverage": "jest --coverage", | ||
"gen:proto": "node scripts/genproto", | ||
@@ -23,0 +30,0 @@ "docs": "typedoc ./src/index.ts --mode file --out ./docs --exclude \"**/*+(.test).ts\"", |
2730463
46599