2022-07-27 19:29:20 +00:00
|
|
|
/**
|
|
|
|
* Letter codes for CellValue types encoded as [code, args...] tuples.
|
|
|
|
*/
|
(core) Speed up and upgrade build.
Summary:
- Upgrades to build-related packages:
- Upgrade typescript, related libraries and typings.
- Upgrade webpack, eslint; add tsc-watch, node-dev, eslint_d.
- Build organization changes:
- Build webpack from original typescript, transpiling only; with errors still
reported by a background tsc watching process.
- Typescript-related changes:
- Reduce imports of AWS dependencies (very noticeable speedup)
- Avoid auto-loading global @types
- Client code is now built with isolatedModules flag (for safe transpilation)
- Use allowJs to avoid copying JS files manually.
- Linting changes
- Enhance Arcanist ESLintLinter to run before/after commands, and set up to use eslint_d
- Update eslint config, and include .eslintignore to avoid linting generated files.
- Include a bunch of eslint-prompted and eslint-generated fixes
- Add no-unused-expression rule to eslint, and fix a few warnings about it
- Other items:
- Refactor cssInput to avoid circular dependency
- Remove a bit of unused code, libraries, dependencies
Test Plan: No behavior changes, all existing tests pass. There are 30 tests fewer reported because `test_gpath.py` was removed (it's been unused for years)
Reviewers: paulfitz
Reviewed By: paulfitz
Subscribers: paulfitz
Differential Revision: https://phab.getgrist.com/D3498
2022-06-27 20:09:41 +00:00
|
|
|
export enum GristObjCode {
|
2021-10-07 21:02:51 +00:00
|
|
|
List = 'L',
|
2021-11-09 12:11:37 +00:00
|
|
|
LookUp = 'l',
|
2021-10-07 21:02:51 +00:00
|
|
|
Dict = 'O',
|
|
|
|
DateTime = 'D',
|
|
|
|
Date = 'd',
|
|
|
|
Skip = 'S',
|
|
|
|
Censored = 'C',
|
|
|
|
Reference = 'R',
|
|
|
|
ReferenceList = 'r',
|
|
|
|
Exception = 'E',
|
|
|
|
Pending = 'P',
|
|
|
|
Unmarshallable = 'U',
|
|
|
|
Versions = 'V',
|
|
|
|
}
|
|
|
|
|
2022-07-27 19:29:20 +00:00
|
|
|
/**
|
|
|
|
* Possible types of cell content.
|
|
|
|
*/
|
2021-10-07 21:02:51 +00:00
|
|
|
export type CellValue = number|string|boolean|null|[GristObjCode, ...unknown[]];
|
2022-03-15 14:35:15 +00:00
|
|
|
export interface BulkColValues { [colId: string]: CellValue[]; }
|
2020-08-13 18:13:16 +00:00
|
|
|
|
2022-05-24 20:22:41 +00:00
|
|
|
/**
|
|
|
|
* Map of column ids to `CellValue`s.
|
|
|
|
*
|
|
|
|
* ### CellValue
|
|
|
|
*
|
|
|
|
* 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 |
|
|
|
|
* | l | LookUp |
|
|
|
|
* | O | Dict |
|
|
|
|
* | D | DateTime |
|
|
|
|
* | d | Date |
|
|
|
|
* | C | Censored |
|
|
|
|
* | R | Reference |
|
|
|
|
* | r | ReferenceList |
|
|
|
|
* | E | Exception |
|
|
|
|
* | P | Pending |
|
|
|
|
* | U | Unmarshallable |
|
|
|
|
* | V | Version |
|
|
|
|
*/
|
2020-08-13 18:13:16 +00:00
|
|
|
export interface RowRecord {
|
|
|
|
id: number;
|
|
|
|
[colId: string]: CellValue;
|
|
|
|
}
|
2022-02-08 15:23:14 +00:00
|
|
|
|
2022-05-24 20:22:41 +00:00
|
|
|
/**
|
|
|
|
* Map of column ids to `CellValue` arrays, where array indexes correspond to
|
|
|
|
* rows.
|
|
|
|
*
|
|
|
|
* ### CellValue
|
|
|
|
*
|
|
|
|
* 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 |
|
|
|
|
* | l | LookUp |
|
|
|
|
* | O | Dict |
|
|
|
|
* | D | DateTime |
|
|
|
|
* | d | Date |
|
|
|
|
* | C | Censored |
|
|
|
|
* | R | Reference |
|
|
|
|
* | r | ReferenceList |
|
|
|
|
* | E | Exception |
|
|
|
|
* | P | Pending |
|
|
|
|
* | U | Unmarshallable |
|
|
|
|
* | V | Version |
|
|
|
|
*/
|
|
|
|
export interface RowRecords {
|
|
|
|
id: number[];
|
|
|
|
[colId: string]: CellValue[];
|
|
|
|
}
|
|
|
|
|
2022-02-08 15:23:14 +00:00
|
|
|
export type GristType = 'Any' | 'Attachments' | 'Blob' | 'Bool' | 'Choice' | 'ChoiceList' |
|
|
|
|
'Date' | 'DateTime' |
|
|
|
|
'Id' | 'Int' | 'ManualSortPos' | 'Numeric' | 'PositionNumber' | 'Ref' | 'RefList' | 'Text';
|