mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Faster builds all around.
Summary: Building: - Builds no longer wait for tsc for either client, server, or test targets. All use esbuild which is very fast. - Build still runs tsc, but only to report errors. This may be turned off with `SKIP_TSC=1` env var. - Grist-core continues to build using tsc. - Esbuild requires ES6 module semantics. Typescript's esModuleInterop is turned on, so that tsc accepts and enforces correct usage. - Client-side code is watched and bundled by webpack as before (using esbuild-loader) Code changes: - Imports must now follow ES6 semantics: `import * as X from ...` produces a module object; to import functions or class instances, use `import X from ...`. - Everything is now built with isolatedModules flag. Some exports were updated for it. Packages: - Upgraded browserify dependency, and related packages (used for the distribution-building step). - Building the distribution now uses esbuild's minification. babel-minify is no longer used. Test Plan: Should have no behavior changes, existing tests should pass, and docker image should build too. Reviewers: georgegevoian Reviewed By: georgegevoian Subscribers: alexmojaki Differential Revision: https://phab.getgrist.com/D3506
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import {ApiError} from 'app/common/ApiError';
|
||||
import {APPROACHING_LIMIT_RATIO, DataLimitStatus, DocumentUsage, getUsageRatio} from 'app/common/DocUsage';
|
||||
import {Features} from 'app/common/Features';
|
||||
import * as moment from 'moment-timezone';
|
||||
import moment from 'moment-timezone';
|
||||
|
||||
/**
|
||||
* Error class indicating failure due to limits being exceeded.
|
||||
|
||||
@@ -9,13 +9,13 @@ import {OrgUsageSummary} from 'app/common/DocUsage';
|
||||
import {Product} from 'app/common/Features';
|
||||
import {ICustomWidget} from 'app/common/CustomWidget';
|
||||
import {isClient} from 'app/common/gristUrls';
|
||||
import {FullUser} from 'app/common/LoginSessionAPI';
|
||||
import {FullUser, UserProfile} from 'app/common/LoginSessionAPI';
|
||||
import {OrgPrefs, UserOrgPrefs, UserPrefs} from 'app/common/Prefs';
|
||||
import * as roles from 'app/common/roles';
|
||||
import {addCurrentOrgToPath} from 'app/common/urlUtils';
|
||||
import {encodeQueryParams} from 'app/common/gutil';
|
||||
|
||||
export {FullUser} from 'app/common/LoginSessionAPI';
|
||||
export type {FullUser, UserProfile};
|
||||
|
||||
// Nominal email address of the anonymous user.
|
||||
export const ANONYMOUS_USER_EMAIL = 'anon@getgrist.com';
|
||||
@@ -285,8 +285,6 @@ export interface DocStateComparisonDetails {
|
||||
rightChanges: ActionSummary;
|
||||
}
|
||||
|
||||
export {UserProfile} from 'app/common/LoginSessionAPI';
|
||||
|
||||
export interface UserAPI {
|
||||
getSessionActive(): Promise<ActiveSessionInfo>;
|
||||
setSessionActive(email: string): Promise<void>;
|
||||
|
||||
@@ -12,7 +12,7 @@ import {buildNumberFormat, NumberFormatOptions} from 'app/common/NumberFormat';
|
||||
import {createParserOrFormatterArguments, ReferenceParsingOptions} from 'app/common/ValueParser';
|
||||
import {GristObjCode} from 'app/plugin/GristData';
|
||||
import {decodeObject, GristDateTime} from 'app/plugin/objtypes';
|
||||
import * as moment from 'moment-timezone';
|
||||
import moment from 'moment-timezone';
|
||||
import isPlainObject = require('lodash/isPlainObject');
|
||||
|
||||
export {PENDING_DATA_PLACEHOLDER} from 'app/plugin/objtypes';
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
* unmarshalled to JS strings if 'bufferToString' option is set.
|
||||
*/
|
||||
import {BigInt} from 'app/common/BigInt';
|
||||
import * as MemBuffer from 'app/common/MemBuffer';
|
||||
import MemBuffer from 'app/common/MemBuffer';
|
||||
import {EventEmitter} from 'events';
|
||||
import * as util from 'util';
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@ import last = require('lodash/last');
|
||||
import memoize = require('lodash/memoize');
|
||||
import {getDistinctValues, isNonNullish} from 'app/common/gutil';
|
||||
// Simply importing 'moment-guess' inconsistently imports bundle.js or bundle.esm.js depending on environment
|
||||
import * as guessFormat from '@gristlabs/moment-guess/dist/bundle.js';
|
||||
import * as moment from 'moment-timezone';
|
||||
import guessFormat from '@gristlabs/moment-guess/dist/bundle.js';
|
||||
import moment from 'moment-timezone';
|
||||
|
||||
// When using YY format, use a consistent interpretation in datepicker and in moment parsing: add
|
||||
// 2000 if the result is at most 10 years greater than the current year; otherwise add 1900. See
|
||||
|
||||
Reference in New Issue
Block a user