/** CollectionMetaData - data about a document collection, including name, primary key field names, and auto-generate key names * @author TeamworkGuy2 */ class CollectionMetaData { public collectionName: string; public primaryKeys: { name: string }[]; public autoGeneratedKeys: { name: string; largestKey: number }[]; constructor(collectionName: string, primaryKeyNames: string[], autoGeneratedKeyNames: string[]) { this.collectionName = collectionName, this.primaryKeys = []; this.autoGeneratedKeys = []; var primaryKeys = this.primaryKeys; var autoGeneratedKeys = this.autoGeneratedKeys; for (var i = 0, size = primaryKeyNames.length; i < size; i++) { var pkName = primaryKeyNames[i]; primaryKeys.push({ name: pkName }); } for (var i = 0, size = autoGeneratedKeyNames.length; i < size; i++) { var agName = autoGeneratedKeyNames[i]; autoGeneratedKeys.push({ name: agName, largestKey: null }); } } } module CollectionMetaData { export interface OptionalModel { collectionName?: string; primaryKeys?: { name: string; }[]; autoGeneratedKeys?: { name: string; largestKey: number; }[]; } } export = CollectionMetaData;