Skip to main content

Master Mind

Introduction

MasterMind is helper class that is fully dedicated to manage the model id field, it is used internally by the model class to keep tracking of generated ids and gets the proper next id.

tip

For SQL People, consider it more likely the INFORMATION_SCHEMA table.

Master Mind Collection

Any model that is being saved, the model's collection name and the last saved id are stored in MasterMind collection, the purpose of this collection is to keep tracking of the last saved id for each collection

Get last id

If you want to get the last id of any collection, consider the following snippet:

import { masterMind } from "@warlock.js/cascade";

async function main() {
const lastId = await masterMind.getLastId("categories");

console.log(lastId); // 512344
}

main();
note

We imported masterMind as an object, if you want to create a new instance of it, you may import MasterMind class instead.

Generate next id

To generate the next id of any collection, consider the following snippet:

import { masterMind } from "@warlock.js/cascade";

async function main() {
const initialId = 1;
const incrementBy = 1;
const nextId = await masterMind.getNextId(
"categories",
initialId,
incrementBy
);

console.log(nextId); // 1

const nextId2 = await masterMind.getNextId(
"categories",
initialId,
incrementBy
);

console.log(nextId); // 2
}

main();

getNextId method accepts three arguments:

  • collectionName: The collection name
  • initialId: The initial id value, it will be used if the collection name does not exist in the MasterMind collection
  • incrementBy: The increment value, it will be used if the collection name does not exist in the MasterMind collection