Skip to content

Latest commit

 

History

History
722 lines (535 loc) · 34.6 KB

CHANGELOG.md

File metadata and controls

722 lines (535 loc) · 34.6 KB

Change Log

All notable changes to this project will be documented in this file. This project does its best to adhere to Semantic Versioning.


0.32.0 - 2022-02-21

Change

  • Removed DtoAllFuncs<,> interface in favor of optional properties and 2nd generic type on DtoFuncs<> interface
  • Fix reference from '@twg2/[email protected]upgradeast-types.d.tsrenamedcode-ast.d.ts`

0.31.0 - 2022-01-02

Change

  • Update to TypeScript 4.4

0.30.0 - 2021-10-01

Added

  • Most of the same unit tests as the lokijs project
  • Collection properties and constructor options cloneObjects and cloneFunc
  • DynamicView count()
  • Resultset count()
  • Added LokiOps.$aeq from lokijs

Changed

  • Resultset.data() options parameter added with clone option
  • Resultset.LokiOps made public
  • Moved clone functions from MemDbImpl to new CloneUtil file

Fixed

  • Fix several bugs revealed by unit tests, ported fixes from lokijs project

0.29.1 - 2021-09-02

Added

Change

  • Update dependency to @twg2/[email protected]
  • Remove old unrelated test/CompileManualBrowserBundleTest and resulting unused devDependencies

0.29.0 - 2021-06-12

Change

  • Update to TypeScript 4.3

0.28.0 - 2021-03-16

Change

  • Remove Q dependency (still used as a devDependency)
  • Update dependencies for Q dependency removal
  • Change all Q.Promise and Q.IPromise types to PsPromise (from ts-promises package)

0.27.0 - 2020-09-05

Change

  • Update to TypeScript 4.0

0.26.1 - 2020-08-12

Fixed

  • Fix a bug adding items via MemDbImpl.addOrUpdateWhere() which affects DataCollection addOrUpdateWhere() and addOrUpdateWhereNoModify(), an extraneous undefined: undefined property was being added to the inserted item(s)

0.26.0 - 2019-12-06

Changed

  • Renamed interface InMemDb -> MemDb
  • Renamed InMemDbImpl.ts -> MemDbImpl.ts

Removed

  • MemDb.createDataPersister(), callers can access the appropriate classes and create persisters matching their needs

0.25.2 - 2019-11-08

Changed

  • Updated to TypeScript 3.7 and other dependencies

0.25.1 - 2019-06-18

Fixed

  • Fix WebSqlPersister to throw an error instead of infinitely looping when trying to persist with a maxObjectsPerChunk of zero or null
  • Fix a WebSqlSpi issue calling Database methods without a this. context
  • Fix a TypeScript error when importing this into another project mixing TypeScript 3.2 and 3.5

0.25.0 - 2019-06-18

Added

  • Alpha quality IndexedDbPersister and IndexedDbSpi - unit test development started, still needs a lot of testing and some fixes

Changed

  • WebSqlSpi.WebSqlDatabase flattened into just WebSqlSpi (DbUtils moved to DbUtil)
  • WebSqlPersister.restore() defaultOptions parameter no longer defaults dataColumnName to WebSqlPersister.defaultDataColumnName and maxObjectsPerChunk no longer defaults to WebSqlPersister.MAX_OBJECTS_PER_PERSIST_RECORD
  • WebSqlSpi.execSqlStatements() `xactMethodType moved from last parameter position to second parameter
  • WebSqlPersister
    • tablesToNotClear and tablesToNotLoad fields changed from static to instance and added to constructor parameters
    • addCollectionRecords() options.maxObjectsPerChunk no longer defaults to 1000, specify a value
  • DataPersister.Trace renamed DataPersister.DbLogger
  • Moved WebsqlSpi.DbUtils into its own file DbUtil
  • Removed unnecessary try-catch-rethrow from Resultset.where()
  • Changed some Collection catch blocks to log errors to this.events.emit('error', ...) instead of the console
  • Update to TypeScript 3.5 and fix compile errors

Removed

  • MemDbCollection and Collection byExample(), findObject(), and findObjects() use DataCollection.data() and where() instead

Fixed

  • Fixed Collection.lookup() returning a method when passing null for the key
  • Fixed WebSqlPersister.createInsertStatements() to always run itemSaveConverter on data rows being persisted regardless of other config options

0.24.7 - 2019-03-21

Fixed

  • ts-code-generator import/reference paths not being updated to @twg2/ts-twg-ast-codegen

0.24.6 - 2019-03-20

Changed


0.24.5 - 2019-03-14

Changed

  • Update dependency [email protected] (fix for Strings.isDigit(), removal of Objects.getProps() and Strings.endsWith(), and several other changes)

0.24.4 - 2018-12-29

Changed

  • Update ts-code-generator dependency

0.24.3 - 2018-12-29

Changed

  • Update to TypeScript 3.2 and fix compile errors
  • Update dev and @types/ dependencies
  • Remove tsconfig.json lib "dom" and cleanup code to not rely on browser globals
  • Exposed MemDbPersisters.localStorage to allow for custom implementations

0.24.2 - 2018-11-23

Changed

  • Update dependency [email protected] (fix for Functions.lazy() when initializer returns null)

0.24.1 - 2018-10-20

Changed

  • Switch package.json github dependencies from tag urls to release tarballs to simplify npm install (doesn't require git to npm install tarballs)

0.24.0 - 2018-10-17

Changed

  • Update to TypeScript 3.1
  • Update dev dependencies and @types
  • Enable tsconfig.json strict and fix compile errors
  • Removed compiled bin tarball in favor of git tags
  • MemDbCollectionOptions now has a generic type which narrows the array type of indices, exact, and unique properties
  • mem-collections.d.ts keyof T types restricted by & string across several method signatures

Fixed

  • Ensure TsEventEmitter.events is always initialized

0.23.0 - 2018-04-14

Changed

  • Update to TypeScript 2.8
  • Setup dependencies as proper npm node_modules
  • Added release tarball and npm script build-package to package.json referencing external process to generate tarball

Removed

  • Remove ts-promises unused dependency

0.22.4 - 2018-03-01

Changed

  • Update to TypeScript 2.7
  • Update dependencies: mocha, @types/chai, @types/mocha, @types/node
  • Enable tsconfig.json noImplicitAny

0.22.3 - 2018-01-31

Change

  • SQLError message now included in errors thrown by WebSqlSpi _rejectError()

Fixed

  • A bug in WebSqlPersister related to persisting empty collections

0.22.2 - 2017-11-08

Fixed

  • A bug in WebSqlSpi.WebSqlDatabase.openDatabase() that was rejecting the database initialization promise when the database was successfully opened
  • WebSqlPersister.WebSqlAdapter.persist() now correctly tracks the byte size of the restored data strings
  • DataCollection mem-collections.d.ts reference changed to mem-db.d.ts to fix compile issue when compiling just the DataCollection file

0.22.1 - 2017-11-07

Change

  • Updated and fixed some README info

Fixed

  • Some errors when compiling without strictNullChecks
  • Nested loop counter not getting initialized in WebSqlSpi.execSqlStatements() when passed a query with an args array containing one or more elements

0.22.0 - 2017-11-06

Integrate simplified version of Lokijs code into this project, remove Lokijs dependency

Added

  • Ported lokijs@~1.3.0 to project and removed lokijs dependency from package.json
    • Copied lokijs into db-collections new classes: Collection, DynamicView, Resultset, MemDbPersisters, and TsEventEmitter
    • Removed lokijs 'deep.property.scan' query feature to reduce complexity
    • Removed LokiEventEmitter asyncListeners option since it causes performance issues
    • Delegation instead of inheritance: Loki, Collection, DynamicView, and Resultset no longer extend EventEmitter. All of these, excluding Resultset, now contain events fields which are instances of EventEmitter.
    • Merged InMemDbImpl with Loki
  • WebSqlSpi containing low level interface for reading/writing parameterized queries to WebSQL tables in browser
  • WebSqlPersister implements DataPersister and creates basic WebSQL queries for persisting and restoring DataCollections
    • WebSqlPersister is decoupled for WebSqlSpi via a simple interface with two methods: getTables() and executeQueries(WebSqlSpi.SqlQuery[])

Changed

  • Added strictNullChecks to tsconfig.json and updated code to handle nulls
  • Improved data types with null checks
  • Updated to [email protected] (strict null checks)
  • Merged Loki dependency library/class with InMemDbImpl
  • Renamed InMemDb.getCollections() -> listCollections()
  • Renamed InMemDbImpl fields: dbName -> name, merged fields syncSettings and storeSettings into new settings field
  • Merged and consolidated Loki interfaces with in-mem-collections.d.ts interfaces
  • Renamed and split definition file in-mem-collections.d.ts into mem-collections.d.ts, mem-db.d.ts, and mem-models.d.ts
  • Merged DtoSvcFuncs and DtoAllFuncs interfaces, renamed fields convertToLocalObjectFunc -> toLocalObject and convertToSvcObjectFunc -> toSvcObject

Removed

  • InMemDbImpl fields: db and dbInitializer
  • InMemDbImpl databaseInitializer constructor field and merged constructor fields syncSettings and storeSettings into new settings field
  • InMemDb initializeDb() since there is no underlying InMemDbProvider anymore
  • Removed DtoSvcFuncs interface (mreged with DtoAllFuncs

0.21.0 - 2017-10-26

Changed

  • ModelDefinitions interface changes:
    • getPrimaryKeyNames() renamed getPrimaryKeys()
    • getAutoGeneratedKeyNames() renamed getAutoGeneratedKeys()
    • getFieldNames() renamed getFields()
    • getDataModel() renamed getModel()

Removed

  • Removed ModelDefinitionsSet fields: dataTypes and models
  • Removed interface ModelDefinitions.DataTypeDefault

0.20.5 - 2017-08-05

Changed

  • Update to TypeScript 2.4

0.20.4 - 2017-06-09

Changed


0.20.3 - 2017-05-26

Changed

  • Upgraded to [email protected]
  • Improved LokiQueryLike type
  • Added empty result check to DataCollection.lookup(); align behavior with single(). Also added throwIfNotFound flag to allow it to also work like first()

0.20.2 - 2017-05-26

Changed

  • Improved first() and single() implementation
  • Some additional documentation

0.20.1 - 2017-05-26

Added

  • Added DataCollection.single() to provide single object lookup functionality

0.20.0 - 2017-05-26

Added

  • Added DataCollection.lookup() to provide primary key lookup functionality

Changed

  • Renamed DataCollection and InMemDb findOne() -> first()
  • Improved LokiQueryLike interface
  • Added more method documentation

Removed

  • Removed/renamed InMemDb.findSinglePropQuery() -> InMemDb.data()

0.19.2 - 2017-05-22

Changed

  • Fixed an issue with Query not matching valid queries
  • Renamed/changed Query definition to LokiQueryLike<E, K>

0.19.1 - 2017-05-19

Changed

  • Improved DataCollection E and P types and fixed Query<E> type bug

0.19.0 - 2017-05-19

Changed

  • DataCollection<E, O> changed to DataCollection<E, P> - O represented an optional props version of E, P now represents the required primary key props of the E model and Partial<E> is used internally in place of O
    • Improved type of 'query' parameters used by data(), find(), updateWhere(), and similar methods
  • Added missing types and tightened type requirements on various InMemDb and DataCollection methods
  • Added additional DataPersister methods to allow for more control of the underlying persistent data source

0.18.2 - 2017-05-09

Changed

  • Updated some documentation
  • Updated to TypeScript 2.3, added tsconfig.json, use @types/ definitions

0.18.1 - 2017-04-19

Changed

  • ModelDefinitionsSet.cloneDtoPropertyTemplate() now includes 'server.toLocal'

0.18.0 - 2017-03-01

Changed

  • DataCollectionModel fieldNames, primaryKeys, and autoGeneratedKeys type changed from string to keyof

0.17.0 - 2016-12-29

Changed

  • Renamed LokiDbImpl -> InMemDbImpl
  • Renamed LokiDbImplTest -> InMemDbImplTest
  • Some test case refactoring, new CloneBenchmarkTest and TestModels files

Removed

  • InMemDbImpl.benchmarkClone() method moved to new CloneBenchmarkTest file

0.16.0 - 2016-12-21

Changed

  • Switched from Lokijs explicit import and type usage to new InMemDbProvider interface (moving away from Lokijs dependency toward generic in-mem DB API)
  • Removed LokiDbImpl.getCollection() 'settings' parameter, instead use LokiDbImpl 'createCollectionSettingsFunc' parameter
  • Removed unused LokiDbImpl.initializeDb() 'options' parameter
  • Added LokiDbImpl constructor parameters 'createCollectionSettingsFunc' and 'modelKeysFunc' to give more control over Lokijs specific implementation details
  • TypeScript 2.0 compatibility tweaks

0.15.0 - 2016-11-03

Added

  • LokiDbImpl() constructor 'reloadMetaData' flag and 'dbInitializer' function parameters
  • PrimaryKeyMaintainer() constructor 'reloadAll' flag parameter

Removed

  • LokiDbImpl private _setNewDb() method and private static _createNewDb() method in favor of initializeDb() and the constructor's new 'dbInitializer' parameter

Fixed

  • primary key maintainer now properly handles collection data model 'autoGeneratedKeys' changes. Previously if the model changed, the PrimaryKeyMaintainer would end up confusing the old keys with the new keys and add the wrong auto-generated properties to objects missing them.

0.14.0 - 2016-09-19

Changed

  • Updated to version 0.11.0 of ts-mortar which moved ts-mortar/events/ to a separate library
    • Added [email protected] dependency for the EventListenerList previously provided by ts-mortar and used by DataCollection

0.13.1 - 2016-08-24

Fixed

  • Fixed some .d.ts paths to match DefinitelyTyped structure
  • Fixed issue with ModelDefinitionsSet.cloneDtoPropertyTemplate()

0.13.0 - 2016-05-27

Changed

  • Renamed PermissionedDataPersistAdapter -> PermissionedDataPersister
  • Renamed DataPersister.AdapterFactory -> DataPersister.Factory
  • Renamed DataPersister.clearPersistenceDb() -> clearPersistentDb()
  • Moved DataPersister.Adapter interface up and merged it with DataPersister module
  • Made DataCollection.collection public to make it easy to access the underlying lokijs collection (please note this field is meant to be readonly)

Removed


0.12.5 - 2016-05-27

Changed

  • More thorough error handling in SyncDataCollection.syncDownCollection()

Removed

  • Removed last modified timestamp filtering when updating local items after syncing up since primary key filtering should already restrict the search results sufficently

0.12.4 - 2016-05-26

Changed

  • work with latest version of ts-promises library
  • use mocha and chai for tests instead of qunit

0.12.3 - 2016-05-26

Changed

  • Changed to work with latest version of ts-mortar and new ts-typed-promises library

0.12.2 - 2016-05-25

changed

  • Replaced two console.error() calls with throw new Error()

Fixed

  • Added 'syncingDown' error property to syncDownCollection() and changed 'syncDownFunc' type so sync functions don't have to return a SyncError

0.12.1 - 2016-05-24

Changed

  • Updated to use new version of ts-mortar and new ts-promise-tasks library
  • Updated readme

Fixed

  • Fixed error in syncUpCollection() not rejecting promise correctly if sync function failed

0.12.0 - 2016-05-18

Changed

  • Added some documentation to change-trackers, db-collections, and sync
  • Renamed ChangeTrackersImpl -> ChangeTrackers
  • Renamed DataCollectionImpl -> DataCollection

0.11.0 - 2016-05-15

Added

  • Added DtoCollection which extends DataCollection and changes the parameters/return types of some functions with the goal of making a collection interface for DTO server syncable collections
    • renamed DataCollectionImpl.fromWebServiceModel() -> fromDtoModel() (which returns the new DtoCollection type) and added fromDataModel() (which returns the existing DataCollection type)

Changed

  • ts-code-generator library required version bumped to 0.15.0 - small name and type changes to work with latest version
  • Moved ModelDefinitions.dataTypes type to it's own ModelDefinitions.DataTypeDefault interface
  • Refactored collection models, they are now split into two pieces: DtoModel and DtoFuncs or DtoAllFuncs, instead of being combined, this changes several interfaces and function signatures:
    • Renamed interfaces:
      • DataCollectionModelFuncs -> DtoFuncs
      • DataCollectionModelSvcFuncs -> DtoSvcFuncs
      • DataCollectionModelAllFuncs -> DtoAllFuncs
    • Function signature includes new 'modelFuncs' or similar parameter:
      • DataCollectionImpl.fromWebServiceModel()
      • ModelDefinitionsSet: addModel(), modelDefToCollectionModelDef(), and modelDefsToCollectionModelDefs()

Fixed

  • ModelDefinitionsSet.cloneDtoPropertyTemplate() was incorrectly converting 'undefined' default values to 'null'

0.10.1 - 2016-05-14

Changed

  • updated ts-code-generator package version, requires 0.14.1 or higher,
  • updated interfaces name referencess to matched new/renamed interfaces from ts-code-generator interface definitions
  • Renamed ModelDefinitionsSet methods:
    • extendModelDef() -> extendModelTemplate()
    • multiExtendModelDef() -> multiExtendModelTemplate()
  • Renamed in-mem-collections.d.ts interfaces:
    • CollectionModel -> DtoCollectionModel
    • CollectionSvcModel -> DtoCollectionSvcModel
    • CollectionSvcModelNamed -> DtoCollectionSvcModelNamed

0.10.0 - 2016-05-13

Added

  • ModelDefinitions.modelNames array (also added to subclass ModelDefinitionsSet) for easy access instead of having to use Object.keys()
  • Added CollectionSvcModelNamed interface

Changed

  • ModelDefinitions.models (and ModelDefinitionsSet.addModel() and constructor) now add a 'name' property to the models
  • Improved ModelDefinitionsSet.cloneDeep data type.
  • Renamed interfaces:
    • CollectionModelDef -> CollectionModel
    • CollectionModelWithSvcDef -> CollectionSvcModel

Fixed

  • ModelDefinitionsSet.addModel() now copies when storing it internally to match constructor behavior

0.9.1 - 2016-05-06

Changed

  • Added cloneWithoutMetaData_clone_delete() to mirror original clone functionality
  • Renamed LokiDbImpl clone methods to cloneCloneDelete(), cloneForInIf(), cloneKeysExcludingFor(), cloneKeysForIf()

0.9.0 - 2016-05-05

Changed

  • Updated to use latest version of ts-mortar 0.5.4 (renamed Objects.cloneMap() -> map())
  • Added cloneType string parameter to LokiDbImpl constructor
  • Renamed LokiDbImpl.prototype.stripMetaData() -> cloneWithoutMetaData()
  • Renamed LokiDbImpl.stripMetaData() in favor of cloneDeepWithoutMetaData() or one of the specific implementations: cloneWithoutMetaData_for_in_if(), cloneWithoutMetaData_keys_excluding_for(), cloneWithoutMetaData_keys_for_if()

0.8.2 - 2016-04-20

Added

  • A CHANGELOG.md covering all previous releases after being reminded about the need for change longs on http://keepachangelog.com/
  • ModelDefinitionsSet.cloneDtoPropertyTemplate()

Changed

  • Moved .d.ts definition files to separate definitions library
  • Moved ts-mortar dependency location
  • Updated TypeScript compiler to 1.8
  • Removed lodash dependency, in favor of optional caller provided 'cloneDeep' function parameters to various functions with default fallback to 'ts-mortar' Objects.cloneDeep()

0.8.1 - 2016-03-12

Added

  • SyncDataCollection documention

Changed

SyncSettingsBuilder (unifying function names):

  • Added fromDataCollectionAndSyncFuncs() 'findFilterFunc' parameter
  • Renamed setSettings() -> addSettingsInst()
  • Renamed setSyncDown() -> addSyncDownSettings()
  • Renamed setSyncUp() -> addSyncUpSettings()

0.8.0 - 2016-03-11

Added

'Syncing' functionality - for asynchronously sending and receiving DataCollection data and merging it with an existing data collection

  • sync/SyncDataCollection.ts - with syncDownCollection() and syncUpCollection() functions as well as parameters to control how changes are synced, see:
    • SyncDataCollection.SyncDownOp enum - which provides options for removing or preserving existing data during a sync and adding or merging new data
  • sync/SyncSettingsBuilder.ts - a someone complex Builder pattern class for building SyncSettings* interface instances
  • sync/syncing-types.d.ts - with all the new interfaces

Changed

  • ModelDefinitionsSet constructor 'dataModels' parameter string map and addModel() 'model' types changed from CollectionModelDef -> CollectionModelWithSvcDef
  • Added DataCollectionImpl constructor 'dataModelFuncs' parameter
  • Renamed interface CollectionDataModel -> DataCollectionModel

0.7.1 - 2015-12-22

Fixed

  • LokiDbImpl.removeWhere() bug not properly querying the collection and not properly removing when query returned multiple results

0.7.0 - 2015-12-20

Added

  • InMemDb.initializeLokijsDb() to allow the underlying database to be constructed after creating an InMemDb instance
  • DataPersister.AdapterFactory interface

Changed

  • Decoupled DataPersister interface from InMemDb
  • Updated test cases

Removed

  • LokiDbImpl _findOneOrNull(), _findNResults(), _findMultiProp() have been removed from the public API
  • Several DataPersister.Adapter: setDataStoreInterface(), setDataSources(), setDataConverters(), save(), and load() functions

0.6.1 - 2015-12-17

Changed

  • ModelDefinitionsSet extendModelDef() and multiExtendModelDef() 'DtoPropery' string map parameters changed to 'DtoPropertyTemplate' string maps

0.6.0 - 2015-12-17

Added

  • Added first qunit test cases for LokiDbImpl
  • Added ModelDefinitionsSet.addModel()

Changed

  • Renamed CollectionDataModelImpl -> ModelDefinitionsSet
  • Renamed interface WebServiceModelDef -> DtoModelTemplate
  • LokiDbImpl internal class name updated from InMemDbImpl to LokiDbImpl to match file name

Removed

  • Removed SimpleTemplate interface, see ts-code-generator project

0.5.2 - 2015-12-16

Added

  • Added DataCollectionImpl.fromWebServiceModel() static constructor
  • Added CollectionDataModelImpl modelDefToCollectionModelDef() and modelDefsToCollectionModelDefs() to convert WebServiceModelDef or CollectionModelDef objects to CollectionDataModel

Changed

  • Renamed DefaultModelDefinitions -> CollectionDataModelImpl
  • CollectionDataModel interfaces 'copyFunc' return type narrowed from any to E

0.5.1 - 2015-12-15

Changed

  • ModelDefinitionsTemplate interface renamed SimpleTemplate and no longer extends ModelDefinitions, 'templateVariables' property renamed 'templateExpressions'
  • Copied .d.ts definition files from DefinitelyTyped for Q, lodash, lokijs, and qunit

Fixed

  • DefaultModelDefinitions.generateAdditionalModelsInfo() nested loop reusing 'i' and 'size' variables bug

0.5.0 - 2015-12-15

Added

  • data-model/DefaultModelDefinitions.ts - a map of model definitions for an entire database, see Changed notes below

Changed

  • Major API refactor, switched to data model backed design. Each collection is backed by a runtime data model containing a list of properties belonging to that model, each fields' client and server name, data type, server-to-client and client-to-server conversion code, as well as an optional manual copy function.
  • DataCollection constructor and multiple InMemDb function interfaces definitions require a new 'dataModel' parameter, related implementation code updated as well

Removed

  • ModelKeysImpl getUniqueIdNames() and getGeneratedIdNames() in favor of new getDataModel() function

0.4.1 - 2015-12-11

Changed

  • Replaced some lodash function calls with plain javascript equivalent code in LokiDbImpl (goal of removing lodash dependency completely)

Fixed

  • ChangeTrackersImpl bug was causing addChange*() functions to count arrays of item changes as only 1 change
  • LokiDbImpl stripMetaData() now removes Lokijs '$loki' and 'meta' properties from cloned objects

0.4.0 - 2015-11-21

Added

  • DataCollection interface

Changed

  • Renamed DataCollection -> DataCollectionImpl

0.3.0 - 2015-11-19

Added

NonNullKeyMaintainer for checking null fields in collections

Changed

  • Moved PermissionedDataPersistAdapter from LokiDbImpl to 'db-collections/PermissionedDataPersisterAdapter.ts'
  • PrimaryKeyMaintainer.manageKeys() now requires an array of items to manage, instead of allowing either an array or one item

Removed

Removed collection name based API from InMemDb and related classes, API now requires collection instance rather than collection name for DB CRUD functions. Also modified most of the InMemDb function names, removed '_' prefix, added 'noModify' parameters


0.2.1 - 2015-11-17

Changed

  • Split ModelDefinitions into two interfaces, new 'ModelDefinitionsTemplate extends ModelDefinitions'
  • Removed ModelDefinitions 'templateStartMark', 'templateEndMark', and 'templateInputLinks' properties
  • These properties become 'templateDelimiterStart', 'templateDelimiterEnd', and 'templateContextPropLinks' in ModelDefinitionsTemplate
  • Updated ts-mortar and ts-code-generator dependency versions

0.2.0 - 2015-11-11

Changed

  • Renamed InMemDbImpl -> LokiDbImpl
  • Moved DataCollection and LokiDbImpl to db-collections/ directory
  • LokiDbImpl and PrimarykeyMaintainer constructors requires a name parameter for the internal metadata collection
  • ModelDefinitions 'models' string map type changed from ServiceTypesDefinition -> WebServiceModelDef

0.1.0 - 2015-11-10

Added

Initial commit of code for accessing Lokijs collections in a strongly typed way in TypeScript

  • DataCollection.ts - with add, update, remove, and find functions including variations such as addOrUpdateWhere() which performs a query and updates existing items or adds a new item depending on if there are any existing items
  • InMemDbImpl.ts - a wrapper around a lokijs database instance which exposes operations such as add, update, find, findOne, clear, and remove. This acts as a layer of separation between a DataCollection (high level queries, add, and remove) and database specific details such as transactions, error handling, event logging, etc which are handled by this class
  • change-trackers/ChangeTrackersImpl.ts - for constructing objects which count 'added', 'modified', and 'removed' changes
  • change-trackers/collection-changes.d.ts - interfaces for change trackers
  • in-mem-collections.d.ts - interfaces for DataCollection, in-mem database, database serialization and deserialization APIs, and colllection metadata models
  • key-constraints/CollectionMetaData.ts - simple collection metadata, currently including collection name, primary key column names, and auto-generated column names with last auto-generated key
  • key-constraints/ModelKeysImpl.ts - functions for tracking and generating auto-generated keys
  • key-constraints/PrimaryKeyMaintainer.ts - manages loading, tracking, and generating unique keys