mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
8ddcff4310
Summary: - Move CellValue documentation to CellValue and add an example for each type. - Link to CellValue from places that mention it. - Update deprecated [[LINK]] syntax to a supported {@link} one, in a way that does not change generated documentation. - Also fix auto-pick-ports script used in tests (which had a bug causing occasional test failures), and add a test for it. Test Plan: No code changes for documentation changes. New test for auto-pick-ports. Reviewers: georgegevoian Reviewed By: georgegevoian Differential Revision: https://phab.getgrist.com/D4162
70 lines
2.3 KiB
TypeScript
70 lines
2.3 KiB
TypeScript
/**
|
|
* Letter codes for {@link CellValue} types encoded as [code, args...] tuples.
|
|
*/
|
|
export enum GristObjCode {
|
|
List = 'L',
|
|
LookUp = 'l',
|
|
Dict = 'O',
|
|
DateTime = 'D',
|
|
Date = 'd',
|
|
Skip = 'S',
|
|
Censored = 'C',
|
|
Reference = 'R',
|
|
ReferenceList = 'r',
|
|
Exception = 'E',
|
|
Pending = 'P',
|
|
Unmarshallable = 'U',
|
|
Versions = 'V',
|
|
}
|
|
|
|
/**
|
|
* Possible types of cell content.
|
|
*
|
|
* Each `CellValue` may either be a primitive (e.g. `true`, `123`, `"hello"`, `null`)
|
|
* or a tuple (JavaScript Array) representing a Grist object. The first element of the tuple
|
|
* is a string character representing the object code. For example, `["L", "foo", "bar"]`
|
|
* is a `CellValue` of a Choice List column, where `"L"` is the type, and `"foo"` and
|
|
* `"bar"` are the choices.
|
|
*
|
|
* ### Grist Object Types
|
|
*
|
|
* | Code | Type |
|
|
* | ---- | -------------- |
|
|
* | `L` | List, e.g. `["L", "foo", "bar"]` or `["L", 1, 2]` |
|
|
* | `l` | LookUp, as `["l", value, options]` |
|
|
* | `O` | Dict, as `["O", {key: value, ...}]` |
|
|
* | `D` | DateTimes, as `["D", timestamp, timezone]`, e.g. `["D", 1704945919, "UTC"]` |
|
|
* | `d` | Date, as `["d", timestamp]`, e.g. `["d", 1704844800]` |
|
|
* | `C` | Censored, as `["C"]` |
|
|
* | `R` | Reference, as `["R", table_id, row_id]`, e.g. `["R", "People", 17]` |
|
|
* | `r` | ReferenceList, as `["r", table_id, row_id_list]`, e.g. `["r", "People", [1,2]]` |
|
|
* | `E` | Exception, as `["E", name, ...]`, e.g. `["E", "ValueError"]` |
|
|
* | `P` | Pending, as `["P"]` |
|
|
* | `U` | Unmarshallable, as `["U", text_representation]` |
|
|
* | `V` | Version, as `["V", version_obj]` |
|
|
*/
|
|
export type CellValue = number|string|boolean|null|[GristObjCode, ...unknown[]];
|
|
|
|
export interface BulkColValues { [colId: string]: CellValue[]; }
|
|
|
|
/**
|
|
* Map of column ids to {@link CellValue}'s.
|
|
*/
|
|
export interface RowRecord {
|
|
id: number;
|
|
[colId: string]: CellValue;
|
|
}
|
|
|
|
/**
|
|
* Map of column ids to {@link CellValue} arrays, where array indexes correspond to
|
|
* rows.
|
|
*/
|
|
export interface RowRecords {
|
|
id: number[];
|
|
[colId: string]: CellValue[];
|
|
}
|
|
|
|
export type GristType = 'Any' | 'Attachments' | 'Blob' | 'Bool' | 'Choice' | 'ChoiceList' |
|
|
'Date' | 'DateTime' |
|
|
'Id' | 'Int' | 'ManualSortPos' | 'Numeric' | 'PositionNumber' | 'Ref' | 'RefList' | 'Text';
|