@db-auto/tables
Advanced tools
Comparing version 0.0.5 to 0.0.6
@@ -5,2 +5,3 @@ export * from './src/tables'; | ||
export * from './src/clean'; | ||
export * from './src/prettyprint'; | ||
export * from './src/query.fixture'; |
@@ -22,2 +22,3 @@ "use strict"; | ||
__exportStar(require("./src/clean"), exports); | ||
__exportStar(require("./src/prettyprint"), exports); | ||
__exportStar(require("./src/query.fixture"), exports); |
@@ -11,2 +11,3 @@ import { ErrorsAnd, NameAnd } from "@db-auto/utils"; | ||
alias: string; | ||
possibleLinks: string[]; | ||
planLink?: PlanLink; | ||
@@ -13,0 +14,0 @@ } |
@@ -10,3 +10,3 @@ "use strict"; | ||
let planLinkOrErrors = buildNextStep(tables, path, table, 1); | ||
return (0, utils_1.mapErrors)(planLinkOrErrors, planLink => ({ table, alias: `T${0}`, planLink })); | ||
return (0, utils_1.mapErrors)(planLinkOrErrors, planLink => ({ table, alias: `T${0}`, planLink, possibleLinks: Object.keys(table.links) })); | ||
} | ||
@@ -25,3 +25,3 @@ exports.buildPlan = buildPlan; | ||
let nextPlanLinkOrErrors = buildNextStep(tables, path, nextTable, index + 1); | ||
return (0, utils_1.mapErrors)(nextPlanLinkOrErrors, planLink => ({ link, linkTo: { planLink, alias: `T${index}`, table: nextTable } })); | ||
return (0, utils_1.mapErrors)(nextPlanLinkOrErrors, planLink => ({ link, linkTo: { planLink, alias: `T${index}`, table: nextTable, possibleLinks: Object.keys(table.links) } })); | ||
} |
@@ -70,10 +70,19 @@ "use strict"; | ||
it("should make sql for a single step", () => { | ||
expect((0, utils_1.mapErrors)((0, query_1.buildPlan)(query_fixture_1.clean, ["driver"]), plan => (0, sql_1.sqlFor)((0, sql_1.mergeSelectData)((0, sql_1.selectData)("all")(plan))))).toEqual("select T0.* from DriverTable T0 "); | ||
expect((0, utils_1.mapErrors)((0, query_1.buildPlan)(query_fixture_1.clean, ["driver"]), plan => (0, sql_1.sqlFor)((0, sql_1.mergeSelectData)((0, sql_1.selectData)("all")(plan))))).toEqual([ | ||
"select T0.*", | ||
" from DriverTable T0" | ||
]); | ||
}); | ||
it("should make sql for two steps", () => { | ||
expect((0, utils_1.mapErrors)((0, query_1.buildPlan)(query_fixture_1.clean, ["driver", "mission"]), plan => (0, sql_1.sqlFor)((0, sql_1.mergeSelectData)((0, sql_1.selectData)("all")(plan))))).toEqual("select T0.*, T1.* from DriverTable T0, mission T1 where T0.driverId = T1.driverId"); | ||
expect((0, utils_1.mapErrors)((0, query_1.buildPlan)(query_fixture_1.clean, ["driver", "mission"]), plan => (0, sql_1.sqlFor)((0, sql_1.mergeSelectData)((0, sql_1.selectData)("all")(plan))))).toEqual([ | ||
"select T0.*, T1.*", | ||
" from DriverTable T0, mission T1 where T0.driverId = T1.driverId" | ||
]); | ||
}); | ||
it("should make sql for three steps", () => { | ||
expect((0, utils_1.mapErrors)((0, query_1.buildPlan)(query_fixture_1.clean, ["driver", "mission", "mission_aud"]), plan => (0, sql_1.sqlFor)((0, sql_1.mergeSelectData)((0, sql_1.selectData)("all")(plan))))).toEqual("select T0.*, T1.*, T2.* from DriverTable T0, mission T1, mission_aud T2 where T0.driverId = T1.driverId and T1.missionId = T2.missionId"); | ||
expect((0, utils_1.mapErrors)((0, query_1.buildPlan)(query_fixture_1.clean, ["driver", "mission", "mission_aud"]), plan => (0, sql_1.sqlFor)((0, sql_1.mergeSelectData)((0, sql_1.selectData)("all")(plan))))).toEqual([ | ||
"select T0.*, T1.*, T2.*", | ||
" from DriverTable T0, mission T1, mission_aud T2 where T0.driverId = T1.driverId and T1.missionId = T2.missionId" | ||
]); | ||
}); | ||
}); |
@@ -10,2 +10,3 @@ import { Plan } from "./query"; | ||
export declare function selectDataForOne(plan: Plan, view: string): SelectData; | ||
export declare const lastPlan: (plan: Plan) => Plan; | ||
export declare const selectData: (view: string) => (plan: Plan) => SelectData[]; | ||
@@ -24,2 +25,2 @@ export interface MergedSelectData { | ||
export declare function mergeSelectData(selectData: SelectData[]): MergedSelectData; | ||
export declare function sqlFor(m: MergedSelectData): string; | ||
export declare function sqlFor(m: MergedSelectData): string[]; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.sqlFor = exports.mergeSelectData = exports.selectData = exports.selectDataForOne = exports.whereFor = void 0; | ||
exports.sqlFor = exports.mergeSelectData = exports.selectData = exports.lastPlan = exports.selectDataForOne = exports.whereFor = void 0; | ||
const utils_1 = require("@db-auto/utils"); | ||
@@ -24,2 +24,4 @@ const tables_1 = require("./tables"); | ||
exports.selectDataForOne = selectDataForOne; | ||
const lastPlan = (plan) => plan.planLink ? (0, exports.lastPlan)(plan.planLink.linkTo) : plan; | ||
exports.lastPlan = lastPlan; | ||
const selectData = (view) => (plan) => { | ||
@@ -41,4 +43,4 @@ const nextData = plan.planLink ? (0, exports.selectData)(view)(plan.planLink.linkTo) : []; | ||
const where = m.where.length > 0 ? `where ${m.where.join(' and ')}` : ''; | ||
return `select ${columns}` + ` from ${tables} ${where}`; | ||
return [`select ${columns}`, ` from ${tables} ${where}`.trimRight()]; | ||
} | ||
exports.sqlFor = sqlFor; |
{ | ||
"name": "@db-auto/tables", | ||
"description": "", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"main": "dist/index", | ||
@@ -20,3 +20,3 @@ "types": "dist/index", | ||
"dependencies": { | ||
"@db-auto/utils": "0.0.5" | ||
"@db-auto/utils": "0.0.6" | ||
}, | ||
@@ -23,0 +23,0 @@ "devDependencies": { |
29536
23
622
+ Added@db-auto/utils@0.0.6(transitive)
- Removed@db-auto/utils@0.0.5(transitive)
Updated@db-auto/utils@0.0.6