in public/dexie.js [4801:4853]
function readGlobalSchema() {
db.verno = idbdb.version / 10;
db._dbSchema = globalSchema = {};
dbStoreNames = slice(idbdb.objectStoreNames, 0);
if (dbStoreNames.length === 0) return; // Database contains no stores.
var trans = idbdb.transaction(
safariMultiStoreFix(dbStoreNames),
"readonly"
);
dbStoreNames.forEach(function (storeName) {
var store = trans.objectStore(storeName),
keyPath = store.keyPath,
dotted =
keyPath &&
typeof keyPath === "string" &&
keyPath.indexOf(".") !== -1;
var primKey = new IndexSpec(
keyPath,
keyPath || "",
false,
false,
!!store.autoIncrement,
keyPath && typeof keyPath !== "string",
dotted
);
var indexes = [];
for (var j = 0; j < store.indexNames.length; ++j) {
var idbindex = store.index(store.indexNames[j]);
keyPath = idbindex.keyPath;
dotted =
keyPath &&
typeof keyPath === "string" &&
keyPath.indexOf(".") !== -1;
var index = new IndexSpec(
idbindex.name,
keyPath,
!!idbindex.unique,
!!idbindex.multiEntry,
false,
keyPath && typeof keyPath !== "string",
dotted
);
indexes.push(index);
}
globalSchema[storeName] = new TableSchema(
storeName,
primKey,
indexes,
{}
);
});
setApiOnPlace([allTables], keys(globalSchema), globalSchema);
}