UNPKG

@shadow-dev/orm

Version:

Lightweight dynamic MySQL ORM designed for ShadowCore and modular apps.

24 lines (23 loc) 829 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getNextId = getNextId; const core_1 = require("../core"); async function getNextId(prefix) { const pool = (0, core_1.getPool)(); await pool.execute(` CREATE TABLE IF NOT EXISTS _id_counters ( prefix VARCHAR(255) PRIMARY KEY, count INT NOT NULL ) `); const [rows] = await pool.query(`SELECT count FROM _id_counters WHERE prefix = ?`, [prefix]); let count = 1; if (rows.length > 0) { count = rows[0].count + 1; await pool.execute(`UPDATE _id_counters SET count = ? WHERE prefix = ?`, [count, prefix]); } else { await pool.execute(`INSERT INTO _id_counters (prefix, count) VALUES (?, ?)`, [prefix, count]); } return `${prefix}-${String(count).padStart(3, "0")}`; }