gristlabs_grist-core/app/plugin/FileParserAPI-ti.ts
Dmitry S d5a4605d2a (core) Improve encoding detection for csv imports, and make encoding an editable option.
Summary:
- Using a sample of data was causing poor detection if the sample were
  cut mid-character. Switch to using line-based detection.
- Add a simple option for changing encoding. No convenient UI is offered
  since config UI is auto-generated, but this at least makes it possible to
  recover from bad guesses.
- Upgrades chardet library for good measure.

- Also fixes python3-building step, to more reliably rebuild Python
  dependencies when requirements3.* files change.

Test Plan:
Added a python-side test case, and a browser test that encodings can
be switched, errors are displayed, and wrong encodings fail recoverably.

Reviewers: alexmojaki

Reviewed By: alexmojaki

Differential Revision: https://phab.getgrist.com/D3979
2023-08-24 09:50:52 -04:00

46 lines
1.1 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 EditOptionsAPI = t.iface([], {
"getParseOptions": t.func("ParseOptions", t.param("parseOptions", "ParseOptions", true)),
});
export const ParseFileAPI = t.iface([], {
"parseFile": t.func("ParseFileResult", t.param("file", "FileSource"), t.param("parseOptions", "ParseOptions", true)),
});
export const ParseOptions = t.iface([], {
"NUM_ROWS": t.opt("number"),
"SCHEMA": t.opt(t.array("ParseOptionSchema")),
"WARNING": t.opt("string"),
});
export const ParseOptionSchema = t.iface([], {
"name": "string",
"label": "string",
"type": "string",
"visible": "boolean",
});
export const FileSource = t.iface([], {
"path": "string",
"origName": "string",
});
export const ParseFileResult = t.iface(["GristTables"], {
"parseOptions": "ParseOptions",
});
const exportedTypeSuite: t.ITypeSuite = {
EditOptionsAPI,
ParseFileAPI,
ParseOptions,
ParseOptionSchema,
FileSource,
ParseFileResult,
};
export default exportedTypeSuite;