Example #1
0
import 'reflect-metadata'

import {
	Log,
	Repo,
	RepoDescriptor,
	FinderDescriptor,
	Model,
	Attribute,
	DefaultModel
} from "typestore"


const log = Log.create(__filename)


/**
 * Plain Jane super simple model
 */

@Model({tableName:'simple_model_1'})
export class SimpleModel1 extends DefaultModel {

	@Attribute({name:'id',primaryKey:true})
	id:string

	@Attribute({name:'createdAt'})
	createdAt:number


	@Attribute({
	Log,
	Coordinator,
	SyncStrategy,
	Repo,
	Model,
	Attribute,
	RepoDescriptor,
	DefaultModel
} from 'typestore'

// Import the cloud search specific stuff
import {IndexedDBPlugin} from 'typestore-plugin-indexeddb'

// There is a whole logging framework you are welcome to use
// as well - but it could do with docs - pull request?? ;)
const log = Log.create(__filename)


function logToBody(...args) {
	document.getElementById('body').innerHTML += `<br/>${args.join(' ')}`
	console.log.apply(console,args)
}



Log.setLoggerOutput(logToBody as any)

// Define a model, in this case we extend default model
// but you just have to implement IModel,
// which exposes a single get property clazzName
// so this is simple for convience