Skip to main content

Class: Stack

Defined in: server/src/utils/stack/index.ts:66

Extends

  • Stack

Properties

PropertyModifierTypeDefault valueDescriptionInherited fromDefined in
addDesignDocumentPKsabstract(className, pKs, temp?) => Promise<string>undefined-Stack.addDesignDocumentPKsshared/src/utils/stack/index.ts:230
addDomainabstract(domainObj) => Promise<DomainModel>undefined-Stack.addDomainshared/src/utils/stack/index.ts:63
appVersionpublicstring"0.0.1"-Stack.appVersionshared/src/utils/stack/index.ts:28
authSession?publicAuthSessionProofundefined-Stack.authSessionshared/src/utils/stack/index.ts:47
cachepublicobject{}-Stack.cacheshared/src/utils/stack/index.ts:31
connectionpublicstringundefined-Stack.connectionshared/src/utils/stack/index.ts:25
createDocsabstract(docs, type, classObj) => Promise<Document[]>undefined-Stack.createDocsshared/src/utils/stack/index.ts:202
createRelationDocabstract(docId, relationName, domainObj, params) => Promise<RelationDocument>undefined-Stack.createRelationDocshared/src/utils/stack/index.ts:204
createRelationDocsabstract(docs, relationName, domainObj) => Promise<RelationDocument[]>undefined-Stack.createRelationDocsshared/src/utils/stack/index.ts:211
dbpublicDatabase<{ }>undefined-Stack.dbshared/src/utils/stack/index.ts:21
dumpabstract() => Promise<AllDocsResponse<{ }>>undefined-Stack.dumpshared/src/utils/stack/index.ts:49
getDomainabstract(domainName, fresh?) => Promise<Domain>undefined-Stack.getDomainshared/src/utils/stack/index.ts:59
getDomainModelabstract(domainName) => Promise<DomainModel>undefined-Stack.getDomainModelshared/src/utils/stack/index.ts:226
jobEngine?publicunknownundefined-Stack.jobEngineshared/src/utils/stack/index.ts:46
lastDocIdpublicnumberundefined-Stack.lastDocIdshared/src/utils/stack/index.ts:23
listenerspublicChangesSubscription[][]Every live changes subscription this stack has handed out. Held so removeAllListeners can release them on close. Entries are removed by releaseListener, so a long-lived stack that repeatedly subscribes and unsubscribes does not grow this array.Stack.listenersshared/src/utils/stack/index.ts:43
modelWorkerpublicWorkernull-Stack.modelWorkershared/src/utils/stack/index.ts:45
nameabstractstringundefined-Stack.nameshared/src/utils/stack/index.ts:27
options?publicStackOptionsundefined-Stack.optionsshared/src/utils/stack/index.ts:26
patchCountpublicnumberundefined-Stack.patchCountshared/src/utils/stack/index.ts:34
queryabstract(sql, ...params) => Promise< | { ast: (SelectAST | UnionAST)[]; rows: any[]; } | { ast: null; rows: never[]; }>undefined-Stack.queryshared/src/utils/stack/index.ts:232
schemaVersionabstractstringundefined-Stack.schemaVersionshared/src/utils/stack/index.ts:29

Methods

addClass()

addClass(classObj): Promise<ClassModel>;

Defined in: server/src/utils/stack/index.ts:740

Parameters

ParameterType
classObjClass

Returns

Promise<ClassModel>

Overrides

Stack.addClass

addClassLock()

addClassLock(className): Promise<boolean>;

Defined in: server/src/utils/stack/index.ts:436

Parameters

ParameterType
classNamestring

Returns

Promise<boolean>

Overrides

Stack.addClassLock

checkSystem()

checkSystem(): Promise<void>;

Defined in: server/src/utils/stack/index.ts:242

Returns

Promise<void>


clearClassLock()

clearClassLock(className): Promise<boolean>;

Defined in: server/src/utils/stack/index.ts:451

Parameters

ParameterType
classNamestring

Returns

Promise<boolean>

Overrides

Stack.clearClassLock

close()

close(): void;

Defined in: server/src/utils/stack/index.ts:488

Returns

void

Overrides

Stack.close

createDoc()

createDoc(
docId,
type,
classObj,
params): Promise<Document>;

Defined in: server/src/utils/stack/index.ts:991

Parameters

ParameterType
docIdstring
typestring
classObjClass
params{ }

Returns

Promise<Document>

Overrides

Stack.createDoc

deleteDocument()

deleteDocument(_id): Promise<boolean>;

Defined in: server/src/utils/stack/index.ts:1082

Sets the active param of a document to false

Parameters

ParameterTypeDescription
_idstring

Returns

Promise<boolean>

Promise

Async

Overrides

Stack.deleteDocument

destroyDb()

destroyDb(): Promise<boolean>;

Defined in: server/src/utils/stack/index.ts:709

Returns

Promise<boolean>


findDocument()

findDocument(
selector,
fields,
skip,
limit): Promise<Document>;

Defined in: server/src/utils/stack/index.ts:605

Parameters

ParameterTypeDefault value
selectoranyundefined
fieldsanyundefined
skipanyundefined
limitanyundefined

Returns

Promise<Document>


findDocuments()

findDocuments(
selector,
fields?,
skip?,
limit?): Promise<{
[key: string]: any;
docs: Document[];
}>;

Defined in: server/src/utils/stack/index.ts:564

Parameters

ParameterType
selector{ [key: string]: any; }
fields?string[]
skip?number
limit?number

Returns

Promise<{ [key: string]: any; docs: Document[]; }>

Overrides

Stack.findDocuments

getAllClasses()

getAllClasses(): Promise<Class[]>;

Defined in: server/src/utils/stack/index.ts:643

Returns

Promise<Class[]>


getAllClassModels()

getAllClassModels(): Promise<ClassModel[]>;

Defined in: server/src/utils/stack/index.ts:658

Returns

Promise<ClassModel[]>


getClass()

getClass(className): Promise<Class>;

Defined in: server/src/utils/stack/index.ts:493

Parameters

ParameterType
classNamestring

Returns

Promise<Class>

Overrides

Stack.getClass

getClassModel()

getClassModel(className): Promise<ClassModel>;

Defined in: server/src/utils/stack/index.ts:611

Parameters

ParameterType
classNamestring

Returns

Promise<ClassModel>

Overrides

Stack.getClassModel

getClassModels()

getClassModels(classNames): Promise<ClassModel[]>;

Defined in: server/src/utils/stack/index.ts:669

Parameters

ParameterType
classNamesstring[]

Returns

Promise<ClassModel[]>


getDb()

getDb(): Database<{
}>;

Defined in: server/src/utils/stack/index.ts:117

Returns

Database<{ }>


getDbInfo()

getDbInfo(): Promise<DatabaseInfo>;

Defined in: server/src/utils/stack/index.ts:121

Returns

Promise<DatabaseInfo>


getDbName()

getDbName(): string;

Defined in: server/src/utils/stack/index.ts:125

Returns

string


getDocRevision()

getDocRevision(docId): Promise<string>;

Defined in: server/src/utils/stack/index.ts:551

Parameters

ParameterType
docIdstring

Returns

Promise<string>


getDocument()

getDocument(docId): Promise<ExistingDocument<{
}>>;

Defined in: server/src/utils/stack/index.ts:536

Parameters

ParameterType
docIdstring

Returns

Promise<ExistingDocument<{ }>>


getLastDocId()

getLastDocId(): Promise<number>;

Defined in: server/src/utils/stack/index.ts:137

Returns

Promise<number>


getSystem()

getSystem(): Promise<SystemDoc>;

Defined in: server/src/utils/stack/index.ts:152

Returns

Promise<SystemDoc>


incrementLastDocId()

incrementLastDocId(): Promise<number>;

Defined in: server/src/utils/stack/index.ts:680

Returns

Promise<number>


initdb()

initdb(): Promise<ServerStack>;

Defined in: server/src/utils/stack/index.ts:481

Returns

Promise<ServerStack>


initIndex()

initIndex(): Promise<void>;

Defined in: server/src/utils/stack/index.ts:507

Returns

Promise<void>


onClassDoc()

onClassDoc(className): Changes<{
}>;

Defined in: server/src/utils/stack/index.ts:465

Parameters

ParameterType
classNamestring

Returns

Changes<{ }>

Overrides

Stack.onClassDoc

onClassLock()

onClassLock(className): Changes<{
}>;

Defined in: server/src/utils/stack/index.ts:423

Parameters

ParameterType
classNamestring

Returns

Changes<{ }>

Overrides

Stack.onClassLock

onClassModelChanges()

onClassModelChanges(): Changes<{
}>;

Defined in: server/src/utils/stack/index.ts:357

Listener that fires when a document that refers to a class is edited or created, marks its execution while handling the propagation of schema modifications to children documents: by dispatching a webworker message containing the

Returns

Changes<{ }>

void

Var

className and the previous revision id. In the main case, the worker sends a message with the result of its task.

Fires

class-model-propagation-complete

Fires

class-model-propagation-pending


onClassModelPropagationComplete()

onClassModelPropagationComplete(event): void;

Defined in: server/src/utils/stack/index.ts:338

Parameters

ParameterTypeDescription
eventCustomEvent<ClassModelPropagationComplete>

Returns

void

Description

When a class model propagation comes to completion remove the corresponding ~lock from the database


onClassModelPropagationStart()

onClassModelPropagationStart(event): void;

Defined in: server/src/utils/stack/index.ts:323

Parameters

ParameterTypeDescription
eventCustomEvent<ClassModelPropagationStart>

Returns

void

Description

When a class model propagation starts write the ~lock document to the database. It prevents any further modifications on the class data model

Overrides

Stack.onClassModelPropagationStart

prepareChangeDocument()

prepareChangeDocument(doc, classObj?): Promise<Document>;

Defined in: shared/src/utils/stack/index.ts:100

Prepares a document from the changes feed for delivery to a listener.

The base implementation passes it through, which is correct for a stack that does not encrypt. A stack that does overrides this: the feed bypasses the plugin that decrypts reads, so a stored encrypted attribute would otherwise reach a consumer as its raw payload. See ADR-0020.

Parameters

ParameterTypeDescription
docDocumentThe document from change.doc.
classObj?ClassThe class, when the caller has one.

Returns

Promise<Document>

Inherited from

Stack.prepareChangeDocument

prepareDoc()

prepareDoc(
_id,
type,
params): object;

Defined in: server/src/utils/stack/index.ts:981

Parameters

ParameterType
_idstring
typestring
params{ [key: string]: string | number | boolean; }

Returns

object


releaseListener()

releaseListener(listener?): void;

Defined in: shared/src/utils/stack/index.ts:186

Cancels a subscription and forgets it.

The counterpart to subscribeClassDocs: a caller that is done watching must call this rather than dropping the handle, because the subscription keeps the underlying feed - and everything the handler closes over - alive on its own. Safe to call with a handle that is already cancelled, or with nothing at all.

Parameters

ParameterTypeDescription
listener?ChangesSubscriptionThe handle to release.

Returns

void

Inherited from

Stack.releaseListener

removeAllListeners()

removeAllListeners(): void;

Defined in: server/src/utils/stack/index.ts:312

Returns

void

Description

Clears all listeners from the Stack

Overrides

Stack.removeAllListeners

reset()

reset(): Promise<ServerStack>;

Defined in: server/src/utils/stack/index.ts:698

Returns

Promise<ServerStack>


setListeners()

setListeners(): void;

Defined in: server/src/utils/stack/index.ts:280

Returns

void

Overrides

Stack.setListeners

subscribeClassDocs()

subscribeClassDocs(
className,
target,
classObj?): ChangesSubscription;

Defined in: shared/src/utils/stack/index.ts:117

Subscribes an event target to a class's document changes.

Prefer this over wiring onClassDoc directly. It routes every change through prepareChangeDocument, so a subclass that encrypts cannot forget to decrypt on this path, and it serialises the handlers: preparing a document is asynchronous, so two rapid changes to one document could otherwise be dispatched in whichever order their preparation happened to finish. The change's seq still rides along for consumers that want to discard a stale update independently.

Parameters

ParameterTypeDescription
classNamestringThe class whose documents to watch.
targetEventTargetReceives the doc events.
classObj?ClassThe class, when the caller has one.

Returns

ChangesSubscription

The underlying changes listener.

Inherited from

Stack.subscribeClassDocs

subscribeDomainDocs()

subscribeDomainDocs(domainName, target): ChangesSubscription;

Defined in: shared/src/utils/stack/index.ts:133

Subscribes an event target to a domain's relation documents.

The Domain counterpart to subscribeClassDocs, and it needs to be a separate call rather than the same one: a relation document is named by ~domain and has no ~class, so subscribing it as if it were a class matches nothing and the target simply never hears anything.

Parameters

ParameterTypeDescription
domainNamestringThe domain whose relations to watch.
targetEventTargetReceives the doc events.

Returns

ChangesSubscription

The underlying subscription.

Inherited from

Stack.subscribeDomainDocs

updateClass()

updateClass(classObj): Promise<Document>;

Defined in: server/src/utils/stack/index.ts:765

Parameters

ParameterType
classObjClass

Returns

Promise<Document>

Overrides

Stack.updateClass

validateObject()

validateObject(
obj,
type,
schema): Promise<boolean>;

Defined in: server/src/utils/stack/index.ts:784

Parameters

ParameterType
objany
typestring
schema{ [name: string]: AttributeModel; }

Returns

Promise<boolean>


validateObjectByType()

validateObjectByType(
obj,
type,
schema?): Promise<boolean>;

Defined in: server/src/utils/stack/index.ts:954

Parameters

ParameterType
objany
typestring
schema?{ [name: string]: AttributeModel; }

Returns

Promise<boolean>


clear()

static clear(conn): Promise<unknown>;

Defined in: server/src/utils/stack/index.ts:725

Parameters

ParameterType
connstring

Returns

Promise<unknown>


create()

static create(conn, options?): Promise<ServerStack>;

Defined in: server/src/utils/stack/index.ts:130

Parameters

ParameterType
connstring
options?StoreOptions

Returns

Promise<ServerStack>