gristlabs_grist-core/app/plugin/GristData-ti.ts
Paul Fitzpatrick 98f64a8461 (core) add grist.selectedTable.create/update/destroy/upsert to custom widget api
Summary: This makes an equivalent of the /records REST endpoint available within custom widgets. For simple operations, it is compatible with https://github.com/airtable/airtable.js/. About half of the diff is refactoring code from DocApi that implements /records using applyUserActions, to make that code available in the plugin api.

Test Plan: added tests

Reviewers: alexmojaki

Reviewed By: alexmojaki

Differential Revision: https://phab.getgrist.com/D3320
2022-03-15 11:11:58 -04:00

44 lines
1.2 KiB
TypeScript

/**
* This module was automatically generated by `ts-interface-builder`
*/
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes
export const GristObjCode = t.enumtype({
"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",
});
export const CellValue = t.union("number", "string", "boolean", "null", t.tuple("GristObjCode", t.rest(t.array("unknown"))));
export const BulkColValues = t.iface([], {
[t.indexKey]: t.array("CellValue"),
});
export const RowRecord = t.iface([], {
"id": "number",
[t.indexKey]: "CellValue",
});
export const GristType = t.union(t.lit('Any'), t.lit('Attachments'), t.lit('Blob'), t.lit('Bool'), t.lit('Choice'), t.lit('ChoiceList'), t.lit('Date'), t.lit('DateTime'), t.lit('Id'), t.lit('Int'), t.lit('ManualSortPos'), t.lit('Numeric'), t.lit('PositionNumber'), t.lit('Ref'), t.lit('RefList'), t.lit('Text'));
const exportedTypeSuite: t.ITypeSuite = {
GristObjCode,
CellValue,
BulkColValues,
RowRecord,
GristType,
};
export default exportedTypeSuite;