sequelize#col TypeScript Examples
The following examples show how to use
sequelize#col.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: lighthouse-db-manager.ts From one-platform with MIT License | 6 votes |
async getAllBranches(projectId: string, options?: Pagination) {
const order = [['branch', 'DESC']] as Order;
// sequelize filter
const where: WhereOptions<BuildAttributes> = { projectId };
if (options?.search) {
where.branch = { [Op.iLike]: `%${options.search}%` };
}
// findAllAncCount won't work on groupBy clause
const count = await Build.count({
where,
attributes: undefined,
distinct: true,
col: 'branch',
});
/**
* Branch is formed from the CI CD pipeline
* To get branches we group branch property of a build
*/
const rows = await Build.findAll({
raw: true,
order,
limit: options?.limit || 1000,
offset: options?.offset || 0,
where,
group: ['branch'],
attributes: ['branch'],
});
return { count, rows };
}
Example #2
Source File: lighthouse-db-manager.ts From one-platform with MIT License | 5 votes |
async getLHScores(projectId: string, buildIds: string[]) {
/**
* On passing multiple builds the filter from
* checking as pk is changed to sql in operator
*/
const buildFilter = buildIds.length <= 1 ? buildIds[0] : { [Op.in]: buildIds };
/**
* scores are fetched with
* GROUPING : ["buildId","name"] and value is averaged
* Thus gives LH average score of all properties from DB itself
*/
const stats = await Statistic.findAll({
raw: true,
where: {
projectId,
buildId: buildFilter,
name: {
[Op.or]: Object.keys(DB_SCORE_KEY_TO_LH_KEY),
},
},
group: ['buildId', 'name'],
attributes: ['name', [fn('AVG', col('value')), 'value'], 'buildId'],
});
const lhScoreGroupByBuildId: Record<string, LighthouseScoreType> = {};
stats.forEach((stat) => {
const key = DB_SCORE_KEY_TO_LH_KEY[stat.name];
const score = Math.min(Math.round(stat.value * 100), 100); // convert to percentage
if (lhScoreGroupByBuildId?.[stat.buildId]) {
lhScoreGroupByBuildId[stat.buildId][key] = score;
} else {
lhScoreGroupByBuildId[stat.buildId] = {
[key]: score,
} as LighthouseScoreType;
}
});
return lhScoreGroupByBuildId;
}