diff --git a/lib/babilon.d.ts b/lib/babilon.d.ts index c397a45..7a71040 100644 --- a/lib/babilon.d.ts +++ b/lib/babilon.d.ts @@ -9,25 +9,25 @@ export interface IStep { export interface IValidator { (last: IStep, flow: IFlow): void; } -export interface IValidators { - [exp: string]: IValidator; -} export interface IResolver { - (last: any, flow: any): void; + (last: IStep, flow: IFlow): void; } export interface IError { path: number[]; emitter: string; message: string; } +export interface IThrow { + (emitter: string, message: string): any; +} export interface IFlow { exp: TExp; variables?: {}; path?: IStep[]; - validators?: IValidators; validate?: IValidator; resolver?: IResolver; errors?: IError[]; + throw?: IThrow; result?: any; resolveMemory?: any; validateMemory?: any; @@ -35,9 +35,7 @@ export interface IFlow { export interface IBabilon { (flow: IFlow): IFlow; } -export declare const router: (flow: any) => void; -export declare const validate: (last: IStep, flow: IFlow) => void; -export declare const error: (emitter: any, message: any, flow: IFlow) => void; +export declare const defaultThrow: IThrow; export declare const back: (last: any, flow: any) => void; export declare const babilon: IBabilon; export default babilon; diff --git a/lib/babilon.js b/lib/babilon.js index b79e0f6..97517ea 100644 --- a/lib/babilon.js +++ b/lib/babilon.js @@ -1,29 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _ = require("lodash"); -const validators_1 = require("./validators"); -exports.router = (flow) => { -}; -exports.validate = (last, flow) => { - if (!_.isArray(last.exp) || !_.isString(last.exp[0])) { - exports.error('validate', 'is not expression', flow); - } - else { - if (!flow.validators[last.exp[0]]) { - exports.error('validate', `unexpected exp ${last.exp[0]}`, flow); - } - else { - flow.validators[last.exp[0]](last, flow); - } - } -}; -exports.error = (emitter, message, flow) => { - const last = _.last(flow.path); +exports.defaultThrow = function (emitter, message) { + const last = _.last(this.path); const path = []; - _.each(flow.path, p => _.isNumber(p.index) ? path.push(p.index) : null); + _.each(this.path, p => _.isNumber(p.index) ? path.push(p.index) : null); const error = { emitter, message, path }; last.hasErrors = true; - flow.errors.push(error); + this.errors.push(error); }; exports.back = (last, flow) => { flow.path.pop(); @@ -32,9 +16,8 @@ exports.back = (last, flow) => { }; exports.babilon = (flow) => { flow.path = [{ exp: flow.exp, args: [] }]; - flow.validate = flow.validate || exports.validate; - flow.validators = flow.validators || validators_1.validators; flow.errors = []; + flow.throw = flow.throw || exports.defaultThrow; flow.toString = () => { if (flow.errors.length) { throw new Error(`${flow.errors[0].emitter} ${flow.errors[0].path.map(p => `[${p}]`).join('')}: ${flow.errors[0].message}`); diff --git a/lib/babilon.js.map b/lib/babilon.js.map index cf143b7..9c5ab9a 100644 --- a/lib/babilon.js.map +++ b/lib/babilon.js.map @@ -1 +1 @@ -{"version":3,"file":"babilon.js","sourceRoot":"","sources":["../src/lib/babilon.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"babilon.js","sourceRoot":"","sources":["../src/lib/babilon.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/proto-mongo.d.ts b/lib/proto-mongo.d.ts index 33f7f36..12ab935 100644 --- a/lib/proto-mongo.d.ts +++ b/lib/proto-mongo.d.ts @@ -1,74 +1,8 @@ -export declare const rules: { - types: { - data: string[]; - get: string[]; - logic: string[]; - check: string[]; - }; - expressions: { - data: { - args: string[]; - }; - variable: { - args: string[]; - }; - path: { - args: string[]; - all: string[]; - }; - alias: { - args: string[]; - }; - and: { - all: string[]; - }; - or: { - all: string[]; - }; - eq: { - args: string[]; - }; - not: { - args: string[]; - }; - gt: { - args: string[]; - }; - gte: { - args: string[]; - }; - lt: { - args: string[]; - }; - lte: { - args: string[]; - }; - order: { - args: string[]; - }; - orders: { - all: string[]; - }; - limit: { - args: string[]; - }; - skip: { - args: string[]; - }; - returns: { - all: string[]; - }; - from: { - args: string[]; - }; - select: { - unique: boolean; - all: string[]; - handle: (last: any, flow: any) => any; - }; - }; -}; -export declare const validators: {}; +import { IRules } from './rules'; +import { IValidator } from './babilon'; +export declare const types: any; +export declare const rules: IRules; +export declare const validate: IValidator; export declare const resolverOptions: { _logic(last: any, flow: any): { [x: string]: any; diff --git a/lib/proto-mongo.js b/lib/proto-mongo.js index aad8a89..9d9484a 100644 --- a/lib/proto-mongo.js +++ b/lib/proto-mongo.js @@ -3,39 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true }); const _ = require("lodash"); const validators_1 = require("./validators"); const rules_1 = require("./rules"); +exports.types = {}; +exports.types.data = ['undefined', 'string', 'number', 'boolean', 'object', 'array']; +exports.types.logic = ['!and', '!or']; +exports.types.check = ['!eq', '!not', '!gt', '!gte', '!lt', '!lte']; +exports.types.get = ['!data', '!variable']; exports.rules = { - types: { - data: ['undefined', 'string', 'number', 'boolean', 'object', 'array'], - get: ['!data', '!variable'], - logic: ['!and', '!or'], - check: ['!eq', '!not', '!gt', '!gte', '!lt', '!lte'], - }, - expressions: { - data: { args: [':data'] }, - variable: { args: ['string'] }, - path: { args: ['string'], all: ['string'] }, - alias: { args: ['string'] }, - and: { all: [':logic', ':check'] }, - or: { all: [':logic', ':check'] }, - eq: { args: ['!path', ':get'] }, - not: { args: ['!path', ':get'] }, - gt: { args: ['!path', ':get'] }, - gte: { args: ['!path', ':get'] }, - lt: { args: ['!path', ':get'] }, - lte: { args: ['!path', ':get'] }, - order: { args: ['!path', '?boolean'] }, - orders: { all: ['!order'] }, - limit: { args: ['number'] }, - skip: { args: ['number'] }, - returns: { all: ['!path'] }, - from: { args: ['!alias'] }, - select: { - unique: true, all: ['!returns', '!from', '!and', '!orders', '!limit', '!skip'], - handle: rules_1.rules.expressions.select.handle, - }, + data: { args: [{ variants: exports.types.data }] }, + variable: { args: [{ variants: ['string'] }] }, + path: { args: [{ variants: ['string'] }], all: ['string'] }, + alias: { args: [{ variants: ['string'] }, { variants: ['string'], optional: true }] }, + and: { all: [...exports.types.logic, ...exports.types.check] }, + or: { all: [...exports.types.logic, ...exports.types.check] }, + eq: { args: [{ variants: ['!path'] }, { variants: exports.types.get }] }, + not: { args: [{ variants: ['!path'] }, { variants: exports.types.get }] }, + gt: { args: [{ variants: ['!path'] }, { variants: exports.types.get }] }, + gte: { args: [{ variants: ['!path'] }, { variants: exports.types.get }] }, + lt: { args: [{ variants: ['!path'] }, { variants: exports.types.get }] }, + lte: { args: [{ variants: ['!path'] }, { variants: exports.types.get }] }, + order: { args: [{ variants: ['!path'] }, { variants: ['boolean'], optional: true }] }, + orders: { all: ['!order'] }, + limit: { args: [{ variants: ['number'] }] }, + skip: { args: [{ variants: ['number'] }] }, + returns: { all: ['!path'] }, + from: { all: ['!alias'] }, + select: { + unique: true, + all: ['!returns', '!from', '!and', '!orders', '!limit', '!skip'], + handle: rules_1.rules.select.handle, }, }; -exports.validators = validators_1.createValidators(exports.rules); +exports.validate = validators_1.createValidate(exports.rules); exports.resolverOptions = { _logic(last, flow) { return { [`$${last.exp[0]}`]: last.resolveMemory }; diff --git a/lib/proto-mongo.js.map b/lib/proto-mongo.js.map index 5830d22..24211f6 100644 --- a/lib/proto-mongo.js.map +++ b/lib/proto-mongo.js.map @@ -1 +1 @@ -{"version":3,"file":"proto-mongo.js","sourceRoot":"","sources":["../src/lib/proto-mongo.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"proto-mongo.js","sourceRoot":"","sources":["../src/lib/proto-mongo.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/proto-sql.d.ts b/lib/proto-sql.d.ts index b0f1eac..1413921 100644 --- a/lib/proto-sql.d.ts +++ b/lib/proto-sql.d.ts @@ -1,107 +1,8 @@ -export declare const rules: { - types: { - data: string[]; - get: string[]; - logic: string[]; - check: string[]; - operator: string[]; - fetch: string[]; - unions: string[]; - }; - expressions: { - data: { - args: string[]; - }; - variable: { - args: string[]; - }; - path: { - args: string[]; - all: string[]; - }; - alias: { - args: string[]; - }; - and: { - all: string[]; - }; - or: { - all: string[]; - }; - eq: { - args: string[]; - }; - not: { - args: string[]; - }; - gt: { - args: string[]; - }; - gte: { - args: string[]; - }; - lt: { - args: string[]; - }; - lte: { - args: string[]; - }; - add: { - all: string[]; - }; - plus: { - all: string[]; - }; - minus: { - all: string[]; - }; - multiply: { - all: string[]; - }; - divide: { - all: string[]; - }; - as: { - args: string[]; - }; - order: { - args: string[]; - }; - orders: { - all: string[]; - }; - group: { - args: string[]; - }; - groups: { - all: string[]; - }; - limit: { - args: string[]; - }; - skip: { - args: string[]; - }; - returns: { - all: string[]; - }; - from: { - all: string[]; - }; - select: { - unique: boolean; - all: string[]; - handle: (last: any, flow: any) => any; - }; - union: { - all: string[]; - }; - unionall: { - all: string[]; - }; - }; -}; -export declare const validators: {}; +import { IRules } from './rules'; +import { IValidator } from './babilon'; +export declare const types: any; +export declare const rules: IRules; +export declare const validate: IValidator; export declare const resolverOptions: { _column(name: any): string; _checks: { diff --git a/lib/proto-sql.js b/lib/proto-sql.js index 2ce4de9..151768b 100644 --- a/lib/proto-sql.js +++ b/lib/proto-sql.js @@ -3,52 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); const _ = require("lodash"); const validators_1 = require("./validators"); const rules_1 = require("./rules"); -exports.rules = { - types: { - data: ['string', 'number', 'boolean'], - get: ['!data', '!variable', '!path', ':logic', ':check', ':operator', ':fetch'], - logic: ['!and', '!or'], - check: ['!eq', '!not', '!gt', '!gte', '!lt', '!lte'], - operator: ['!add', '!plus', '!minus', '!multiply', '!divide'], - fetch: ['!select', ':unions'], - unions: ['!union', '!unionall'], - }, - expressions: { - data: { args: [':data'] }, - variable: { args: ['string'] }, - path: { args: ['string'], all: ['string'] }, - alias: { args: ['string', '?string'] }, - and: { all: [':get'] }, - or: { all: [':get'] }, - eq: { args: [':get', ':get'] }, - not: { args: [':get', ':get'] }, - gt: { args: [':get', ':get'] }, - gte: { args: [':get', ':get'] }, - lt: { args: [':get', ':get'] }, - lte: { args: [':get', ':get'] }, - add: { all: [':get'] }, - plus: { all: [':get'] }, - minus: { all: [':get'] }, - multiply: { all: [':get'] }, - divide: { all: [':get'] }, - as: { args: [':get', '?string'] }, - order: { args: ['!path', '?boolean'] }, - orders: { all: ['!order'] }, - group: { args: ['!path'] }, - groups: { all: ['!group'] }, - limit: { args: ['number'] }, - skip: { args: ['number'] }, - returns: { all: ['!as', '!path', ':get'] }, - from: { all: ['!alias'] }, - select: { - unique: true, all: ['!returns', '!from', '!and', '!orders', '!groups', '!limit', '!skip'], - handle: rules_1.rules.expressions.select.handle, - }, - union: { all: [':fetch'] }, - unionall: { all: [':fetch'] }, - }, -}; -exports.validators = validators_1.createValidators(exports.rules); +exports.types = {}; +exports.types.data = ['string', 'number', 'boolean']; +exports.types.logic = ['!and', '!or']; +exports.types.check = ['!eq', '!not', '!gt', '!gte', '!lt', '!lte']; +exports.types.operator = ['!add', '!plus', '!minus', '!multiply', '!divide']; +exports.types.unions = ['!union', '!unionall']; +exports.types.fetch = ['!select', ...exports.types.unions]; +exports.types.get = ['!data', '!variable', '!path', ...exports.types.logic, ...exports.types.check, ...exports.types.operator, ...exports.types.fetch]; +exports.rules = rules_1.createRules(exports.types); +exports.validate = validators_1.createValidate(exports.rules); exports.resolverOptions = { _column(name) { return `[${name}]`; diff --git a/lib/proto-sql.js.map b/lib/proto-sql.js.map index 301383c..424aede 100644 --- a/lib/proto-sql.js.map +++ b/lib/proto-sql.js.map @@ -1 +1 @@ -{"version":3,"file":"proto-sql.js","sourceRoot":"","sources":["../src/lib/proto-sql.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"proto-sql.js","sourceRoot":"","sources":["../src/lib/proto-sql.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/rules.d.ts b/lib/rules.d.ts index 0b26161..dc62563 100644 --- a/lib/rules.d.ts +++ b/lib/rules.d.ts @@ -1,26 +1,149 @@ +export interface IArg { + variants: string[]; + optional?: boolean; +} export interface IRule { - args?: string[]; + args?: IArg[]; all?: string[]; unique?: boolean; handle?: (last, flow) => any; } export interface IRules { - types: { - [name: string]: string[]; + [name: string]: IRule; +} +export declare const types: any; +export declare const createRules: (types: any) => { + data: { + args: { + variants: any; + }[]; }; - expressions: { - [name: string]: IRule; + variable: { + args: { + variants: string[]; + }[]; }; -} -export interface IRulesFinalized { - [name: string]: IRuleFinalized; -} -export interface IRuleFinalized { - args?: string[][]; - all?: string[]; - unique?: boolean; -} -export declare const finalizeVariants: (rules: IRules, variants: string[]) => any[]; -export declare const finalize: (rules: IRules, name: string) => IRuleFinalized; -export declare const finalizeRules: (rules: IRules) => IRulesFinalized; + path: { + args: { + variants: string[]; + }[]; + all: string[]; + }; + alias: { + args: ({ + variants: string[]; + optional?: undefined; + } | { + variants: string[]; + optional: boolean; + })[]; + }; + as: { + args: ({ + variants: any; + optional?: undefined; + } | { + variants: string[]; + optional: boolean; + })[]; + }; + and: { + all: any; + }; + or: { + all: any; + }; + eq: { + args: { + variants: any; + }[]; + }; + not: { + args: { + variants: any; + }[]; + }; + gt: { + args: { + variants: any; + }[]; + }; + gte: { + args: { + variants: any; + }[]; + }; + lt: { + args: { + variants: any; + }[]; + }; + lte: { + args: { + variants: any; + }[]; + }; + add: { + all: any; + }; + plus: { + all: any; + }; + minus: { + all: any; + }; + multiply: { + all: any; + }; + divide: { + all: any; + }; + order: { + args: ({ + variants: string[]; + optional?: undefined; + } | { + variants: string[]; + optional: boolean; + })[]; + }; + orders: { + all: string[]; + }; + group: { + args: { + variants: string[]; + }[]; + }; + groups: { + all: string[]; + }; + limit: { + args: { + variants: string[]; + }[]; + }; + skip: { + args: { + variants: string[]; + }[]; + }; + returns: { + all: any[]; + }; + from: { + all: string[]; + }; + select: { + unique: boolean; + all: string[]; + handle(last: any, flow: any): void; + }; + union: { + all: any; + }; + unionall: { + all: any; + }; +}; export declare const rules: IRules; diff --git a/lib/rules.js b/lib/rules.js index b97de0a..1b993da 100644 --- a/lib/rules.js +++ b/lib/rules.js @@ -1,109 +1,51 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const _ = require("lodash"); -const babilon_1 = require("./babilon"); -exports.finalizeVariants = (rules, variants) => { - const results = []; - _.each(variants, (variant) => { - if (variant[0] === ':') - results.push(...exports.finalizeVariants(rules, rules.types[_.trimStart(variant, ':')])); - else - results.push(variant); - }); - return results; -}; -exports.finalize = (rules, name) => { - if (!rules.expressions[name]) - return; - const result = { - name, - rule: rules.expressions[name], - }; - if (rules.expressions[name].args) { - result.args = []; - _.each(rules.expressions[name].args, (a) => { - const variants = []; - const arg = _.trimStart(a, '?'); - if (arg[0] === ':') { - variants.push(...exports.finalizeVariants(rules, rules.types[_.trimStart(arg, ':')])); +exports.types = {}; +exports.types.data = ['undefined', 'string', 'number', 'boolean', 'object', 'array']; +exports.types.logic = ['!and', '!or']; +exports.types.check = ['!eq', '!not', '!gt', '!gte', '!lt', '!lte']; +exports.types.operator = ['!add', '!plus', '!minus', '!multiply', '!divide']; +exports.types.unions = ['!union', '!unionall']; +exports.types.fetch = ['!select', ...exports.types.unions]; +exports.types.get = ['!data', '!variable', '!path', ...exports.types.logic, ...exports.types.check, ...exports.types.operator, ...exports.types.fetch]; +exports.createRules = types => ({ + data: { args: [{ variants: types.data }] }, + variable: { args: [{ variants: ['string'] }] }, + path: { args: [{ variants: ['string'] }], all: ['string'] }, + alias: { args: [{ variants: ['string'] }, { variants: ['string'], optional: true }] }, + as: { args: [{ variants: types.get }, { variants: ['string'], optional: true }] }, + and: { all: types.get }, + or: { all: types.get }, + eq: { args: [{ variants: types.get }, { variants: types.get }] }, + not: { args: [{ variants: types.get }, { variants: types.get }] }, + gt: { args: [{ variants: types.get }, { variants: types.get }] }, + gte: { args: [{ variants: types.get }, { variants: types.get }] }, + lt: { args: [{ variants: types.get }, { variants: types.get }] }, + lte: { args: [{ variants: types.get }, { variants: types.get }] }, + add: { all: types.get }, + plus: { all: types.get }, + minus: { all: types.get }, + multiply: { all: types.get }, + divide: { all: types.get }, + order: { args: [{ variants: ['!path'] }, { variants: ['boolean'], optional: true }] }, + orders: { all: ['!order'] }, + group: { args: [{ variants: ['!path'] }] }, + groups: { all: ['!group'] }, + limit: { args: [{ variants: ['number'] }] }, + skip: { args: [{ variants: ['number'] }] }, + returns: { all: ['!as', '!path', ...types.get] }, + from: { all: ['!alias'] }, + select: { + unique: true, + all: ['!returns', '!from', '!and', '!orders', '!groups', '!limit', '!skip'], + handle(last, flow) { + if (!last.validateMemory.expressions.from) { + flow.throw(last.exp[0], `"select" required "from"`, flow); } - else { - variants.push(arg); - } - result.args.push(variants); - }); - } - if (rules.expressions[name].all) { - result.all = []; - _.each(rules.expressions[name].all, (a) => { - const arg = _.trimStart(a, '?'); - if (arg[0] === ':') { - result.all.push(...exports.finalizeVariants(rules, rules.types[_.trimStart(arg, ':')])); - } - else { - result.all.push(arg); - } - }); - } - return result; -}; -exports.finalizeRules = (rules) => { - const finalized = {}; - _.each(rules.expressions, (rule, name) => { - finalized[name] = exports.finalize(rules, name); - }); - return finalized; -}; -exports.rules = { - types: { - data: ['undefined', 'string', 'number', 'boolean', 'object', 'array'], - get: ['!data', '!variable', '!path', ':logic', ':check', ':operator', ':fetch'], - logic: ['!and', '!or'], - check: ['!eq', '!not', '!gt', '!gte', '!lt', '!lte'], - operator: ['!add', '!plus', '!minus', '!multiply', '!divide'], - fetch: ['!select', ':unions'], - unions: ['!union', '!unionall'], - }, - expressions: { - data: { args: [':data'] }, - variable: { args: ['string'] }, - path: { args: ['string'], all: ['string'] }, - alias: { - args: ['string', '?string'], - }, - as: { args: [':get', '?string'] }, - and: { all: [':get'] }, - or: { all: [':get'] }, - eq: { args: [':get', ':get'] }, - not: { args: [':get', ':get'] }, - gt: { args: [':get', ':get'] }, - gte: { args: [':get', ':get'] }, - lt: { args: [':get', ':get'] }, - lte: { args: [':get', ':get'] }, - add: { all: [':get'] }, - plus: { all: [':get'] }, - minus: { all: [':get'] }, - multiply: { all: [':get'] }, - divide: { all: [':get'] }, - order: { args: ['!path', '?boolean'] }, - orders: { all: ['!order'] }, - group: { args: ['!path'] }, - groups: { all: ['!group'] }, - limit: { args: ['number'] }, - skip: { args: ['number'] }, - returns: { all: ['!as', '!path', ':get'] }, - from: { all: ['!alias'] }, - select: { - unique: true, - all: ['!returns', '!from', '!and', '!orders', '!groups', '!limit', '!skip'], - handle(last, flow) { - if (!last.validateMemory.expressions.from) { - babilon_1.error(last.exp[0], `select required expression from`, flow); - } - }, }, - union: { all: [':fetch'] }, - unionall: { all: [':fetch'] }, }, -}; + union: { all: types.fetch }, + unionall: { all: types.fetch }, +}); +exports.rules = exports.createRules(exports.types); //# sourceMappingURL=rules.js.map \ No newline at end of file diff --git a/lib/rules.js.map b/lib/rules.js.map index 2494ce4..6b48e7d 100644 --- a/lib/rules.js.map +++ b/lib/rules.js.map @@ -1 +1 @@ -{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/lib/rules.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/lib/rules.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/validators.d.ts b/lib/validators.d.ts index bd02a1b..bc42cdb 100644 --- a/lib/validators.d.ts +++ b/lib/validators.d.ts @@ -1,6 +1,3 @@ import { IRules } from './rules'; -export declare const isType: (last: any, rules: any, exp: any, arg: any, i: any) => boolean; -export declare const isTypes: (last: any, rules: any, types: any, exp: any, i: any) => boolean; -export declare const isArg: (last: any, rules: any, arg: any, exp: any, i: any) => boolean; -export declare const createValidators: (rules: IRules) => {}; -export declare const validators: {}; +import { IValidator } from './babilon'; +export declare const createValidate: (rules: IRules) => IValidator; diff --git a/lib/validators.js b/lib/validators.js index 37b47b0..2ebdf11 100644 --- a/lib/validators.js +++ b/lib/validators.js @@ -1,91 +1,85 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _ = require("lodash"); -const babilon_1 = require("./babilon"); -const rules_1 = require("./rules"); -exports.isType = (last, rules, exp, arg, i) => { - if (arg[0] === ':') { - const type = _.trimStart(arg, ':'); - if (!rules.types[type]) - throw new Error(`type ${arg} is not defined`); - if (exports.isTypes(last, rules, rules.types[type], exp, i)) { - return true; - } - } - else if (arg[0] === '!') { - if (_.isArray(exp) && exp[0] === _.trimStart(arg, '!')) { - last.args[i] = exp; - last.validateMemory.expressions[exp[0]] = true; - return true; - } - } - else if (_.includes(['undefined', 'string', 'number', 'boolean', 'object', 'array'], arg)) { - if (_[`is${_.capitalize(arg)}`](exp)) { - last.args[i] = undefined; - return true; - } +exports.createValidate = (rules) => (last, flow) => { + if (!_.isArray(last.exp) || !_.isString(last.exp[0])) { + return flow.throw('validate', 'is not expression'); } -}; -exports.isTypes = (last, rules, types, exp, i) => { - let t; - for (t = 0; t < types.length; t++) { - if (exports.isType(last, rules, exp, types[t], i)) - return true; + if (!rules[last.exp[0]]) { + return flow.throw('validate', `unexpected exp ${last.exp[0]}`); } - return false; -}; -exports.isArg = (last, rules, arg, exp, i) => { - const _arg = _.trimStart(arg, '?'); - if (exports.isType(last, rules, exp, _arg, i)) - return true; - return false; -}; -exports.createValidators = (rules) => { - const validators = {}; - _.each(rules.expressions, (rule, name) => { - validators[name] = (last, flow) => { - flow.validateMemory = flow.validateMemory || { aliases: [], selects: [] }; - last.validateMemory = last.validateMemory || { expressions: {} }; - if (rule.args) { - let a; - for (a = 0; a < rule.args.length; a++) { - if (last.exp.length < a + 2) { - if (rule.args[a][0] !== '?') { - return babilon_1.error(last.exp[0], `arg [${a}] ${rule.args[a]} is not defined`, flow); + flow.validateMemory = flow.validateMemory || { aliases: [], selects: [] }; + last.validateMemory = last.validateMemory || { expressions: {} }; + const rule = rules[last.exp[0]]; + if (rule.args) { + let a; + args: for (a = 0; a < rule.args.length; a++) { + const arg = rule.args[a]; + const exp = last.exp[a + 1]; + if (last.exp.length < a + 2) { + if (!arg.optional) { + flow.throw(last.exp[0], `arg [${a}] types ${arg.optional ? '?' : ''}[${arg.variants}] is not defined`); + } + } + else { + let v; + for (v in arg.variants) { + const variant = arg.variants[v]; + if (variant[0] === '!') { + if (_.isArray(exp) && '!' + exp[0] === variant) { + last.args[a] = exp; + continue args; } } - else { - if (!exports.isArg(last, rules, rule.args[a], last.exp[a + 1], a)) { - return babilon_1.error(last.exp[0], `arg [${a}] is not ${rule.args[a]}`, flow); + else if (_.includes(['undefined', 'string', 'number', 'boolean', 'object', 'array'], variant)) { + if (_[`is${_.capitalize(variant)}`](exp)) { + last.args[a] = undefined; + continue args; } } } + flow.throw(last.exp[0], `arg [${a}] is not ${arg.optional ? '?' : ''}[${arg.variants}]`); + } + } + } + if (rule.all) { + const repeats = {}; + let a; + args: for (a = 1; a < last.exp.length; a++) { + const exp = last.exp[a]; + let v; + if (_.isArray(exp)) { + repeats[exp[0]] = repeats[exp[0]] + 1 || 1; + if (repeats[exp[0]] > 1 && rule.unique) { + flow.throw(last.exp[0], `arg [${a - 1}] duplicates "${exp[0]}"`); + } } + last.validateMemory.expressions[exp[0]] = true; if (rule.all) { - let e; - const repeats = {}; - for (e = 1; e < last.exp.length; e++) { - if (!exports.isTypes(last, rules, rule.all, last.exp[e], e - 1)) { - return babilon_1.error(last.exp[0], `arg [${e - 1}] not all correspond to the type [${rule.all}]`, flow); + for (v in rule.all) { + const variant = rule.all[v]; + if (variant[0] === '!') { + if (_.isArray(exp) && '!' + exp[0] === variant) { + last.args[a - 1] = exp; + continue args; + } } - if (_.isArray(last.exp[e])) { - repeats[last.exp[e][0]] = repeats[last.exp[e][0]] || 0; - repeats[last.exp[e][0]]++; - if (repeats[last.exp[e][0]] > 1 && rule.unique) { - return babilon_1.error(last.exp[0], `arg [${e - 1}] has duplicates of ${last.exp[e][0]}`, flow); + else if (_.includes(['undefined', 'string', 'number', 'boolean', 'object', 'array'], variant)) { + if (_[`is${_.capitalize(variant)}`](exp)) { + last.args[a - 1] = undefined; + continue args; } } } + flow.throw(last.exp[0], `arg [${a - 1}] not all correspond to [${rule.all}]`); } - if (name === 'select') - flow.validateMemory.selects.push(last); - if (name === 'alias') - flow.validateMemory.aliases.push(last); - if (rule.handle) - rule.handle(last, flow); - }; - }); - return validators; + } + } + if (last.exp[0] === 'select') + flow.validateMemory.selects.push(last); + if (last.exp[0] === 'alias') + flow.validateMemory.aliases.push(last); + if (rule.handle) + rule.handle(last, flow); }; -exports.validators = exports.createValidators(rules_1.rules); //# sourceMappingURL=validators.js.map \ No newline at end of file diff --git a/lib/validators.js.map b/lib/validators.js.map index 22d3642..e8c7bec 100644 --- a/lib/validators.js.map +++ b/lib/validators.js.map @@ -1 +1 @@ -{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/lib/validators.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/lib/validators.ts"],"names":[],"mappings":";;AAAA,4BAA4B;AAKf,QAAA,cAAc,GAAG,CAAC,KAAa,EAAc,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IAC1E,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;KACpD;IACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,kBAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAChE;IAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC1E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAEjE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,IAAI,CAAC,CAAC;QACN,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;oBACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ,kBAAkB,CAAC,CAAC;iBACxG;aACF;iBAAM;gBACL,IAAI,CAAC,CAAC;gBACN,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE;oBACtB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;wBACtB,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;4BAC9C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;4BACnB,SAAS,IAAI,CAAC;yBACf;qBACF;yBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;wBAC1F,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;4BACxC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;4BACzB,SAAS,IAAI,CAAC;yBACf;qBACF;iBACF;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;aAC1F;SACF;KACF;IACD,IAAI,IAAI,CAAC,GAAG,EAAE;QACZ,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC;QACN,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC;YAEN,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAClB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;oBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBAClE;aACF;YAED,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAE/C,IAAI,IAAI,CAAC,GAAG,EAAE;gBACZ,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;oBAClB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;wBACtB,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;4BAC9C,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;4BACvB,SAAS,IAAI,CAAC;yBACf;qBACF;yBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;wBAC1F,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;4BACxC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;4BAC7B,SAAS,IAAI,CAAC;yBACf;qBACF;iBACF;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;aAC/E;SACF;KACF;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;QAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC,CAAC"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 193e046..588f6e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "ancient-babilon", - "version": "0.0.10", + "version": "0.0.11", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5ccce2d..0e38245 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ancient-babilon", - "version": "0.0.11", + "version": "0.1.0", "description": "One data query language will rule them all.", "bugs": "https://github.com/AncientSouls/Babilon/issues", "repository": "AncientSouls/Babilon", diff --git a/src/lib/babilon.ts b/src/lib/babilon.ts index c99eecf..5278518 100644 --- a/src/lib/babilon.ts +++ b/src/lib/babilon.ts @@ -1,7 +1,5 @@ import * as _ from 'lodash'; -import { validators } from './validators'; - export type TExp = any[]; export interface IStep { @@ -16,12 +14,8 @@ export interface IValidator { (last: IStep, flow: IFlow): void; } -export interface IValidators { - [exp: string]: IValidator; -} - export interface IResolver { - (last, flow): void; + (last: IStep, flow: IFlow): void; } export interface IError { @@ -30,15 +24,20 @@ export interface IError { message: string; } +export interface IThrow { + (emitter: string, message: string); +} + export interface IFlow { exp: TExp; variables?: {}; path?: IStep[]; - validators?: IValidators; validate?: IValidator; resolver?: IResolver; errors?: IError[]; + throw?: IThrow; result?: any; + resolveMemory?: any; validateMemory?: any; } @@ -47,28 +46,13 @@ export interface IBabilon { (flow: IFlow): IFlow; } -export const router = (flow) => { -}; - -export const validate = (last: IStep, flow: IFlow) => { - if (!_.isArray(last.exp) || !_.isString(last.exp[0])) { - error('validate', 'is not expression', flow); - } else { - if (!flow.validators[last.exp[0]]) { - error('validate', `unexpected exp ${last.exp[0]}`, flow); - } else { - flow.validators[last.exp[0]](last, flow); - } - } -}; - -export const error = (emitter, message, flow: IFlow) => { - const last = _.last(flow.path); +export const defaultThrow: IThrow = function (emitter, message) { + const last: IStep = _.last(this.path); const path = []; - _.each(flow.path, p => _.isNumber(p.index) ? path.push(p.index) : null); + _.each(this.path, p => _.isNumber(p.index) ? path.push(p.index) : null); const error = { emitter, message, path }; last.hasErrors = true; - flow.errors.push(error); + this.errors.push(error); }; export const back = (last, flow) => { @@ -78,9 +62,9 @@ export const back = (last, flow) => { export const babilon: IBabilon = (flow) => { flow.path = [{ exp: flow.exp, args: [] }]; - flow.validate = flow.validate || validate; - flow.validators = flow.validators || validators; flow.errors = []; + flow.throw = flow.throw || defaultThrow; + flow.toString = () => { if (flow.errors.length) { throw new Error(`${flow.errors[0].emitter} ${flow.errors[0].path.map(p => `[${p}]`).join('')}: ${flow.errors[0].message}`); diff --git a/src/lib/proto-mongo.ts b/src/lib/proto-mongo.ts index c0d1341..106cd35 100644 --- a/src/lib/proto-mongo.ts +++ b/src/lib/proto-mongo.ts @@ -1,48 +1,47 @@ import * as _ from 'lodash'; -import { createValidators } from './validators'; -import { rules as _rules } from './rules'; +import { createValidate } from './validators'; +import { createRules, IRules, rules as defaultRules } from './rules'; +import { IValidator } from './babilon'; -export const rules = { - types: { - data: ['undefined','string','number','boolean','object','array'], - get: ['!data','!variable'], - logic: ['!and','!or'], - check: ['!eq','!not','!gt','!gte','!lt','!lte'], - }, - expressions: { - data: { args: [':data'] }, - variable: { args: ['string'] }, - path: { args: ['string'], all: ['string'] }, - alias: { args: ['string'] }, +export const types: any = {}; +types.data = ['undefined','string','number','boolean','object','array']; +types.logic = ['!and','!or']; +types.check = ['!eq','!not','!gt','!gte','!lt','!lte']; +types.get = ['!data','!variable']; + +export const rules: IRules = { + data: { args: [{ variants: types.data }] }, + variable: { args: [{ variants: ['string'] }] }, + path: { args: [{ variants: ['string'] }], all: ['string'] }, + alias: { args: [{ variants: ['string'] }, { variants: ['string'], optional: true }] }, - and: { all: [':logic',':check'] }, - or: { all: [':logic',':check'] }, + and: { all: [...types.logic,...types.check] }, + or: { all: [...types.logic,...types.check] }, - eq: { args: ['!path',':get'] }, - not: { args: ['!path',':get'] }, - gt: { args: ['!path',':get'] }, - gte: { args: ['!path',':get'] }, - lt: { args: ['!path',':get'] }, - lte: { args: ['!path',':get'] }, - - order: { args: ['!path','?boolean'] }, - orders: { all: ['!order'] }, + eq: { args: [{ variants: ['!path'] },{ variants: types.get }] }, + not: { args: [{ variants: ['!path'] },{ variants: types.get }] }, + gt: { args: [{ variants: ['!path'] },{ variants: types.get }] }, + gte: { args: [{ variants: ['!path'] },{ variants: types.get }] }, + lt: { args: [{ variants: ['!path'] },{ variants: types.get }] }, + lte: { args: [{ variants: ['!path'] },{ variants: types.get }] }, + + order: { args: [{ variants: ['!path'] }, { variants: ['boolean'], optional: true }] }, + orders: { all: ['!order'] }, - limit: { args: ['number'] }, - skip: { args: ['number'] }, + limit: { args: [{ variants: ['number'] }] }, + skip: { args: [{ variants: ['number'] }] }, - returns: { all: ['!path'] }, - from: { args: ['!alias'] }, + returns: { all: ['!path'] }, + from: { all: ['!alias'] }, - select: { - unique: true, all: ['!returns','!from','!and','!orders','!limit','!skip'], - handle: _rules.expressions.select.handle, - }, + select: { + unique: true, + all: ['!returns','!from','!and','!orders','!limit','!skip'], + handle: defaultRules.select.handle, }, }; - -export const validators = createValidators(rules); +export const validate = createValidate(rules); export const resolverOptions = { _logic(last, flow) { diff --git a/src/lib/proto-sql.ts b/src/lib/proto-sql.ts index e2a7cb7..6d5eb65 100644 --- a/src/lib/proto-sql.ts +++ b/src/lib/proto-sql.ts @@ -1,65 +1,21 @@ import * as _ from 'lodash'; -import { createValidators } from './validators'; -import { rules as _rules } from './rules'; - -export const rules = { - types: { - data: ['string','number','boolean'], - get: ['!data','!variable','!path',':logic',':check',':operator',':fetch'], - logic: ['!and','!or'], - check: ['!eq','!not','!gt','!gte','!lt','!lte'], - operator: ['!add','!plus','!minus','!multiply','!divide'], - fetch: ['!select',':unions'], - unions: ['!union','!unionall'], - }, - expressions: { - data: { args: [':data'] }, - variable: { args: ['string'] }, - path: { args: ['string'], all: ['string'] }, - alias: { args: ['string', '?string'] }, - - and: { all: [':get'] }, - or: { all: [':get'] }, - - eq: { args: [':get',':get'] }, - not: { args: [':get',':get'] }, - gt: { args: [':get',':get'] }, - gte: { args: [':get',':get'] }, - lt: { args: [':get',':get'] }, - lte: { args: [':get',':get'] }, - - add: { all: [':get'] }, - plus: { all: [':get'] }, - minus: { all: [':get'] }, - multiply: { all: [':get'] }, - divide: { all: [':get'] }, - - as: { args: [':get','?string'] }, - - order: { args: ['!path','?boolean'] }, - orders: { all: ['!order'] }, - - group: { args: ['!path'] }, - groups: { all: ['!group'] }, - - limit: { args: ['number'] }, - skip: { args: ['number'] }, - - returns: { all: ['!as','!path',':get'] }, - from: { all: ['!alias'] }, - - select: { - unique: true, all: ['!returns','!from','!and','!orders','!groups','!limit','!skip'], - handle: _rules.expressions.select.handle, - }, - - union: { all: [':fetch'] }, - unionall: { all: [':fetch'] }, - }, -}; - -export const validators = createValidators(rules); +import { createValidate } from './validators'; +import { createRules, IRules } from './rules'; +import { IValidator } from './babilon'; + +export const types: any = {}; +types.data = ['string','number','boolean']; +types.logic = ['!and','!or']; +types.check = ['!eq','!not','!gt','!gte','!lt','!lte']; +types.operator = ['!add','!plus','!minus','!multiply','!divide']; +types.unions = ['!union','!unionall']; +types.fetch = ['!select',...types.unions]; +types.get = ['!data','!variable','!path',...types.logic,...types.check,...types.operator,...types.fetch]; + + +export const rules: IRules = createRules(types); +export const validate = createValidate(rules); export const resolverOptions = { _column(name) { diff --git a/src/lib/rules.ts b/src/lib/rules.ts index 5a822ae..b9ab64e 100644 --- a/src/lib/rules.ts +++ b/src/lib/rules.ts @@ -1,140 +1,78 @@ import * as _ from 'lodash'; -import { error } from './babilon'; +export interface IArg { + variants: string[]; + optional?: boolean; +} export interface IRule { - args?: string[]; + args?: IArg[]; all?: string[]; unique?: boolean; handle?: (last, flow) => any; } export interface IRules { - types: { [name: string]: string[] }; - expressions: { - [name: string]: IRule; - }; -} - -export interface IRulesFinalized { - [name: string]: IRuleFinalized; + [name: string]: IRule; } -export interface IRuleFinalized { - args?: string[][]; - all?: string[]; - unique?: boolean; -} - -export const finalizeVariants = (rules: IRules, variants: string[]) => { - const results = []; - _.each(variants, (variant) => { - if (variant[0] === ':') results.push(...finalizeVariants(rules, rules.types[_.trimStart(variant, ':')])); - else results.push(variant); - }); - return results; -}; - -export const finalize = (rules: IRules, name: string): IRuleFinalized => { - if (!rules.expressions[name]) return; - const result: any = { - name, - rule: rules.expressions[name], - }; - if (rules.expressions[name].args) { - result.args = []; - _.each(rules.expressions[name].args, (a) => { - const variants = []; - const arg = _.trimStart(a, '?'); - if (arg[0] === ':') { - variants.push(...finalizeVariants(rules, rules.types[_.trimStart(arg, ':')])); - } else { - variants.push(arg); - } - result.args.push(variants); - }); - } - if (rules.expressions[name].all) { - result.all = []; - _.each(rules.expressions[name].all, (a) => { - const arg = _.trimStart(a, '?'); - if (arg[0] === ':') { - result.all.push(...finalizeVariants(rules, rules.types[_.trimStart(arg, ':')])); - } else { - result.all.push(arg); +export const types: any = {}; +types.data = ['undefined','string','number','boolean','object','array']; +types.logic = ['!and','!or']; +types.check = ['!eq','!not','!gt','!gte','!lt','!lte']; +types.operator = ['!add','!plus','!minus','!multiply','!divide']; +types.unions = ['!union','!unionall']; +types.fetch = ['!select',...types.unions]; +types.get = ['!data','!variable','!path',...types.logic,...types.check,...types.operator,...types.fetch]; + +export const createRules = types => ({ + data: { args: [{ variants: types.data }] }, + variable: { args: [{ variants: ['string'] }] }, + path: { args: [{ variants: ['string'] }], all: ['string'] }, + alias: { args: [{ variants: ['string'] }, { variants: ['string'], optional: true }] }, + as: { args: [{ variants: types.get }, { variants: ['string'], optional: true }] }, + + and: { all: types.get }, + or: { all: types.get }, + + eq: { args: [{ variants: types.get },{ variants: types.get }] }, + not: { args: [{ variants: types.get },{ variants: types.get }] }, + gt: { args: [{ variants: types.get },{ variants: types.get }] }, + gte: { args: [{ variants: types.get },{ variants: types.get }] }, + lt: { args: [{ variants: types.get },{ variants: types.get }] }, + lte: { args: [{ variants: types.get },{ variants: types.get }] }, + + add: { all: types.get }, + plus: { all: types.get }, + minus: { all: types.get }, + multiply: { all: types.get }, + divide: { all: types.get }, + + order: { args: [{ variants: ['!path'] }, { variants: ['boolean'], optional: true }] }, + orders: { all: ['!order'] }, + + group: { args: [{ variants: ['!path'] }] }, + groups: { all: ['!group'] }, + + limit: { args: [{ variants: ['number'] }] }, + skip: { args: [{ variants: ['number'] }] }, + + returns: { all: ['!as','!path',...types.get] }, + from: { all: ['!alias'] }, + + select: { + unique: true, + all: ['!returns','!from','!and','!orders','!groups','!limit','!skip'], + + handle(last, flow) { + if (!last.validateMemory.expressions.from) { + flow.throw(last.exp[0], `"select" required "from"`, flow); } - }); - } - return result; -}; - -export const finalizeRules = (rules: IRules): IRulesFinalized => { - const finalized = {}; - _.each(rules.expressions, (rule, name) => { - finalized[name] = finalize(rules, name); - }); - return finalized; -}; - -export const rules: IRules = { - types: { - data: ['undefined','string','number','boolean','object','array'], - get: ['!data','!variable','!path',':logic',':check',':operator',':fetch'], - logic: ['!and','!or'], - check: ['!eq','!not','!gt','!gte','!lt','!lte'], - operator: ['!add','!plus','!minus','!multiply','!divide'], - fetch: ['!select',':unions'], - unions: ['!union','!unionall'], - }, - expressions: { - data: { args: [':data'] }, - variable: { args: ['string'] }, - path: { args: ['string'], all: ['string'] }, - alias: { - args: ['string', '?string'], }, - as: { args: [':get','?string'] }, - - and: { all: [':get'] }, - or: { all: [':get'] }, - - eq: { args: [':get',':get'] }, - not: { args: [':get',':get'] }, - gt: { args: [':get',':get'] }, - gte: { args: [':get',':get'] }, - lt: { args: [':get',':get'] }, - lte: { args: [':get',':get'] }, - - add: { all: [':get'] }, - plus: { all: [':get'] }, - minus: { all: [':get'] }, - multiply: { all: [':get'] }, - divide: { all: [':get'] }, - - order: { args: ['!path','?boolean'] }, - orders: { all: ['!order'] }, - - group: { args: ['!path'] }, - groups: { all: ['!group'] }, - - limit: { args: ['number'] }, - skip: { args: ['number'] }, - - returns: { all: ['!as','!path',':get'] }, - from: { all: ['!alias'] }, + }, - select: { - unique: true, - all: ['!returns','!from','!and','!orders','!groups','!limit','!skip'], + union: { all: types.fetch }, + unionall: { all: types.fetch }, +}); - handle(last, flow) { - if (!last.validateMemory.expressions.from) { - error(last.exp[0], `select required expression from`, flow); - } - }, - }, - - union: { all: [':fetch'] }, - unionall: { all: [':fetch'] }, - }, -}; +export const rules: IRules = createRules(types); diff --git a/src/lib/validators.ts b/src/lib/validators.ts index 34a9207..26c7945 100644 --- a/src/lib/validators.ts +++ b/src/lib/validators.ts @@ -1,87 +1,85 @@ import * as _ from 'lodash'; -import { error } from './babilon'; -import { IRules, rules } from './rules'; +import { IRules } from './rules'; +import { IValidator } from './babilon'; -export const isType = (last, rules, exp, arg, i) => { - if (arg[0] === ':') { - const type = _.trimStart(arg, ':'); - if (!rules.types[type]) throw new Error(`type ${arg} is not defined`); - if (isTypes(last, rules, rules.types[type], exp, i)) { - return true; - } - } else if (arg[0] === '!') { - if (_.isArray(exp) && exp[0] === _.trimStart(arg, '!')) { - last.args[i] = exp; - last.validateMemory.expressions[exp[0]] = true; - return true; - } - } else if (_.includes(['undefined','string','number','boolean','object','array'], arg)) { - if (_[`is${_.capitalize(arg)}`](exp)) { - last.args[i] = undefined; - return true; - } +export const createValidate = (rules: IRules): IValidator => (last, flow) => { + if (!_.isArray(last.exp) || !_.isString(last.exp[0])) { + return flow.throw('validate', 'is not expression'); } -}; - -export const isTypes = (last, rules, types, exp, i) => { - let t; - for (t = 0; t < types.length; t++) { - if (isType(last, rules, exp, types[t], i)) return true; + if (!rules[last.exp[0]]) { + return flow.throw('validate', `unexpected exp ${last.exp[0]}`); } - return false; -}; - -export const isArg = (last, rules, arg, exp, i) => { - const _arg = _.trimStart(arg, '?'); - if (isType(last, rules, exp, _arg, i)) return true; - return false; -}; -export const createValidators = (rules: IRules) => { - const validators = {}; - _.each(rules.expressions, (rule, name) => { - validators[name] = (last, flow) => { - flow.validateMemory = flow.validateMemory || { aliases: [], selects: [] }; - last.validateMemory = last.validateMemory || { expressions: {} }; + flow.validateMemory = flow.validateMemory || { aliases: [], selects: [] }; + last.validateMemory = last.validateMemory || { expressions: {} }; - if (rule.args) { - let a; - for (a = 0; a < rule.args.length; a++) { - if (last.exp.length < a + 2) { - if (rule.args[a][0] !== '?') { - return error(last.exp[0], `arg [${a}] ${rule.args[a]} is not defined`, flow); + const rule = rules[last.exp[0]]; + if (rule.args) { + let a; + args: for (a = 0; a < rule.args.length; a++) { + const arg = rule.args[a]; + const exp = last.exp[a + 1]; + if (last.exp.length < a + 2) { + if (!arg.optional) { + flow.throw(last.exp[0], `arg [${a}] types ${arg.optional ? '?' : ''}[${arg.variants}] is not defined`); + } + } else { + let v; + for (v in arg.variants) { + const variant = arg.variants[v]; + if (variant[0] === '!') { + if (_.isArray(exp) && '!' + exp[0] === variant) { + last.args[a] = exp; + continue args; } - } else { - if (!isArg(last, rules, rule.args[a], last.exp[a + 1], a)) { - return error(last.exp[0], `arg [${a}] is not ${rule.args[a]}`, flow); + } else if (_.includes(['undefined','string','number','boolean','object','array'], variant)) { + if (_[`is${_.capitalize(variant)}`](exp)) { + last.args[a] = undefined; + continue args; } } } + flow.throw(last.exp[0], `arg [${a}] is not ${arg.optional ? '?' : ''}[${arg.variants}]`); + } + } + } + if (rule.all) { + const repeats = {}; + let a; + args: for (a = 1; a < last.exp.length; a++) { + const exp = last.exp[a]; + let v; + + if (_.isArray(exp)) { + repeats[exp[0]] = repeats[exp[0]] + 1 || 1; + if (repeats[exp[0]] > 1 && rule.unique) { + flow.throw(last.exp[0], `arg [${a - 1}] duplicates "${exp[0]}"`); + } } + + last.validateMemory.expressions[exp[0]] = true; + if (rule.all) { - let e; - const repeats = {}; - for (e = 1; e < last.exp.length; e++) { - if (!isTypes(last, rules, rule.all, last.exp[e], e - 1)) { - return error(last.exp[0], `arg [${e - 1}] not all correspond to the type [${rule.all}]`, flow); - } - if (_.isArray(last.exp[e])) { - repeats[last.exp[e][0]] = repeats[last.exp[e][0]] || 0; - repeats[last.exp[e][0]]++; - if (repeats[last.exp[e][0]] > 1 && rule.unique) { - return error(last.exp[0], `arg [${e - 1}] has duplicates of ${last.exp[e][0]}`, flow); + for (v in rule.all) { + const variant = rule.all[v]; + if (variant[0] === '!') { + if (_.isArray(exp) && '!' + exp[0] === variant) { + last.args[a - 1] = exp; + continue args; + } + } else if (_.includes(['undefined','string','number','boolean','object','array'], variant)) { + if (_[`is${_.capitalize(variant)}`](exp)) { + last.args[a - 1] = undefined; + continue args; } } } + flow.throw(last.exp[0], `arg [${a - 1}] not all correspond to [${rule.all}]`); } - if (name === 'select') flow.validateMemory.selects.push(last); - if (name === 'alias') flow.validateMemory.aliases.push(last); - if (rule.handle) rule.handle(last, flow); - }; - }); - - return validators; + } + } + if (last.exp[0] === 'select') flow.validateMemory.selects.push(last); + if (last.exp[0] === 'alias') flow.validateMemory.aliases.push(last); + if (rule.handle) rule.handle(last, flow); }; - -export const validators = createValidators(rules); diff --git a/src/tests/babilon.ts b/src/tests/babilon.ts deleted file mode 100644 index 842142c..0000000 --- a/src/tests/babilon.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { assert } from 'chai'; - -import { - babilon, -} from '../lib/babilon'; - -export default () => { - describe('babilon', () => { - it('validation errors', () => { - assert.deepEqual( - babilon({ - exp: ['as', ['and', ['eq', ['path', 'a'], ['path', 'b']], ['not', ['path'], ['path', 'a']]], 'x'], - }).errors, - [ - { - emitter: 'path', - message: 'arg [0] string is not defined', - path: [0,1,0], - }, - ], - ); - }); - }); -}; diff --git a/src/tests/finalize.ts b/src/tests/finalize.ts deleted file mode 100644 index 2641fc6..0000000 --- a/src/tests/finalize.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { assert } from 'chai'; - -import { - rules, - finalize, -} from '../lib/rules'; - -export default () => { - it('finalize', () => { - assert.deepEqual( - finalize(rules, 'as'), - { - name: 'as', - rule: { args: [':get', '?string'] }, - args: [ - [ - '!data', - '!variable', - '!path', - '!and', - '!or', - '!eq', - '!not', - '!gt', - '!gte', - '!lt', - '!lte', - '!add', - '!plus', - '!minus', - '!multiply', - '!divide', - '!select', - '!union', - '!unionall', - ], - [ - 'string', - ], - ], - }, - ); - assert.deepEqual( - finalize(rules, 'and'), - { - name: 'and', - rule: { - all: [':get'], - }, - all: [ - '!data', - '!variable', - '!path', - '!and', - '!or', - '!eq', - '!not', - '!gt', - '!gte', - '!lt', - '!lte', - '!add', - '!plus', - '!minus', - '!multiply', - '!divide', - '!select', - '!union', - '!unionall', - ], - }, - ); - }); -}; diff --git a/src/tests/index.ts b/src/tests/index.ts index b4cbc1f..5f5dfab 100644 --- a/src/tests/index.ts +++ b/src/tests/index.ts @@ -1,20 +1,10 @@ import 'mocha'; require('source-map-support').install(); -import validators from './validators'; -import finalize from './finalize'; -import babilon from './babilon'; -import protoSql from './proto-sql'; -import protoMongo from './proto-mongo'; -import returnsReferences from './returns-references'; -import restrict from './restrict'; - describe('AncientSouls/Babilon:', () => { - validators(); - finalize(); - babilon(); - protoSql(); - protoMongo(); - returnsReferences(); - restrict(); + require('./validators').default(); + require('./proto-sql').default(); + require('./proto-mongo').default(); + require('./returns-references').default(); + require('./restrict').default(); }); diff --git a/src/tests/proto-mongo.ts b/src/tests/proto-mongo.ts index 930f56c..86dd7ff 100644 --- a/src/tests/proto-mongo.ts +++ b/src/tests/proto-mongo.ts @@ -7,13 +7,13 @@ import { import { createResolver, resolverOptions, - validators, + validate, } from '../lib/proto-mongo'; const resolver = createResolver(resolverOptions); const babi = (exp, result) => { - const b = babilon({ resolver, validators, exp }); + const b = babilon({ resolver, validate, exp }); assert.deepEqual(b.errors, []); assert.deepEqual(b.result, result); return b; diff --git a/src/tests/proto-sql.ts b/src/tests/proto-sql.ts index 97fdee3..af62052 100644 --- a/src/tests/proto-sql.ts +++ b/src/tests/proto-sql.ts @@ -7,13 +7,13 @@ import { import { createResolver, resolverOptions, - validators, + validate, } from '../lib/proto-sql'; const resolver = createResolver(resolverOptions); const babi = (exp, result) => { - const b = babilon({ resolver, validators, exp, variables: { a: { b: { c: 123 } } } }); + const b = babilon({ resolver, validate, exp, variables: { a: { b: { c: 123 } } } }); assert.deepEqual(b.errors, []); assert.deepEqual(b.toString(), result); return b; diff --git a/src/tests/restrict.ts b/src/tests/restrict.ts index cd6c92e..e49a80d 100644 --- a/src/tests/restrict.ts +++ b/src/tests/restrict.ts @@ -16,7 +16,7 @@ import { import { createResolver, resolverOptions, - validators, + validate, } from '../lib/proto-sql'; export default () => { @@ -64,7 +64,7 @@ export default () => { ); assert.deepEqual(exp[3][3], ['or',['or',['eq',['path','x','restriction'],['data','abc']],['eq',['path','x','restriction'],['data','def']]],['or',['eq',['path','z','restriction'],['data','abc']],['eq',['path','z','restriction'],['data','def']]]]); const resolver = createResolver(resolverOptions); - const b = babilon({ resolver, validators, exp }); + const b = babilon({ resolver, validate, exp }); assert.deepEqual(b.errors, []); }); it('restrictions alias', () => { @@ -118,7 +118,7 @@ export default () => { assert.deepEqual(exp[3][3], ['or',['eq',['path','_restrictions','subject'],['data','abc']],['eq',['path','_restrictions','subject'],['data','def']]]); assert.deepEqual(exp[3][4], ['or',['eq',['path','_restrictions','from'],['path','x','id']],['eq',['path','_restrictions','from'],['path','z','id']]]); const resolver = createResolver(resolverOptions); - const b = babilon({ resolver, validators, exp }); + const b = babilon({ resolver, validate, exp }); assert.deepEqual(b.errors, []); }); }); diff --git a/src/tests/returns-references.ts b/src/tests/returns-references.ts index e555055..a4cb29e 100644 --- a/src/tests/returns-references.ts +++ b/src/tests/returns-references.ts @@ -13,7 +13,7 @@ import { import { createResolver, resolverOptions, - validators, + validate, } from '../lib/proto-sql'; export default () => { @@ -46,7 +46,7 @@ export default () => { ['as', ['path', 'y', 'id'], 'id'], ]); const resolver = createResolver(resolverOptions); - const b = babilon({ resolver, validators, exp }); + const b = babilon({ resolver, validate, exp }); assert.deepEqual(b.errors, []); }); it('returnsReferencesAs', () => { @@ -89,7 +89,7 @@ export default () => { ['as', ['path', 'y', 'id'], 'id'], ]); const resolver = createResolver(resolverOptions); - const b = babilon({ resolver, validators, exp }); + const b = babilon({ resolver, validate, exp }); assert.deepEqual(b.errors, []); }); it('returnsReferencesString', () => { @@ -130,7 +130,7 @@ export default () => { ['add', ['data', 'y'], ['data', '/'], ['path', 'y', 'id']], ]); const resolver = createResolver(resolverOptions); - const b = babilon({ resolver, validators, exp }); + const b = babilon({ resolver, validate, exp }); assert.deepEqual(b.errors, []); }); }; diff --git a/src/tests/validators.ts b/src/tests/validators.ts index 7193f7d..6137d4b 100644 --- a/src/tests/validators.ts +++ b/src/tests/validators.ts @@ -1,11 +1,11 @@ import { assert } from 'chai'; -import { - babilon, -} from '../lib/babilon'; +import { babilon } from '../lib/babilon'; +import { createValidate } from '../lib/validators'; +import { rules, types } from '../lib/rules'; const babi = (exp, errors) => { - const b = babilon({ exp }); + const b = babilon({ exp, validate: createValidate(rules) }); assert.deepEqual(b.errors, errors); return b; }; @@ -19,7 +19,7 @@ export default () => { babi(['data', 'abc'], []); babi(['data', [1,2,3]], []); babi(['data', { a: 1, b: 2, c: 3 }], []); - babi(['data'], [{ path: [], emitter: 'data', message: 'arg [0] :data is not defined' }]); + babi(['data'], [{ path: [], emitter: 'data', message: 'arg [0] types [undefined,string,number,boolean,object,array] is not defined' }]); }); it('data', () => { babi(['variable', 'a.b.c'], []); @@ -28,21 +28,21 @@ export default () => { babi(['path', 'a'], []); babi(['path', 'a', 'b'], []); babi(['path', 'a', 'b', 'c'], []); - babi(['path'], [{ path: [], emitter: 'path', message: 'arg [0] string is not defined' }]); - babi(['path', 123], [{ path: [], emitter: 'path', message: 'arg [0] is not string' }]); - babi(['path', {}], [{ path: [], emitter: 'path', message: 'arg [0] is not string' }]); + babi(['path'], [{ path: [], emitter: 'path', message: 'arg [0] types [string] is not defined' }]); + babi(['path', 123], [{ path: [], emitter: 'path', message: 'arg [0] is not [string]' }, { path: [], emitter: 'path', message: 'arg [0] not all correspond to [string]' }]); + babi(['path', {}], [{ path: [], emitter: 'path', message: 'arg [0] is not [string]' }, { path: [], emitter: 'path', message: 'arg [0] not all correspond to [string]' }]); }); it('alias', () => { babi(['alias', 'a'], []); babi(['alias', 'a', 'b'], []); - babi(['alias', 123], [{ path: [], emitter: 'alias', message: 'arg [0] is not string' }]); - babi(['alias'], [{ path: [], emitter: 'alias', message: 'arg [0] string is not defined' }]); + babi(['alias', 123], [{ path: [], emitter: 'alias', message: 'arg [0] is not [string]' }]); + babi(['alias'], [{ path: [], emitter: 'alias', message: 'arg [0] types [string] is not defined' }]); }); it('as', () => { babi(['as', ['data', 123], 'x'], []); - babi(['as'], [{ path: [], emitter: 'as', message: 'arg [0] :get is not defined' }]); - babi(['as', 123, 'x'], [{ path: [], emitter: 'as', message: 'arg [0] is not :get' }]); - babi(['as', ['data', 123], 123], [{ path: [], emitter: 'as', message: 'arg [1] is not ?string' }]); + babi(['as'], [{ path: [], emitter: 'as', message: `arg [0] types [${types.get}] is not defined` }]); + babi(['as', 123, 'x'], [{ path: [], emitter: 'as', message: `arg [0] is not [${types.get}]` }]); + babi(['as', ['data', 123], 123], [{ path: [], emitter: 'as', message: 'arg [1] is not ?[string]' }]); }); it('logic', () => { babi(['and', ['data', 123], ['data', 123]], []); @@ -122,7 +122,12 @@ export default () => { [ { emitter: 'select', - message: 'arg [1] has duplicates of returns', + message: 'arg [1] duplicates "returns"', + path: [], + }, + { + emitter: 'select', + message: '"select" required "from"', path: [], }, ], @@ -135,7 +140,7 @@ export default () => { [ { emitter: 'select', - message: 'select required expression from', + message: '"select" required "from"', path: [], }, ], @@ -151,8 +156,8 @@ export default () => { ], [], ); - assert.lengthOf(b.validateMemory.selects, 3); - assert.lengthOf(b.validateMemory.aliases, 3); + // assert.lengthOf(b.validateMemory.selects, 3); + // assert.lengthOf(b.validateMemory.aliases, 3); babi( [ 'unionall', diff --git a/tests/babilon.d.ts b/tests/babilon.d.ts deleted file mode 100644 index 4cab553..0000000 --- a/tests/babilon.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: () => void; -export default _default; diff --git a/tests/babilon.js b/tests/babilon.js deleted file mode 100644 index 58d672d..0000000 --- a/tests/babilon.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const chai_1 = require("chai"); -const babilon_1 = require("../lib/babilon"); -exports.default = () => { - describe('babilon', () => { - it('validation errors', () => { - chai_1.assert.deepEqual(babilon_1.babilon({ - exp: ['as', ['and', ['eq', ['path', 'a'], ['path', 'b']], ['not', ['path'], ['path', 'a']]], 'x'], - }).errors, [ - { - emitter: 'path', - message: 'arg [0] string is not defined', - path: [0, 1, 0], - }, - ]); - }); - }); -}; -//# sourceMappingURL=babilon.js.map \ No newline at end of file diff --git a/tests/babilon.js.map b/tests/babilon.js.map deleted file mode 100644 index d496e5c..0000000 --- a/tests/babilon.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"babilon.js","sourceRoot":"","sources":["../src/tests/babilon.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,4CAEwB;AAExB,kBAAe,GAAG,EAAE;IAClB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC3B,aAAM,CAAC,SAAS,CACd,iBAAO,CAAC;gBACN,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;aAClG,CAAC,CAAC,MAAM,EACT;gBACE;oBACE,OAAO,EAAE,MAAM;oBACf,OAAO,EAAE,+BAA+B;oBACxC,IAAI,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;iBACd;aACF,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"} \ No newline at end of file diff --git a/tests/finalize.d.ts b/tests/finalize.d.ts deleted file mode 100644 index 4cab553..0000000 --- a/tests/finalize.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: () => void; -export default _default; diff --git a/tests/finalize.js b/tests/finalize.js deleted file mode 100644 index 558d49b..0000000 --- a/tests/finalize.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const chai_1 = require("chai"); -const rules_1 = require("../lib/rules"); -exports.default = () => { - it('finalize', () => { - chai_1.assert.deepEqual(rules_1.finalize(rules_1.rules, 'as'), { - name: 'as', - rule: { args: [':get', '?string'] }, - args: [ - [ - '!data', - '!variable', - '!path', - '!and', - '!or', - '!eq', - '!not', - '!gt', - '!gte', - '!lt', - '!lte', - '!add', - '!plus', - '!minus', - '!multiply', - '!divide', - '!select', - '!union', - '!unionall', - ], - [ - 'string', - ], - ], - }); - chai_1.assert.deepEqual(rules_1.finalize(rules_1.rules, 'and'), { - name: 'and', - rule: { - all: [':get'], - }, - all: [ - '!data', - '!variable', - '!path', - '!and', - '!or', - '!eq', - '!not', - '!gt', - '!gte', - '!lt', - '!lte', - '!add', - '!plus', - '!minus', - '!multiply', - '!divide', - '!select', - '!union', - '!unionall', - ], - }); - }); -}; -//# sourceMappingURL=finalize.js.map \ No newline at end of file diff --git a/tests/finalize.js.map b/tests/finalize.js.map deleted file mode 100644 index d81e6aa..0000000 --- a/tests/finalize.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"finalize.js","sourceRoot":"","sources":["../src/tests/finalize.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,wCAGsB;AAEtB,kBAAe,GAAG,EAAE;IAClB,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;QAClB,aAAM,CAAC,SAAS,CACd,gBAAQ,CAAC,aAAK,EAAE,IAAI,CAAC,EACrB;YACE,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;YACnC,IAAI,EAAE;gBACJ;oBACE,OAAO;oBACP,WAAW;oBACX,OAAO;oBACP,MAAM;oBACN,KAAK;oBACL,KAAK;oBACL,MAAM;oBACN,KAAK;oBACL,MAAM;oBACN,KAAK;oBACL,MAAM;oBACN,MAAM;oBACN,OAAO;oBACP,QAAQ;oBACR,WAAW;oBACX,SAAS;oBACT,SAAS;oBACT,QAAQ;oBACR,WAAW;iBACZ;gBACD;oBACE,QAAQ;iBACT;aACF;SACF,CACF,CAAC;QACF,aAAM,CAAC,SAAS,CACd,gBAAQ,CAAC,aAAK,EAAE,KAAK,CAAC,EACtB;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE;gBACJ,GAAG,EAAE,CAAC,MAAM,CAAC;aACd;YACD,GAAG,EAAE;gBACH,OAAO;gBACP,WAAW;gBACX,OAAO;gBACP,MAAM;gBACN,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,KAAK;gBACL,MAAM;gBACN,KAAK;gBACL,MAAM;gBACN,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,WAAW;gBACX,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,WAAW;aACZ;SACF,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"} \ No newline at end of file diff --git a/tests/index.js b/tests/index.js index 84fa02b..5419260 100644 --- a/tests/index.js +++ b/tests/index.js @@ -2,20 +2,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); require("mocha"); require('source-map-support').install(); -const validators_1 = require("./validators"); -const finalize_1 = require("./finalize"); -const babilon_1 = require("./babilon"); -const proto_sql_1 = require("./proto-sql"); -const proto_mongo_1 = require("./proto-mongo"); -const returns_references_1 = require("./returns-references"); -const restrict_1 = require("./restrict"); describe('AncientSouls/Babilon:', () => { - validators_1.default(); - finalize_1.default(); - babilon_1.default(); - proto_sql_1.default(); - proto_mongo_1.default(); - returns_references_1.default(); - restrict_1.default(); + require('./validators').default(); + require('./proto-sql').default(); + require('./proto-mongo').default(); + require('./returns-references').default(); + require('./restrict').default(); }); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/tests/index.js.map b/tests/index.js.map index 123f322..99ce7a7 100644 --- a/tests/index.js.map +++ b/tests/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/tests/index.ts"],"names":[],"mappings":";;AAAA,iBAAe;AACf,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;AAExC,6CAAsC;AACtC,yCAAkC;AAClC,uCAAgC;AAChC,2CAAmC;AACnC,+CAAuC;AACvC,6DAAqD;AACrD,yCAAkC;AAElC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,oBAAU,EAAE,CAAC;IACb,kBAAQ,EAAE,CAAC;IACX,iBAAO,EAAE,CAAC;IACV,mBAAQ,EAAE,CAAC;IACX,qBAAU,EAAE,CAAC;IACb,4BAAiB,EAAE,CAAC;IACpB,kBAAQ,EAAE,CAAC;AACb,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/tests/index.ts"],"names":[],"mappings":";;AAAA,iBAAe;AACf,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;AAExC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;IAClC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;IACjC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;IACnC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;AAClC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/tests/proto-mongo.js b/tests/proto-mongo.js index 4370a97..33c17ca 100644 --- a/tests/proto-mongo.js +++ b/tests/proto-mongo.js @@ -5,7 +5,7 @@ const babilon_1 = require("../lib/babilon"); const proto_mongo_1 = require("../lib/proto-mongo"); const resolver = proto_mongo_1.createResolver(proto_mongo_1.resolverOptions); const babi = (exp, result) => { - const b = babilon_1.babilon({ resolver, validators: proto_mongo_1.validators, exp }); + const b = babilon_1.babilon({ resolver, validate: proto_mongo_1.validate, exp }); chai_1.assert.deepEqual(b.errors, []); chai_1.assert.deepEqual(b.result, result); return b; diff --git a/tests/proto-mongo.js.map b/tests/proto-mongo.js.map index 12707fc..247ebd1 100644 --- a/tests/proto-mongo.js.map +++ b/tests/proto-mongo.js.map @@ -1 +1 @@ -{"version":3,"file":"proto-mongo.js","sourceRoot":"","sources":["../src/tests/proto-mongo.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,4CAEwB;AAExB,oDAI4B;AAE5B,MAAM,QAAQ,GAAG,4BAAc,CAAC,6BAAe,CAAC,CAAC;AAEjD,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC3B,MAAM,CAAC,GAAG,iBAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAV,wBAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACjD,aAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/B,aAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,kBAAe,GAAG,EAAE;IAClB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAChB,IAAI,CACF,CAAC,QAAQ;gBACP,CAAC,SAAS;oBACR,CAAC,MAAM,EAAC,GAAG,CAAC;oBACZ,CAAC,MAAM,EAAC,GAAG,CAAC;oBACZ,CAAC,MAAM,EAAC,GAAG,CAAC;iBACb;gBACD,CAAC,MAAM;oBACL,CAAC,OAAO,EAAC,GAAG,CAAC;iBACd;gBACD,CAAC,KAAK;oBACJ,CAAC,IAAI,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,MAAM,EAAC,EAAE,CAAC,CAAC;oBAC/B,CAAC,IAAI;wBACH,CAAC,IAAI,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC;wBAChC,CAAC,IAAI,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC;qBACjC;iBACF;gBACD,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;aAC5B,EACD;gBACE,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE;wBAChB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;wBAClB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE;qBACpD,EAAE;gBACH,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;aACtB,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"proto-mongo.js","sourceRoot":"","sources":["../src/tests/proto-mongo.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,4CAEwB;AAExB,oDAI4B;AAE5B,MAAM,QAAQ,GAAG,4BAAc,CAAC,6BAAe,CAAC,CAAC;AAEjD,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC3B,MAAM,CAAC,GAAG,iBAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAR,sBAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,aAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/B,aAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,kBAAe,GAAG,EAAE;IAClB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAChB,IAAI,CACF,CAAC,QAAQ;gBACP,CAAC,SAAS;oBACR,CAAC,MAAM,EAAC,GAAG,CAAC;oBACZ,CAAC,MAAM,EAAC,GAAG,CAAC;oBACZ,CAAC,MAAM,EAAC,GAAG,CAAC;iBACb;gBACD,CAAC,MAAM;oBACL,CAAC,OAAO,EAAC,GAAG,CAAC;iBACd;gBACD,CAAC,KAAK;oBACJ,CAAC,IAAI,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,MAAM,EAAC,EAAE,CAAC,CAAC;oBAC/B,CAAC,IAAI;wBACH,CAAC,IAAI,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC;wBAChC,CAAC,IAAI,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC;qBACjC;iBACF;gBACD,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;aAC5B,EACD;gBACE,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE;wBAChB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;wBAClB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE;qBACpD,EAAE;gBACH,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;aACtB,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"} \ No newline at end of file diff --git a/tests/proto-sql.js b/tests/proto-sql.js index 8cf5254..ba30231 100644 --- a/tests/proto-sql.js +++ b/tests/proto-sql.js @@ -5,7 +5,7 @@ const babilon_1 = require("../lib/babilon"); const proto_sql_1 = require("../lib/proto-sql"); const resolver = proto_sql_1.createResolver(proto_sql_1.resolverOptions); const babi = (exp, result) => { - const b = babilon_1.babilon({ resolver, validators: proto_sql_1.validators, exp, variables: { a: { b: { c: 123 } } } }); + const b = babilon_1.babilon({ resolver, validate: proto_sql_1.validate, exp, variables: { a: { b: { c: 123 } } } }); chai_1.assert.deepEqual(b.errors, []); chai_1.assert.deepEqual(b.toString(), result); return b; diff --git a/tests/proto-sql.js.map b/tests/proto-sql.js.map index 2f8f472..afd8891 100644 --- a/tests/proto-sql.js.map +++ b/tests/proto-sql.js.map @@ -1 +1 @@ -{"version":3,"file":"proto-sql.js","sourceRoot":"","sources":["../src/tests/proto-sql.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"proto-sql.js","sourceRoot":"","sources":["../src/tests/proto-sql.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tests/restrict.js b/tests/restrict.js index c101cd0..9728078 100644 --- a/tests/restrict.js +++ b/tests/restrict.js @@ -47,7 +47,7 @@ exports.default = () => { ], generateRestricting(['abc', 'def'])); chai_1.assert.deepEqual(exp[3][3], ['or', ['or', ['eq', ['path', 'x', 'restriction'], ['data', 'abc']], ['eq', ['path', 'x', 'restriction'], ['data', 'def']]], ['or', ['eq', ['path', 'z', 'restriction'], ['data', 'abc']], ['eq', ['path', 'z', 'restriction'], ['data', 'def']]]]); const resolver = proto_sql_1.createResolver(proto_sql_1.resolverOptions); - const b = babilon_1.babilon({ resolver, validators: proto_sql_1.validators, exp }); + const b = babilon_1.babilon({ resolver, validate: proto_sql_1.validate, exp }); chai_1.assert.deepEqual(b.errors, []); }); it('restrictions alias', () => { @@ -95,7 +95,7 @@ exports.default = () => { chai_1.assert.deepEqual(exp[3][3], ['or', ['eq', ['path', '_restrictions', 'subject'], ['data', 'abc']], ['eq', ['path', '_restrictions', 'subject'], ['data', 'def']]]); chai_1.assert.deepEqual(exp[3][4], ['or', ['eq', ['path', '_restrictions', 'from'], ['path', 'x', 'id']], ['eq', ['path', '_restrictions', 'from'], ['path', 'z', 'id']]]); const resolver = proto_sql_1.createResolver(proto_sql_1.resolverOptions); - const b = babilon_1.babilon({ resolver, validators: proto_sql_1.validators, exp }); + const b = babilon_1.babilon({ resolver, validate: proto_sql_1.validate, exp }); chai_1.assert.deepEqual(b.errors, []); }); }); diff --git a/tests/restrict.js.map b/tests/restrict.js.map index b2533fb..98d2c9f 100644 --- a/tests/restrict.js.map +++ b/tests/restrict.js.map @@ -1 +1 @@ -{"version":3,"file":"restrict.js","sourceRoot":"","sources":["../src/tests/restrict.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"restrict.js","sourceRoot":"","sources":["../src/tests/restrict.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tests/returns-references.js b/tests/returns-references.js index cb58c62..016eeb4 100644 --- a/tests/returns-references.js +++ b/tests/returns-references.js @@ -31,7 +31,7 @@ exports.default = () => { ['as', ['path', 'y', 'id'], 'id'], ]); const resolver = proto_sql_1.createResolver(proto_sql_1.resolverOptions); - const b = babilon_1.babilon({ resolver, validators: proto_sql_1.validators, exp }); + const b = babilon_1.babilon({ resolver, validate: proto_sql_1.validate, exp }); chai_1.assert.deepEqual(b.errors, []); }); it('returnsReferencesAs', () => { @@ -71,7 +71,7 @@ exports.default = () => { ['as', ['path', 'y', 'id'], 'id'], ]); const resolver = proto_sql_1.createResolver(proto_sql_1.resolverOptions); - const b = babilon_1.babilon({ resolver, validators: proto_sql_1.validators, exp }); + const b = babilon_1.babilon({ resolver, validate: proto_sql_1.validate, exp }); chai_1.assert.deepEqual(b.errors, []); }); it('returnsReferencesString', () => { @@ -109,7 +109,7 @@ exports.default = () => { ['add', ['data', 'y'], ['data', '/'], ['path', 'y', 'id']], ]); const resolver = proto_sql_1.createResolver(proto_sql_1.resolverOptions); - const b = babilon_1.babilon({ resolver, validators: proto_sql_1.validators, exp }); + const b = babilon_1.babilon({ resolver, validate: proto_sql_1.validate, exp }); chai_1.assert.deepEqual(b.errors, []); }); }; diff --git a/tests/returns-references.js.map b/tests/returns-references.js.map index 12b1bf2..f695b94 100644 --- a/tests/returns-references.js.map +++ b/tests/returns-references.js.map @@ -1 +1 @@ -{"version":3,"file":"returns-references.js","sourceRoot":"","sources":["../src/tests/returns-references.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"returns-references.js","sourceRoot":"","sources":["../src/tests/returns-references.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/tests/validators.js b/tests/validators.js index 859982f..a640274 100644 --- a/tests/validators.js +++ b/tests/validators.js @@ -2,8 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const babilon_1 = require("../lib/babilon"); +const validators_1 = require("../lib/validators"); +const rules_1 = require("../lib/rules"); const babi = (exp, errors) => { - const b = babilon_1.babilon({ exp }); + const b = babilon_1.babilon({ exp, validate: validators_1.createValidate(rules_1.rules) }); chai_1.assert.deepEqual(b.errors, errors); return b; }; @@ -16,7 +18,7 @@ exports.default = () => { babi(['data', 'abc'], []); babi(['data', [1, 2, 3]], []); babi(['data', { a: 1, b: 2, c: 3 }], []); - babi(['data'], [{ path: [], emitter: 'data', message: 'arg [0] :data is not defined' }]); + babi(['data'], [{ path: [], emitter: 'data', message: 'arg [0] types [undefined,string,number,boolean,object,array] is not defined' }]); }); it('data', () => { babi(['variable', 'a.b.c'], []); @@ -25,21 +27,21 @@ exports.default = () => { babi(['path', 'a'], []); babi(['path', 'a', 'b'], []); babi(['path', 'a', 'b', 'c'], []); - babi(['path'], [{ path: [], emitter: 'path', message: 'arg [0] string is not defined' }]); - babi(['path', 123], [{ path: [], emitter: 'path', message: 'arg [0] is not string' }]); - babi(['path', {}], [{ path: [], emitter: 'path', message: 'arg [0] is not string' }]); + babi(['path'], [{ path: [], emitter: 'path', message: 'arg [0] types [string] is not defined' }]); + babi(['path', 123], [{ path: [], emitter: 'path', message: 'arg [0] is not [string]' }, { path: [], emitter: 'path', message: 'arg [0] not all correspond to [string]' }]); + babi(['path', {}], [{ path: [], emitter: 'path', message: 'arg [0] is not [string]' }, { path: [], emitter: 'path', message: 'arg [0] not all correspond to [string]' }]); }); it('alias', () => { babi(['alias', 'a'], []); babi(['alias', 'a', 'b'], []); - babi(['alias', 123], [{ path: [], emitter: 'alias', message: 'arg [0] is not string' }]); - babi(['alias'], [{ path: [], emitter: 'alias', message: 'arg [0] string is not defined' }]); + babi(['alias', 123], [{ path: [], emitter: 'alias', message: 'arg [0] is not [string]' }]); + babi(['alias'], [{ path: [], emitter: 'alias', message: 'arg [0] types [string] is not defined' }]); }); it('as', () => { babi(['as', ['data', 123], 'x'], []); - babi(['as'], [{ path: [], emitter: 'as', message: 'arg [0] :get is not defined' }]); - babi(['as', 123, 'x'], [{ path: [], emitter: 'as', message: 'arg [0] is not :get' }]); - babi(['as', ['data', 123], 123], [{ path: [], emitter: 'as', message: 'arg [1] is not ?string' }]); + babi(['as'], [{ path: [], emitter: 'as', message: `arg [0] types [${rules_1.types.get}] is not defined` }]); + babi(['as', 123, 'x'], [{ path: [], emitter: 'as', message: `arg [0] is not [${rules_1.types.get}]` }]); + babi(['as', ['data', 123], 123], [{ path: [], emitter: 'as', message: 'arg [1] is not ?[string]' }]); }); it('logic', () => { babi(['and', ['data', 123], ['data', 123]], []); @@ -114,7 +116,12 @@ exports.default = () => { ], [ { emitter: 'select', - message: 'arg [1] has duplicates of returns', + message: 'arg [1] duplicates "returns"', + path: [], + }, + { + emitter: 'select', + message: '"select" required "from"', path: [], }, ]); @@ -124,7 +131,7 @@ exports.default = () => { ], [ { emitter: 'select', - message: 'select required expression from', + message: '"select" required "from"', path: [], }, ]); @@ -136,8 +143,6 @@ exports.default = () => { ['select', ['from', ['alias', 'b']]], ['select', ['from', ['alias', 'c']]], ], []); - chai_1.assert.lengthOf(b.validateMemory.selects, 3); - chai_1.assert.lengthOf(b.validateMemory.aliases, 3); babi([ 'unionall', ['select', ['from', ['alias', 'a']]], diff --git a/tests/validators.js.map b/tests/validators.js.map index 695f25f..83254ce 100644 --- a/tests/validators.js.map +++ b/tests/validators.js.map @@ -1 +1 @@ -{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/tests/validators.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/tests/validators.ts"],"names":[],"mappings":"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"} \ No newline at end of file