mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(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
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
// Some definitions have moved to be part of plugin API.
|
||||
import { BulkColValues, CellValue, RowRecord } from 'app/plugin/GristData';
|
||||
export { BulkColValues, CellValue, RowRecord } from 'app/plugin/GristData';
|
||||
export type { BulkColValues, CellValue, RowRecord };
|
||||
|
||||
// Part of a special CellValue used for comparisons, embedding several versions of a CellValue.
|
||||
export interface AllCellVersions {
|
||||
@@ -173,7 +173,7 @@ export function getNumRows(action: DocAction): number {
|
||||
export function toTableDataAction(tableId: string, colValues: TableColValues): TableDataAction {
|
||||
const colData = {...colValues}; // Make a copy to avoid changing passed-in arguments.
|
||||
const rowIds: number[] = colData.id;
|
||||
delete colData.id;
|
||||
delete (colData as BulkColValues).id;
|
||||
return ['TableData', tableId, rowIds, colData];
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ export type AclMatchFunc = (input: AclMatchInput) => boolean;
|
||||
* Representation of a parsed ACL formula.
|
||||
*/
|
||||
type PrimitiveCellValue = number|string|boolean|null;
|
||||
export type ParsedAclFormula = [string, ...Array<ParsedAclFormula|PrimitiveCellValue>];
|
||||
export type ParsedAclFormula = [string, ...(ParsedAclFormula|PrimitiveCellValue)[]];
|
||||
|
||||
/**
|
||||
* Observations about a formula.
|
||||
|
||||
@@ -13,9 +13,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
// important to explicitly import this, or webpack --watch gets confused.
|
||||
import {clearTimeout, setTimeout} from "timers";
|
||||
|
||||
export class InactivityTimer {
|
||||
|
||||
private _timeout?: NodeJS.Timer | null;
|
||||
|
||||
@@ -19,7 +19,7 @@ try {
|
||||
const display = (code: string) => {
|
||||
try {
|
||||
const locale = new Intl.Locale(code);
|
||||
const regionName = regionDisplay.of(locale.region);
|
||||
const regionName = regionDisplay.of(locale.region!);
|
||||
const languageName = languageDisplay.of(locale.language);
|
||||
return `${regionName} (${languageName})`;
|
||||
} catch (ex) {
|
||||
@@ -58,7 +58,7 @@ export function getCurrency(code: string) {
|
||||
try {
|
||||
const currencyDisplay = new Intl.DisplayNames('en', {type: 'currency'});
|
||||
currencies = [...new Set(currenciesCodes)].map(code => {
|
||||
return {name: currencyDisplay.of(code), code};
|
||||
return {name: currencyDisplay.of(code)!, code};
|
||||
});
|
||||
} catch {
|
||||
// Fall back to using the currency code as the display name.
|
||||
|
||||
Reference in New Issue
Block a user