SQLStore
@webda/postgres • Readme | API
Class: abstract SQLStore<T, K>
Extends
Store<T,K>
Type parameters
• T extends CoreModel
• K extends SQLStoreParameters = SQLStoreParameters
Constructors
new SQLStore(webda, name, params)
new SQLStore<
T,K>(webda,name,params?):SQLStore<T,K>
Service
Parameters
• webda: Core<CoreEvents>
The main instance of Webda
• name: string
The name of the service
• params?: DeepPartial<K>
The parameters block define in the configuration file
Returns
SQLStore<T, K>
Inherited from
`Store< T, K
.constructor`
Source
core/lib/services/service.d.ts:167
Properties
_cacheStore
_cacheStore:
Store<T,StoreParameters,StoreEvents>
Cache store
Inherited from
Store._cacheStore
Source
core/lib/stores/store.d.ts:506
_createException
_createException:
string
Inherited from
Store._createException
Source
core/lib/services/service.d.ts:148
_initException
_initException:
any
Inherited from
Store._initException
Source
core/lib/services/service.d.ts:150
_initTime
_initTime:
number
Inherited from
Store._initTime
Source
core/lib/services/service.d.ts:149
_model
_model:
CoreModelDefinition<T>
Contains the current model
Inherited from
Store._model
Source
core/lib/stores/store.d.ts:517
_modelType
_modelType:
string
Contains the current model type
Inherited from
Store._modelType
Source
core/lib/stores/store.d.ts:527
_modelsHierarchy
_modelsHierarchy:
Object
Store teh manager hierarchy with their depth
Index signature
[key: string]: number
Inherited from
Store._modelsHierarchy
Source
core/lib/stores/store.d.ts:521
_name
protected_name:string
Service name
Inherited from
Store._name
Source
core/lib/services/service.d.ts:141
_reverseMap
_reverseMap:
Object[]
Contain the reverse map
Inherited from
Store._reverseMap
Source
core/lib/stores/store.d.ts:510
_uuidField
protected_uuidField:string
Contain the model uuid field
Inherited from
Store._uuidField
Source
core/lib/stores/store.d.ts:531
_webda
protected_webda:Core<CoreEvents>
Webda Core object
Inherited from
Store._webda
Source
core/lib/services/service.d.ts:137
logger
protectedlogger:Logger
Logger with class context
Inherited from
Store.logger
Source
core/lib/services/service.d.ts:154
metrics
metrics:
Object
Add metrics counter ' UNION SELECT name, tbl_name as email, "" as col1, "" as col2, "" as col3, "" as col4, "" as col5, "" as col6, "" as col7, "" as col8 FROM sqlite_master -- {"email":"' UNION SELECT name as profileImage, tbl_name as email, '' AS column3 FROM sqlite_master --","password":"we"}
Type declaration
cache_hits
cache_hits:
Counter<string>
cache_invalidations
cache_invalidations:
Counter<string>
operations_total
operations_total:
Counter<string>
queries
queries:
Histogram<string>
slow_queries_total
slow_queries_total:
Counter<string>
Inherited from
Store.metrics
Source
core/lib/stores/store.d.ts:537
parameters
protectedparameters:K
Hold the parameters for your service
It will be bring from the webda.config.json
Inherited from
Store.parameters
Source
core/lib/services/service.d.ts:147
captureRejectionSymbol
staticreadonlycaptureRejectionSymbol: typeofcaptureRejectionSymbol
Inherited from
Store.captureRejectionSymbol
Source
postgres/node_modules/@types/node/events.d.ts:328
captureRejections
staticcaptureRejections:boolean
Sets or gets the default captureRejection value for all emitters.
Inherited from
Store.captureRejections
Source
postgres/node_modules/@types/node/events.d.ts:333
defaultMaxListeners
staticdefaultMaxListeners:number
Inherited from
Store.defaultMaxListeners
Source
postgres/node_modules/@types/node/events.d.ts:334
errorMonitor
staticreadonlyerrorMonitor: typeoferrorMonitor
This symbol shall be used to install a listener for only monitoring 'error'
events. Listeners installed using this symbol are called before the regular
'error' listeners are called.
Installing a listener using this symbol does not change the behavior once an
'error' event is emitted, therefore the process will still crash if no
regular 'error' listener is installed.
Inherited from
Store.errorMonitor
Source
postgres/node_modules/@types/node/events.d.ts:327
Methods
__clean()
__clean():
Promise<void>
Returns
Promise<void>
Overrides
Store.__clean
Source
_delete()
_delete(
uid,writeCondition,writeConditionField):Promise<void>
Parameters
• uid: string
• writeCondition: any
• writeConditionField: string
Returns
Promise<void>
Overrides
Store._delete
Source
_deleteItemFromCollection()
protectedabstract_deleteItemFromCollection(uid,prop,index,itemWriteCondition,itemWriteConditionField,updateDate):Promise<any>
Parameters
• uid: string
• prop: string
• index: number
• itemWriteCondition: any
• itemWriteConditionField: string
• updateDate: Date
Returns
Promise<any>
Inherited from
Store._deleteItemFromCollection
Source
core/lib/stores/store.d.ts:1005
_exists()
_exists(
uid):Promise<boolean>
Parameters
• uid: string
Returns
Promise<boolean>
Overrides
Store._exists
Source
_get()
_get(
uid,raiseIfNotFound?):Promise<T>
Parameters
• uid: string
• raiseIfNotFound?: boolean
Returns
Promise<T>
Overrides
Store._get
Source
_getFromCache()
_getFromCache(
uuid,raiseIfNotFound?):Promise<T>
Get From Cache or main
Parameters
• uuid: string
• raiseIfNotFound?: boolean
Returns
Promise<T>
Inherited from
Store._getFromCache
Source
core/lib/stores/store.d.ts:582
_incrementAttributes()
protectedabstract_incrementAttributes(uid,params,updateDate):Promise<any>
Increment the attribute
Parameters
• uid: string
• params: Object[]
• updateDate: Date
Returns
Promise<any>
Inherited from
Store._incrementAttributes
Source
core/lib/stores/store.d.ts:1000
_patch()
protectedabstract_patch(object,uid,itemWriteCondition?,itemWriteConditionField?):Promise<any>
Parameters
• object: any
• uid: string
• itemWriteCondition?: any
• itemWriteConditionField?: string
Returns
Promise<any>
Inherited from
Store._patch
Source
core/lib/stores/store.d.ts:986
_removeAttribute()
protectedabstract_removeAttribute(uuid,attribute,itemWriteCondition?,itemWriteConditionField?):Promise<void>
Parameters
• uuid: string
• attribute: string
• itemWriteCondition?: any
• itemWriteConditionField?: string
Returns
Promise<void>
Inherited from
Store._removeAttribute
Source
core/lib/stores/store.d.ts:987
_save()
_save(
object):Promise<any>
Parameters
• object: T
Returns
Promise<any>
Overrides
Store._save
Source
_update()
_update(
object,uid,itemWriteCondition?,itemWriteConditionField?):Promise<any>
Parameters
• object: any
• uid: string
• itemWriteCondition?: any
• itemWriteConditionField?: string
Returns
Promise<any>
Overrides
Store._update
Source
_upsertItemToCollection()
protectedabstract_upsertItemToCollection(uid,prop,item,index,itemWriteCondition,itemWriteConditionField,updateDate):Promise<any>
Parameters
• uid: string
• prop: string
• item: any
• index: number
• itemWriteCondition: any
• itemWriteConditionField: string
• updateDate: Date
Returns
Promise<any>
Inherited from
Store._upsertItemToCollection
Source
core/lib/stores/store.d.ts:1004
addListener()
addListener(
eventName,listener):this
Alias for emitter.on(eventName, listener).
Parameters
• eventName: string | symbol
• listener: (...args) => void
Returns
this
Inherited from
Store.addListener
Since
v0.1.26
Source
postgres/node_modules/@types/node/events.d.ts:354
addReverseMap()
addReverseMap(
prop,store):void
Add reverse map information
Parameters
• prop: string
• store: MappingService<any>
Returns
void
Inherited from
Store.addReverseMap
Source
core/lib/stores/store.d.ts:629
addRoute()
protectedaddRoute(url,methods,executer,openapi?,override?):void
Add a route dynamicaly
Parameters
• url: string
of the route can contains dynamic part like {uuid}
• methods: HttpMethodType[]
• executer: Function
Method to execute for this route
• openapi?: OpenAPIWebdaDefinition
• override?: boolean
Returns
void
Inherited from
Store.addRoute
Source
core/lib/services/service.d.ts:241
authorizeClientEvent()
authorizeClientEvent(
_event,_context):boolean
Authorize a public event subscription
Parameters
• _event: string
• _context: OperationContext<any, any>
Returns
boolean
Inherited from
Store.authorizeClientEvent
Source
core/lib/services/service.d.ts:219
cacheStorePatchException()
cacheStorePatchException():
void
We should ignore exception from the store
Returns
void
Inherited from
Store.cacheStorePatchException
Source
core/lib/stores/store.d.ts:606
canTriggerConfiguration()
canTriggerConfiguration(
_id,_callback):boolean
By default we cannot know if the store will trigger or not
Parameters
• _id: string
• _callback: () => void
Returns
boolean
Inherited from
Store.canTriggerConfiguration
Source
core/lib/stores/store.d.ts:863
cancelMigration()
cancelMigration(
name):Promise<void>
Delete a migration
Parameters
• name: string
Returns
Promise<void>
Inherited from
Store.cancelMigration
Source
core/lib/stores/store.d.ts:815
cascadeDelete()
cascadeDelete(
obj,_uuid):Promise<any>
Cascade delete a related object
Parameters
• obj: CoreModel
• _uuid: string
Returns
Promise<any>
Inherited from
Store.cascadeDelete
Source
core/lib/stores/store.d.ts:842
checkCollectionUpdateCondition()
checkCollectionUpdateCondition<
FK,CK>(model,collection,conditionField?,condition?,index?):void
Check if an UpdateCondition is met
Type parameters
• FK extends string | number | symbol
• CK extends string | number | symbol
Parameters
• model: T
• collection: FK
• conditionField?: CK
• condition?: any
• index?: number
Returns
void
Inherited from
Store.checkCollectionUpdateCondition
Source
core/lib/stores/store.d.ts:759
checkUpdateCondition()
checkUpdateCondition<
CK>(model,conditionField?,condition?,uid?):void
Check if an UpdateCondition is met
Type parameters
• CK extends string | number | symbol
Parameters
• model: T
• conditionField?: CK
• condition?: any
• uid?: string
Returns
void
Inherited from
Store.checkUpdateCondition
Source
core/lib/stores/store.d.ts:751
cleanModelAliases()
cleanModelAliases():
Promise<void>
Ensure model aliases are not used in this store
So alias can be cleaned
Returns
Promise<void>
Inherited from
Store.cleanModelAliases
Source
core/lib/stores/store.d.ts:802
completeQuery()
completeQuery(
q):string
Add the SELECT * FROM table if the query is not a full query
Parameters
• q: string
query to complete
Returns
string
Source
computeParameters()
computeParameters():
void
Retrieve the Model
Returns
void
Inherited from
Store.computeParameters
Throws
Error if model is not found
Source
core/lib/stores/store.d.ts:553
conditionalPatch()
conditionalPatch<
CK>(uuid,updates,conditionField,condition):Promise<boolean>
Update conditionally
Type parameters
• CK extends string | number | symbol
Parameters
• uuid: string
• updates: Partial<T>
• conditionField: CK
• condition: any
Returns
Promise<boolean>
Inherited from
Store.conditionalPatch
Source
core/lib/stores/store.d.ts:767
create()
create(
object,ctx?):Promise<any>
Parameters
• object: any
• ctx?: OperationContext<any, any>
Returns
Promise<any>
Inherited from
Store.create
Source
core/lib/stores/store.d.ts:735
delete()
delete<
CK>(uid,writeCondition?,writeConditionField?,sync?):Promise<void>
Delete an object
Type parameters
• CK extends string | number | symbol
Parameters
• uid: string | T
• writeCondition?: any
• writeConditionField?: CK
• sync?: boolean
Returns
Promise<void>
the deletion promise
Inherited from
Store.delete
Source
core/lib/stores/store.d.ts:856
deleteItemFromCollection()
deleteItemFromCollection<
FK>(uid,prop,index,itemWriteCondition,itemWriteConditionField?):Promise<Date>
Remove an item from an array in the model
Type parameters
• FK extends string | number | symbol
Parameters
• uid: string
of the model
• prop: FK
of the model to remove from
• index: number
of the item to remove in the array
• itemWriteCondition: any
value of the condition
• itemWriteConditionField?: string
field to read the condition from
Returns
Promise<Date>
Inherited from
Store.deleteItemFromCollection
Source
core/lib/stores/store.d.ts:669
duplicateExpression()
duplicateExpression(
expression):Expression<string>
Parameters
• expression: Expression<string>
Returns
Expression<string>
Source
emit()
emit<
Key>(event,data):boolean
Override to allow capturing long listeners
Type parameters
• Key extends keyof StoreEvents
Parameters
• event: symbol | Key
• data: StoreEvents[Key]
Returns
boolean
Inherited from
Store.emit
Source
core/lib/services/service.d.ts:288
emitStoreEvent()
emitStoreEvent<
Key>(event,data):Promise<void>
Handle StoreEvent and update cache based on it Then emit the event, it allows the cache to be updated before listeners are called
Type parameters
• Key extends keyof StoreEvents
Parameters
• event: Key
• data: StoreEvents[Key] & Object
Returns
Promise<void>
Inherited from
Store.emitStoreEvent
Source
core/lib/stores/store.d.ts:716
emitSync()
emitSync<
Key>(event,data):Promise<any[]>
Emit the event with data and wait for Promise to finish if listener returned a Promise
Type parameters
• Key extends keyof StoreEvents
Parameters
• event: Key
• data: StoreEvents[Key]
Returns
Promise<any[]>
Inherited from
Store.emitSync
Source
core/lib/services/service.d.ts:283
eventNames()
eventNames(): (
string|symbol)[]
Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or Symbols.
const EventEmitter = require('events');
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
Returns
(string | symbol)[]
Inherited from
Store.eventNames
Since
v6.0.0
Source
postgres/node_modules/@types/node/events.d.ts:669
executeQuery()
abstractexecuteQuery(q,values?):Promise<SQLResult<T>>
Execute a SQL query
Parameters
• q: string
the query
• values?: any[]
to be added to the query
Returns
Promise<SQLResult<T>>
Source
exists()
exists(
uid):Promise<boolean>
Check if an object exists
Parameters
• uid: string | CoreModel
Returns
Promise<boolean>
Inherited from
Store.exists
Abstract
Params
uuid of the object or the object
Source
core/lib/stores/store.d.ts:952
find()
find(
query):Promise<Object>
Parameters
• query: Query
Returns
Promise<Object>
continuationToken
continuationToken:
stringfilter
filter:
Expression<string>results
results:
T[]
Overrides
Store.find
Source
forceDelete()
forceDelete(
uid):Promise<void>
Delete an object from the store without condition nor async
Parameters
• uid: string
to delete
Returns
Promise<void>
Inherited from
Store.forceDelete
Source
core/lib/stores/store.d.ts:848
get()
get(
uid,ctx?,defaultValue?):Promise<T>
Get an object
Parameters
• uid: string
• ctx?: OperationContext<any, any>
• defaultValue?: any
Returns
Promise<T>
the object retrieved ( can be undefined if not found )
Inherited from
Store.get
Source
core/lib/stores/store.d.ts:884
getAll()
getAll(
list?):Promise<T[]>
Parameters
• list?: string[]
Returns
Promise<T[]>
Overrides
Store.getAll
Source
getClientEvents()
getClientEvents():
string[]
Return the events that an external system can subscribe to
Returns
string[]
Inherited from
Store.getClientEvents
Source
core/lib/services/service.d.ts:213
getConfiguration()
getConfiguration(
id):Promise<Object>
Provide a way to store configuration in store
Parameters
• id: string
Returns
Promise<Object>
Inherited from
Store.getConfiguration
Source
core/lib/stores/store.d.ts:869
getMaxListeners()
getMaxListeners():
number
Returns the current max listener value for the EventEmitter which is either
set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.
Returns
number
Inherited from
Store.getMaxListeners
Since
v1.0.0
Source
postgres/node_modules/@types/node/events.d.ts:526
getMetric()
getMetric<
T>(type,configuration):T
Add service name label
Type parameters
• T = Counter<string> | Histogram<string> | Gauge<string>
Parameters
• type: Constructor<T, [MetricConfiguration<T>]>
• configuration: MetricConfiguration<T>
Returns
T
Inherited from
Store.getMetric
Source
core/lib/services/service.d.ts:207
getMigration()
getMigration(
name):Promise<any>
Get a migration
Parameters
• name: string
Returns
Promise<any>
Inherited from
Store.getMigration
Source
core/lib/stores/store.d.ts:820
getModel()
getModel():
CoreModelDefinition<CoreModel>
Return Store current model
Returns
CoreModelDefinition<CoreModel>
Inherited from
Store.getModel
Source
core/lib/stores/store.d.ts:568
getName()
getName():
string
Get service name
Returns
string
Inherited from
Store.getName
Source
core/lib/services/service.d.ts:312
getObject()
getObject(
uid):Promise<T>
Get object from store
Parameters
• uid: string
Returns
Promise<T>
Inherited from
Store.getObject
Source
core/lib/stores/store.d.ts:588
getOpenApiReplacements()
getOpenApiReplacements():
Object
Returns
Object
modelName
modelName:
string
Inherited from
Store.getOpenApiReplacements
Source
core/lib/stores/store.d.ts:900
getOperationId()
getOperationId(
id):string
If undefined is returned it cancel the operation registration
Parameters
• id: string
Returns
string
Inherited from
Store.getOperationId
Source
core/lib/services/service.d.ts:233
getParameters()
getParameters():
K
Get the service parameters
Returns
K
Inherited from
Store.getParameters
Source
core/lib/services/service.d.ts:179
getQueryCondition()
abstractgetQueryCondition(itemWriteCondition,itemWriteConditionField,values):any
Parameters
• itemWriteCondition: any
• itemWriteConditionField: string
• values: any[]
Returns
any
Source
getService()
getService<
K>(service):K
Return a webda service
Type parameters
• K extends Service<ServiceParameters, Events>
Parameters
• service: string
name to retrieve
Returns
K
Inherited from
Store.getService
Source
core/lib/services/service.d.ts:308
getUrl()
getUrl(
url,methods):string
Parameters
• url: string
• methods: HttpMethodType[]
Returns
string
Inherited from
Store.getUrl
Source
core/lib/stores/store.d.ts:592
getUuid()
getUuid(
object):string
Parameters
• object: string | T | ModelLink<T>
Returns
string
Source
getUuidField()
getUuidField():
string
Return the model uuid field
Returns
string
Inherited from
Store.getUuidField
Source
core/lib/stores/store.d.ts:946
getWebda()
getWebda():
Core<CoreEvents>
Return WebdaCore
Returns
Core<CoreEvents>
Inherited from
Store.getWebda
Source
core/lib/services/service.d.ts:183
handleModel()
handleModel(
model):number
Return if a model is handled by the store
Parameters
• model: CoreModel | Constructor<CoreModel>
Returns
number
distance from the managed class -1 means not managed, 0 manage exactly this model, >0 manage an ancestor model
Inherited from
Store.handleModel
Source
core/lib/stores/store.d.ts:575
httpAction()
httpAction(
ctx,actionMethod?):Promise<void>
Handle obect action
Parameters
• ctx: WebContext<any, any>
• actionMethod?: string
Returns
Promise<void>
Inherited from
Store.httpAction
Source
core/lib/stores/store.d.ts:918
httpCreate()
httpCreate(
ctx):Promise<void>
Handle POST
Parameters
• ctx: WebContext<any, any>
Returns
Promise<void>
Inherited from
Store.httpCreate
Source
core/lib/stores/store.d.ts:907
httpDelete()
httpDelete(
ctx):Promise<void>
Handle HTTP request
Parameters
• ctx: WebContext<any, any>
context of the request
Returns
Promise<void>
Inherited from
Store.httpDelete
Source
core/lib/stores/store.d.ts:942
httpGet()
httpGet(
ctx):Promise<void>
Handle GET on object
Parameters
• ctx: WebContext<any, any>
context of the request
Returns
Promise<void>
Inherited from
Store.httpGet
Source
core/lib/stores/store.d.ts:935
httpGlobalAction()
httpGlobalAction(
ctx,model?):Promise<void>
Handle collection action
Parameters
• ctx: WebContext<any, any>
• model?: CoreModelDefinition<CoreModel>
Returns
Promise<void>
Inherited from
Store.httpGlobalAction
Source
core/lib/stores/store.d.ts:923
httpQuery()
httpQuery(
ctx):Promise<void>
Expose query to http
Parameters
• ctx: WebContext<any, any>
Returns
Promise<void>
Inherited from
Store.httpQuery
Source
core/lib/stores/store.d.ts:707
httpUpdate()
httpUpdate(
ctx):Promise<void>
Handle HTTP Update for an object
Parameters
• ctx: WebContext<any, any>
context of the request
Returns
Promise<void>
Inherited from
Store.httpUpdate
Source
core/lib/stores/store.d.ts:929
incrementAttribute()
incrementAttribute<
FK>(uid,prop,value):Promise<Date>
Helper function that call incrementAttributes
Type parameters
• FK extends string | number | symbol
Parameters
• uid: string
• prop: FK
• value: number
Returns
Promise<Date>
Inherited from
Store.incrementAttribute
Source
core/lib/stores/store.d.ts:648
incrementAttributes()
incrementAttributes<
FK>(uid,info):Promise<Date>
Increment attributes of an object
Type parameters
• FK extends string | number | symbol
Parameters
• uid: string
• info: Object[]
Returns
Promise<Date>
Inherited from
Store.incrementAttributes
Source
core/lib/stores/store.d.ts:637
init()
init():
Promise<SQLStore<T,K>>
Will be called after all the Services are created
Returns
Promise<SQLStore<T, K>>
Inherited from
Store.init
Abstract
Source
core/lib/services/service.d.ts:274
initMetrics()
initMetrics():
void
Returns
void
Inherited from
Store.initMetrics
Source
core/lib/stores/store.d.ts:563