mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
51ff72c15e
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
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import log from 'app/server/lib/log';
|
|
import {ISandboxOptions} from 'app/server/lib/NSandbox';
|
|
|
|
/**
|
|
* Starting to whittle down the options used when creating a sandbox, to leave more
|
|
* freedom in how the sandbox works.
|
|
*/
|
|
export interface ISandboxCreationOptions {
|
|
comment?: string; // an argument to add in command line when possible, so it shows in `ps`
|
|
|
|
logCalls?: boolean;
|
|
logMeta?: log.ILogMeta;
|
|
logTimes?: boolean;
|
|
|
|
// This batch of options is used by SafePythonComponent, so are important for importers.
|
|
entryPoint?: string; // main script to call - leave undefined for default
|
|
sandboxMount?: string; // if defined, make this path available read-only as "/sandbox"
|
|
importMount?: string; // if defined, make this path available read-only as "/importdir"
|
|
|
|
preferredPythonVersion?: '2' | '3';
|
|
|
|
sandboxOptions?: Partial<ISandboxOptions>;
|
|
}
|
|
|
|
export interface ISandbox {
|
|
shutdown(): Promise<unknown>; // TODO: tighten up this type.
|
|
pyCall(funcName: string, ...varArgs: unknown[]): Promise<any>;
|
|
reportMemoryUsage(): Promise<void>;
|
|
}
|
|
|
|
export interface ISandboxCreator {
|
|
create(options: ISandboxCreationOptions): ISandbox;
|
|
}
|