function readGlobalSchema()

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);
    }