UNPKG

sedk-mysql

Version:
156 lines 4.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NULLS_LAST = exports.NullsLast = exports.NULLS_FIRST = exports.NullsFirst = exports.NULLS_POSITION_NOT_EXIST = exports.NullsPositionNotExist = exports.OrderByNullsPosition = exports.DESC = exports.Desc = exports.ASC = exports.Asc = exports.DIRECTION_NOT_EXIST = exports.DirectionNotExist = exports.OrderByDirection = exports.OrderByItemInfo = void 0; const database_1 = require("./database"); const models_1 = require("./models"); class OrderByItemInfo { constructor(orderByItem, direction = exports.DIRECTION_NOT_EXIST, nullPosition = exports.NULLS_POSITION_NOT_EXIST) { this.orderByItem = orderByItem; this.direction = direction; this.nullPosition = nullPosition; } getStmt(data, artifacts, binderStore) { const direction = this.getDirectionFromOption(data); const nullPosition = this.getNullLastFromOption(data); const orderByString = (this.orderByItem instanceof database_1.Column || this.orderByItem instanceof models_1.Expression) ? this.orderByItem.getStmt(data, artifacts, binderStore) : this.orderByItem; return `${orderByString}${direction}${nullPosition}`; } getDirectionFromOption(data) { if (this.direction === exports.DESC) return exports.DESC; if (data.option !== undefined) { switch (data.option.addAscAfterOrderByItem) { case 'always': return exports.ASC; case 'never': return exports.DIRECTION_NOT_EXIST; } } return this.direction; } getNullLastFromOption(data) { if (this.nullPosition === exports.NULLS_FIRST) return exports.NULLS_FIRST; if (data.option !== undefined) { switch (data.option.addNullsLastAfterOrderByItem) { case 'always': return exports.NULLS_LAST; case 'never': return exports.NULLS_POSITION_NOT_EXIST; } } return this.nullPosition; } } exports.OrderByItemInfo = OrderByItemInfo; class OrderByDirection { } exports.OrderByDirection = OrderByDirection; class DirectionNotExist extends OrderByDirection { constructor() { super(); this.unique = Symbol(); } static getInstance() { if (!DirectionNotExist.instance) { DirectionNotExist.instance = new DirectionNotExist(); } return DirectionNotExist.instance; } toString() { return ''; } } exports.DirectionNotExist = DirectionNotExist; exports.DIRECTION_NOT_EXIST = DirectionNotExist.getInstance(); class Asc extends OrderByDirection { constructor() { super(); this.unique = Symbol(); } static getInstance() { if (!Asc.instance) { Asc.instance = new Asc(); } return Asc.instance; } toString() { return ' ASC'; } } exports.Asc = Asc; exports.ASC = Asc.getInstance(); class Desc extends OrderByDirection { constructor() { super(); this.unique = Symbol(); } static getInstance() { if (!Desc.instance) { Desc.instance = new Desc(); } return Desc.instance; } toString() { return ' DESC'; } } exports.Desc = Desc; exports.DESC = Desc.getInstance(); class OrderByNullsPosition { } exports.OrderByNullsPosition = OrderByNullsPosition; class NullsPositionNotExist extends OrderByNullsPosition { constructor() { super(); this.unique = Symbol(); } static getInstance() { if (!NullsPositionNotExist.instance) { NullsPositionNotExist.instance = new NullsPositionNotExist(); } return NullsPositionNotExist.instance; } toString() { return ''; } } exports.NullsPositionNotExist = NullsPositionNotExist; exports.NULLS_POSITION_NOT_EXIST = NullsPositionNotExist.getInstance(); class NullsFirst extends OrderByNullsPosition { constructor() { super(); this.unique = Symbol(); } static getInstance() { if (!NullsFirst.instance) { NullsFirst.instance = new NullsFirst(); } return NullsFirst.instance; } toString() { return ' NULLS FIRST'; } } exports.NullsFirst = NullsFirst; exports.NULLS_FIRST = NullsFirst.getInstance(); class NullsLast extends OrderByNullsPosition { constructor() { super(); this.unique = Symbol(); } static getInstance() { if (!NullsLast.instance) { NullsLast.instance = new NullsLast(); } return NullsLast.instance; } toString() { return ' NULLS LAST'; } } exports.NullsLast = NullsLast; exports.NULLS_LAST = NullsLast.getInstance(); //# sourceMappingURL=orderBy.js.map