@anticrm/foundation Package

Packages > @anticrm/foundation

Anticrm Platform Foundation Types

Classes

List of classes contained in this package or namespace
Class Description
PlatformError Error object wrapping Status
Status Status of an operation

Enumerations

List of enums contained in this package or namespace
Enumeration Description
PlatformStatusCodes
Severity Status severity

Type Aliases

List of type aliases contained in this package or namespace
Type Alias Description
Resource Platform Resource Identifier (PRI)

Enumerations

PlatformStatusCodes enum

Signature:

export declare enum PlatformStatusCodes 

Enumeration Members

List of members in use in this enum
Member Value Description
ACCOUNT_DUPLICATE 104
ACCOUNT_NOT_FOUND 103
AUTHENTICATON_OK 101
AUTHENTICATON_REQUIRED 102
CLIENT_VALIDATE_REQUIRED 109
FORBIDDEN 106
INCORRECT_PASSWORD 105
INCORRECT_SECOND_FACTOR_CODE 110
WORKSPACE_ALREADY_EXISTS 107
WORKSPACE_NOT_FOUND 108

Severity enum

Status severity

Signature:

export declare enum Severity 

Enumeration Members

List of members in use in this enum
Member Value Description
ERROR 3
INFO 1
OK 0
WARNING 2

Type Aliases

Resource

Platform Resource Identifier (PRI)

Signature:

export declare type Resource<T> = string & {
    __resource: T;
};

Remarks

Almost anything in the Anticrm Platform is a Resource. Resources referenced by Platform Resource Identifier (PRI).

TODO: understand Resource better. Is this just a platform thing or should be in core as well

‘Resource’ is simply any JavaScript object. There is a plugin exists, which ‘resolve’ PRI into actual object. This is a difference from Metadata. Metadata object ‘resolved’ by Platform instance, so we may consider Metadata as a Resource, provided by Platform itself. Because there is always a plugin, which resolve Resource resolution is asynchronous process.

Resource is a string of kind:plugin.id format. Since Metadata is a kind of Resource. Metadata also can be resolved using resource API.

Example

  `class:contact.Person` as Resource<Class<Person>> // database object with id === `class:contact.Person`
  `string:class.ClassLabel` as Resource<string> // translated string according to current language and i18n settings
  `asset:ui.Icons` as Resource<URL> // URL to SVG sprites
  `easyscript:2+2` as Resource<() => number> // function