@shadow-dev/orm
Version:
Lightweight dynamic MySQL ORM designed for ShadowCore and modular apps.
24 lines (23 loc) • 829 B
JavaScript
;
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")}`;
}