diff --git a/README.md b/README.md index 4ef0471c..5f92ea22 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ or browse [our extensive documentation](https://support.getgrist.com). There are docker images set up for individual use, or (with some configuration) for self-hosting. Grist Labs offers a hosted service -at [https://docs.getgrist.com](https://docs.getgrist.com). +at [docs.getgrist.com](https://docs.getgrist.com). To run Grist running on your computer with [Docker](https://www.docker.com/get-started), do: @@ -76,10 +76,10 @@ and export documents. To preserve your work across docker runs, share a director docker run -p 8484:8484 -v $PWD/persist:/persist -it gristlabs/grist ``` -Get templates at https://templates.getgrist.com/ for payroll, +Get templates at [templates.getgrist.com](https://templates.getgrist.com) for payroll, inventory management, invoicing, D&D encounter tracking, and a lot more, or use any document you've created on -[https://docs.getgrist.com](docs.getgrist.com). +[docs.getgrist.com](https://docs.getgrist.com). If you need to change the port Grist runs on, set a `PORT` variable, don't just change the port mapping: diff --git a/app/client/aclui/PermissionsWidget.ts b/app/client/aclui/PermissionsWidget.ts index 88dbe2e8..eaa0fd4f 100644 --- a/app/client/aclui/PermissionsWidget.ts +++ b/app/client/aclui/PermissionsWidget.ts @@ -99,7 +99,7 @@ function makePermissionSet(bits: PermissionKey[], makeValue: (bit: PermissionKey return pset; } -// Helper for a tick (checkmark) icon, replacing it with an equialent space when not shown. +// Helper for a tick (checkmark) icon, replacing it with an equivalent space when not shown. function tick(show: boolean) { return show ? menuIcon('Tick') : cssMenuIconSpace(); } diff --git a/app/client/components/BaseView.js b/app/client/components/BaseView.js index 558dcff2..6726d97c 100644 --- a/app/client/components/BaseView.js +++ b/app/client/components/BaseView.js @@ -158,7 +158,7 @@ function BaseView(gristDoc, viewSectionModel, options) { this._isLoading = ko.observable(true); this._pendingCursorPos = this.viewSection.lastCursorPos; - // Initialize the cursor with the previous cursor position indicies, if they exist. + // Initialize the cursor with the previous cursor position indices, if they exist. console.log("%s BaseView viewSection %s (%s) lastCursorPos %s", this._debugName, this.viewSection.getRowId(), this.viewSection.table().tableId(), JSON.stringify(this.viewSection.lastCursorPos)); this.cursor = this.autoDispose(Cursor.create(null, this, this.viewSection.lastCursorPos)); diff --git a/app/client/components/ColumnTransform.ts b/app/client/components/ColumnTransform.ts index 28069c4f..69f798c9 100644 --- a/app/client/components/ColumnTransform.ts +++ b/app/client/components/ColumnTransform.ts @@ -97,7 +97,7 @@ export class ColumnTransform extends Disposable { } /** - * Helper called by contructor to prepare the column transform. + * Helper called by constructor to prepare the column transform. * @param {String} colType: A pure or complete type for the transformed column. */ public async prepare(optColType?: string) { @@ -156,7 +156,7 @@ export class ColumnTransform extends Disposable { } /** - * Adds the tranform column and returns its colRef. May be overridden by derived classes to create + * Adds the transform column and returns its colRef. May be overridden by derived classes to create * differently-prepared transform columns. * @param {String} colType: A pure or complete type for the transformed column. */ diff --git a/app/client/components/Drafts.ts b/app/client/components/Drafts.ts index c32e6ef3..4f7f9bf3 100644 --- a/app/client/components/Drafts.ts +++ b/app/client/components/Drafts.ts @@ -77,7 +77,7 @@ export class Drafts extends Disposable { editor.setState(draft.state); } // We don't need the draft any more. - // If user presses escape one more time it will be crated + // If user presses escape one more time it will be created // once again storage.clear(); // Close the notification diff --git a/app/client/components/GridView.js b/app/client/components/GridView.js index 8fe353cb..73e463a2 100644 --- a/app/client/components/GridView.js +++ b/app/client/components/GridView.js @@ -610,7 +610,7 @@ GridView.prototype.assignCursor = function(elem, elemType) { }; /** - * Schedules cursor assignement to happen at end of tick. Calling `preventAssignCursor()` before + * Schedules cursor assignment to happen at end of tick. Calling `preventAssignCursor()` before * prevents assignment to happen. This was added to prevent cursor assignment on a `context click` * on a cell that is already selected. */ diff --git a/app/client/components/Importer.ts b/app/client/components/Importer.ts index f55d7040..8b5957bc 100644 --- a/app/client/components/Importer.ts +++ b/app/client/components/Importer.ts @@ -351,7 +351,7 @@ export class Importer extends DisposableWithEvents { destTableId, destCols: transformFields.map((field) => ({ label: field.label(), - colId: destTableId ? field.colId() : null, // if inserting into new table, colId isnt defined + colId: destTableId ? field.colId() : null, // if inserting into new table, colId isn't defined type: field.column().type(), formula: field.column().formula() })), diff --git a/app/client/components/RecordLayout.js b/app/client/components/RecordLayout.js index 4fe92c1e..4817e818 100644 --- a/app/client/components/RecordLayout.js +++ b/app/client/components/RecordLayout.js @@ -215,7 +215,7 @@ RecordLayout.prototype.saveLayoutSpec = async function(layoutSpec) { var addedPositions = []; // Recursively process all layoutBoxes in the spec. Sets up bookkeeping arrays for - // exisiting fields and added fields for new/hidden cols from which the action bundle will + // existing fields and added fields for new/hidden cols from which the action bundle will // be created. function processBox(spec) { // "empty" is a temporary placeholder used by LayoutEditor, and not a valid leaf. diff --git a/app/client/lib/SafeBrowser.ts b/app/client/lib/SafeBrowser.ts index e0c7a4fc..2e76214a 100644 --- a/app/client/lib/SafeBrowser.ts +++ b/app/client/lib/SafeBrowser.ts @@ -3,7 +3,7 @@ * of a plugin. * * A plugin's safeBrowser component is made of one main entry point (the javascript files declares - * in the manifest), html files and any ressources included by the html files (css, scripts, images + * in the manifest), html files and any resources included by the html files (css, scripts, images * ...). The main script is the main entry point which uses the Grist API to render the views, * communicate with them en dispose them. * @@ -18,13 +18,13 @@ * * The grist API available to safeBrowser components is implemented in `app/plugin/PluginImpl.ts`. * - * All the safeBrowser's component ressources, including the main script, the html files and any - * other ressources needed by the views, should be placed within one plugins' subfolder, and Grist + * All the safeBrowser's component resources, including the main script, the html files and any + * other resources needed by the views, should be placed within one plugins' subfolder, and Grist * should serve only this folder. However, this is not yet implemented and is left as a TODO, as of * now the whole plugin's folder is served. * */ - // Todo: plugin ressources should not be made available on the server by default, but only after + // Todo: plugin resources should not be made available on the server by default, but only after // activation. // tslint:disable:max-classes-per-file @@ -131,7 +131,7 @@ export class SafeBrowser extends BaseComponent { // it's ok to leave it for now: (1) fixing this would require (yet) another refactoring of // SafeBrowser and (2) at this point it is not sure wether we want to keep `render()` in the // future (we could as well directly register contribution using files directly in the - // manifest), and (3) plugins are only developped by us, we only have to remember that using + // manifest), and (3) plugins are only developed by us, we only have to remember that using // `render()` is only supported from within the main process (which cover all our use cases so // far). } diff --git a/app/client/lib/dispose.d.ts b/app/client/lib/dispose.d.ts index 2bc6a8c2..96886b77 100644 --- a/app/client/lib/dispose.d.ts +++ b/app/client/lib/dispose.d.ts @@ -1,4 +1,4 @@ -// TODO: add remaining Disposable methode +// TODO: add remaining Disposable method export abstract class Disposable { public static create any>( this: T, ...args: ConstructorParameters): InstanceType; diff --git a/app/client/lib/uploads.ts b/app/client/lib/uploads.ts index 363849a5..be90a8c8 100644 --- a/app/client/lib/uploads.ts +++ b/app/client/lib/uploads.ts @@ -146,7 +146,7 @@ export async function uploadFiles( } /** - * Fetches ressource from a url and returns an UploadResult. Tries to fetch from the client and + * Fetches resource from a url and returns an UploadResult. Tries to fetch from the client and * upload the file to the server. If unsuccessful, tries to fetch directly from the server. In both * case, it guesses the name of the file based on the response's content-type and the url. */ diff --git a/app/client/models/DocData.ts b/app/client/models/DocData.ts index e7ca092c..6b0de018 100644 --- a/app/client/models/DocData.ts +++ b/app/client/models/DocData.ts @@ -34,7 +34,7 @@ export class DocData extends BaseDocData { /** * Constructor for DocData. - * @param {Object} docComm: A map of server methods availble on this document. + * @param {Object} docComm: A map of server methods available on this document. * @param {Object} metaTableData: A map from tableId to table data, presented as an action, * equivalent to BulkAddRecord, i.e. ["TableData", tableId, rowIds, columnValues]. */ diff --git a/app/client/models/TreeModel.ts b/app/client/models/TreeModel.ts index 42e96174..36d2ec45 100644 --- a/app/client/models/TreeModel.ts +++ b/app/client/models/TreeModel.ts @@ -74,7 +74,7 @@ function getRecords(table: TreeTableData) { return fixIndents(records); } -// The fixIndents function returns a copy of records with the garantee the .indentation starts at 0 +// The fixIndents function returns a copy of records with the guarantee the .indentation starts at 0 // and can only increase one step at a time (note that it is however permitted to decrease several // level at a time). This is useful to build a model for the tree view. export function fixIndents(records: TreeRecord[]) { diff --git a/app/client/models/errors.ts b/app/client/models/errors.ts index 29f967bf..72d25cdb 100644 --- a/app/client/models/errors.ts +++ b/app/client/models/errors.ts @@ -20,7 +20,7 @@ export class UserError extends Error { } /** - * This error causes Notifer to show the message with an upgrade link. + * This error causes Notifier to show the message with an upgrade link. */ export class NeedUpgradeError extends Error { public name: string = 'NeedUpgradeError'; diff --git a/app/client/ui/ApiKey.ts b/app/client/ui/ApiKey.ts index 59e99ad6..206e9c52 100644 --- a/app/client/ui/ApiKey.ts +++ b/app/client/ui/ApiKey.ts @@ -20,7 +20,7 @@ const testId = makeTestId('test-apikey-'); * ApiKey component shows an api key with controls to change it. Expects `options.apiKey` the api * key and shows it if value is truthy along with a 'Delete' button that triggers the * `options.onDelete` callback. When `options.apiKey` is falsy, hides it and show a 'Create' button - * that triggers the `options.onCreate` callback. It is the responsability of the caller to update + * that triggers the `options.onCreate` callback. It is the responsibility of the caller to update * the `options.apiKey` to its new value. */ export class ApiKey extends Disposable { diff --git a/app/client/ui/AppUI.ts b/app/client/ui/AppUI.ts index dc03d873..629a28d1 100644 --- a/app/client/ui/AppUI.ts +++ b/app/client/ui/AppUI.ts @@ -56,7 +56,7 @@ function createMainPage(appModel: AppModel, appObj: App) { } else if (err && (err.status === 401 || err.status === 403)) { // Generally give access denied error. // The exception is for document pages, where we want to allow access to documents - // shared publically without being shared specifically with the current user. + // shared publicly without being shared specifically with the current user. if (appModel.pageType.get() !== 'doc') { return createForbiddenPage(appModel); } diff --git a/app/client/ui/ColumnFilterMenu.ts b/app/client/ui/ColumnFilterMenu.ts index 6a75da53..189ec2a2 100644 --- a/app/client/ui/ColumnFilterMenu.ts +++ b/app/client/ui/ColumnFilterMenu.ts @@ -207,7 +207,7 @@ export function columnFilterMenu(owner: IDisposableOwner, opts: IFilterMenuOptio * On user clicks, if checkbox is checked, it does uncheck all the values, and if the * `switchFilterType` is true it also converts the filter into an inclusion filter. But if the * checkbox is unchecked, or in the Indeterminate state, it does check all the values, and if the - * `switchFilterType` is true it also converts the filter into an exlusion filter. + * `switchFilterType` is true it also converts the filter into an exclusion filter. */ function buildSummary(label: string|Computed, values: Array<[CellValue, IFilterCount]>, switchFilterType: boolean, model: ColumnFilterMenuModel) { diff --git a/app/client/ui/FileDialog.ts b/app/client/ui/FileDialog.ts index 35788a99..8db81f0a 100644 --- a/app/client/ui/FileDialog.ts +++ b/app/client/ui/FileDialog.ts @@ -53,7 +53,7 @@ export function openFilePicker(options: FileDialogOptions): Promise { /** * Opens the file picker dialog. If files are selected, calls the provided callback. - * If no files are seleced, will call the callback with an empty list if possible, or more + * If no files are selected, will call the callback with an empty list if possible, or more * typically not call it at all. */ export function open(options: FileDialogOptions, callback: FilesCB): void { diff --git a/app/client/ui/MFAConfig.ts b/app/client/ui/MFAConfig.ts index 5ee922d3..a9f1985d 100644 --- a/app/client/ui/MFAConfig.ts +++ b/app/client/ui/MFAConfig.ts @@ -194,7 +194,7 @@ export class MFAConfig extends Disposable { return [ this._buildSecurityVerificationForm(ctl, {onSuccess: async (hadSecondStep) => { /** - * If method was unspecified, but second step verification occured, we know that + * If method was unspecified, but second step verification occurred, we know that * the client doesn't have up-to-date 2FA preferences. Close the modal, and force * a refresh of UserMFAPreferences, which should cause the correct buttons to be * rendered once preferences are loaded. diff --git a/app/client/ui/MakeCopyMenu.ts b/app/client/ui/MakeCopyMenu.ts index b5745ce0..f8b15ee3 100644 --- a/app/client/ui/MakeCopyMenu.ts +++ b/app/client/ui/MakeCopyMenu.ts @@ -90,7 +90,7 @@ function allowOtherOrgs(doc: Document, app: AppModel): boolean { /** - * Ask user for the desination and new name, and make a copy of the doc using those. + * Ask user for the destination and new name, and make a copy of the doc using those. */ export async function makeCopy(doc: Document, app: AppModel, modalTitle: string): Promise { if (!app.currentValidUser) { diff --git a/app/client/ui/Pages.ts b/app/client/ui/Pages.ts index 9411ffa8..e08f1a77 100644 --- a/app/client/ui/Pages.ts +++ b/app/client/ui/Pages.ts @@ -75,7 +75,7 @@ function buildDomFromTable(pagesTable: MetaTableModel, activeDoc: Grist } // if user removes a primary view, let's confirm first, because this will remove the - // corresponsing table and also all pages that are using this table. + // corresponding table and also all pages that are using this table. // TODO: once we have raw table view, removing page should remove just the view (not the // table), but for now this is the only way to remove a table in the newui. actions.onRemove = () => confirmModal( diff --git a/app/client/ui/TreeViewComponent.ts b/app/client/ui/TreeViewComponent.ts index 47e281b4..6fa80160 100644 --- a/app/client/ui/TreeViewComponent.ts +++ b/app/client/ui/TreeViewComponent.ts @@ -91,7 +91,7 @@ const testId = makeTestId('test-treeview-'); * item and by highlighting its parent. In order to ensure data consistency, the component prevents * dropping an item within its own children. If the cursor leaves the component during a drag, all * such visual artifact (handle, target and target's parent) are hidden, but if the cursor re-enter - * the componet without releasing the mouse, they will show again allowing user to resume dragging. + * the component without releasing the mouse, they will show again allowing user to resume dragging. */ // note to self: in the future the model will be updated by the server, which could cause conflicts // if the user is dragging at the same time. It could be simpler to freeze the model and to differ @@ -125,7 +125,7 @@ export class TreeViewComponent extends Disposable { // While building dom we add listeners to the children of all tree nodes to watch for changes // and call this._update. Hence, repeated calls to this._update is likely to add or remove - // listeners to the observable that triggered the udpate which is not supported by grainjs and + // listeners to the observable that triggered the update which is not supported by grainjs and // could fail (possibly infinite loop). Debounce allows for several change to resolve to a // single update. this._update = debounce(this._update.bind(this), 0, {leading: false}); @@ -230,7 +230,7 @@ export class TreeViewComponent extends Disposable { // Update this._childrenDom with the content of the new tree. Its rebuilds entirely the tree of // items and reuses dom from the old content for each item that were already part of the old - // tree. Then takes care of disposing dom for thoses items that were removed from the old tree. + // tree. Then takes care of disposing dom for those items that were removed from the old tree. private _update() { this._childrenDom.set(this._buildChildren(this._model.get().children(), 0)); diff --git a/app/client/ui/VisibleFieldsConfig.ts b/app/client/ui/VisibleFieldsConfig.ts index f26f34e6..b1942daa 100644 --- a/app/client/ui/VisibleFieldsConfig.ts +++ b/app/client/ui/VisibleFieldsConfig.ts @@ -423,7 +423,7 @@ function buildCheckbox(...args: IDomArgs) { ); } -// helper to find checkboxes withing a draggable list. This assumes that checkboxes are the only +// helper to find checkboxes within a draggable list. This assumes that checkboxes are the only // element in draggableElement. function findCheckboxes(draggableElement: Element): NodeListOf { return draggableElement.querySelectorAll('input'); diff --git a/app/client/ui2018/cssVars.ts b/app/client/ui2018/cssVars.ts index ec6714c1..2c8c380e 100644 --- a/app/client/ui2018/cssVars.ts +++ b/app/client/ui2018/cssVars.ts @@ -1,5 +1,5 @@ /** - * CSS Variables. To use in your web appication, add `cssRootVars` to the class list for your app's + * CSS Variables. To use in your web application, add `cssRootVars` to the class list for your app's * root node, typically ``. * * The fonts used attempt to default to system fonts as described here: diff --git a/app/client/ui2018/editableLabel.ts b/app/client/ui2018/editableLabel.ts index 2c9ee031..2b12d54e 100644 --- a/app/client/ui2018/editableLabel.ts +++ b/app/client/ui2018/editableLabel.ts @@ -20,7 +20,7 @@ const cssWrapper = styled('div', ` `); export const cssLabelText = styled(rawTextInput, ` - /* Reset apperance */ + /* Reset appearance */ -webkit-appearance: none; -moz-appearance: none; padding: 0; diff --git a/app/client/ui2018/modals.ts b/app/client/ui2018/modals.ts index 6e80428d..02f51507 100644 --- a/app/client/ui2018/modals.ts +++ b/app/client/ui2018/modals.ts @@ -22,7 +22,7 @@ export interface IModalControl { // Returns true if closed, false if closing was prevented. closeAndWait(): Promise; - // Prevents closing, if close has been called ans is pending. No-op otherwise. + // Prevents closing, if close has been called and is pending. No-op otherwise. preventClose(): void; // Wraps the passed-in function, so that closing is delayed while the function is running. If diff --git a/app/client/ui2018/pages.ts b/app/client/ui2018/pages.ts index d0b8c4a0..930c2854 100644 --- a/app/client/ui2018/pages.ts +++ b/app/client/ui2018/pages.ts @@ -64,7 +64,7 @@ export function buildPageDom(name: Observable, actions: PageActions, ... dom.on('click', (ev) => { ev.stopPropagation(); ev.preventDefault(); }) ), // Note that we don't pass extra args when renaming is on, because they usually includes - // mouse event handlers interferring with input editor and yields wrong behavior on + // mouse event handlers interfering with input editor and yields wrong behavior on // firefox. ) : cssPageItem( diff --git a/app/client/widgets/BaseEditor.js b/app/client/widgets/BaseEditor.js index 7e204da9..f406d7d4 100644 --- a/app/client/widgets/BaseEditor.js +++ b/app/client/widgets/BaseEditor.js @@ -35,7 +35,7 @@ BaseEditor.prototype.getCellValue = function() { }; /** - * Used if an editor needs preform any actions before a save + * Used if an editor needs perform any actions before a save */ BaseEditor.prototype.prepForSave = function() { // No-op by default. diff --git a/app/client/widgets/FieldEditor.ts b/app/client/widgets/FieldEditor.ts index a2b78bf8..b84a27de 100644 --- a/app/client/widgets/FieldEditor.ts +++ b/app/client/widgets/FieldEditor.ts @@ -430,9 +430,9 @@ export function openFormulaEditor(options: { editor.attach(refElem); // When formula is empty enter formula-editing mode (highlight formula icons; click on a column inserts its ID). - // This function is used for primarily for switching between diffrent column behaviors, so we want to enter full + // This function is used for primarily for switching between different column behaviors, so we want to enter full // edit mode right away. - // TODO: consider converting it to parameter, when this will be used in diffrent scenarios. + // TODO: consider converting it to parameter, when this will be used in different scenarios. if (!column.formula()) { field.editingFormula(true); } diff --git a/app/client/widgets/NewBaseEditor.ts b/app/client/widgets/NewBaseEditor.ts index 67c3b37b..39e78e7c 100644 --- a/app/client/widgets/NewBaseEditor.ts +++ b/app/client/widgets/NewBaseEditor.ts @@ -91,7 +91,7 @@ export abstract class NewBaseEditor extends Disposable { public abstract getCellValue(): CellValue; /** - * Used if an editor needs preform any actions before a save + * Used if an editor needs perform any actions before a save */ public prepForSave(): void | Promise { // No-op by default. diff --git a/app/common/ActionSummary.ts b/app/common/ActionSummary.ts index 8820a934..c03f4ea8 100644 --- a/app/common/ActionSummary.ts +++ b/app/common/ActionSummary.ts @@ -28,7 +28,7 @@ import toPairs = require('lodash/toPairs'); * removal of a table (or column) as the special name pair [finalName, null]. * * An ActionSummary contains two fields: - * - tableRenames: a list of table name changes (incuding addition/removal). + * - tableRenames: a list of table name changes (including addition/removal). * - tableDeltas: a dictionary of changes within a table. * * The key of the tableDeltas dictionary is the name of a table at the end of the @@ -45,7 +45,7 @@ import toPairs = require('lodash/toPairs'); * * The changes within a table are represented as a TableDelta, which has the following * fields: - * - columnRenames: a list of column name changes (incuding addition/removal). + * - columnRenames: a list of column name changes (including addition/removal). * - columnDeltas: a dictionary of changes within a column. * - updateRows, removeRows, addRows: lists of affected rows. * diff --git a/app/common/ActiveDocAPI.ts b/app/common/ActiveDocAPI.ts index ff485494..7c0a369b 100644 --- a/app/common/ActiveDocAPI.ts +++ b/app/common/ActiveDocAPI.ts @@ -58,7 +58,7 @@ export interface ImportResult { export interface ImportTableResult { hiddenTableId: string; - uploadFileIndex: number; // Index into upload.files array, for the file reponsible for this table. + uploadFileIndex: number; // Index into upload.files array, for the file responsible for this table. origTableName: string; transformSectionRef: number; destTableId: string|null; diff --git a/app/common/BinaryIndexedTree.js b/app/common/BinaryIndexedTree.js index 49afd4ff..ee4253bd 100644 --- a/app/common/BinaryIndexedTree.js +++ b/app/common/BinaryIndexedTree.js @@ -132,7 +132,7 @@ BinaryIndexedTree.prototype.fillFromCumulative = function(cumulValues) { /** - * Creates a tree from an array of invididual values. + * Creates a tree from an array of individual values. * Takes time linear in the size of the array. * @param {Array} - array with each element containing the value to insert. */ diff --git a/app/common/InactivityTimer.ts b/app/common/InactivityTimer.ts index c2dea90a..7cc172bb 100644 --- a/app/common/InactivityTimer.ts +++ b/app/common/InactivityTimer.ts @@ -2,7 +2,7 @@ * InactivityTimer allows to set a function that executes after a certain time of * inactivity. Activities can be of two kinds: synchronous or asynchronous. Asynchronous activities, * are handle with the `disableUntiFinish` method that takes in a Promise and makes sure that the - * timer does not start before the promise resolves. Synchroneous activities are monitored with the + * timer does not start before the promise resolves. Synchronous activities are monitored with the * `ping` method which resets the timer if called during inactivity. * * Timer won't start before any activity happens, but you may simply call ping() after construction diff --git a/app/common/PluginInstance.ts b/app/common/PluginInstance.ts index dcacdad8..64fdf358 100644 --- a/app/common/PluginInstance.ts +++ b/app/common/PluginInstance.ts @@ -12,7 +12,7 @@ import {RenderOptions, RenderTarget} from 'app/plugin/RenderOptions'; export type ComponentKind = "safeBrowser" | "safePython" | "unsafeNode"; // Describes a function that appends some html content to `containerElement` given some -// options. Usefull for provided by a plugin. +// options. Useful for provided by a plugin. export type TargetRenderFunc = (containerElement: HTMLElement, options?: RenderOptions) => void; /** @@ -93,7 +93,7 @@ export abstract class BaseComponent implements IForwarderDest { * Node Implementation for the PluginElement interface. A PluginInstance take care of activation of * the the plugins's components (activating, timing and deactivating), and create the api's for each contributions. * - * Do not try to instanciate yourself, PluginManager does it for you. Instead use the + * Do not try to instantiate yourself, PluginManager does it for you. Instead use the * PluginManager.getPlugin(id) method that get instances for you. * */ diff --git a/app/common/SortFunc.ts b/app/common/SortFunc.ts index 6ba09733..1bfc7098 100644 --- a/app/common/SortFunc.ts +++ b/app/common/SortFunc.ts @@ -64,7 +64,7 @@ export function typedCompare(val1: any, val2: any): number { if ((result = nativeCompare(type1 = typeof val1, typeof val2)) !== 0) { return result; } - // We need to worry about Array comparisons because formulas returing Any may return null or + // We need to worry about Array comparisons because formulas returning Any may return null or // object values represented as arrays (e.g. ['D', ...] for dates). Comparing those without // distinguishing types would break the sort. Also, arrays need a special comparator. if (type1 === 'object') { diff --git a/app/common/ValueFormatter.ts b/app/common/ValueFormatter.ts index 5e634826..9078d1a6 100644 --- a/app/common/ValueFormatter.ts +++ b/app/common/ValueFormatter.ts @@ -40,7 +40,7 @@ function hasNestedObjects(value: any[]) { * Formats a decoded Grist value for displaying it. For top-level values, formats them the way we * like to see them in a cell or in, say, CSV export. * For top-level lists containing only simple values like strings and dates, formats them as a CSV row. - * Nested lists and objects are formatted slighly differently, with quoted strings and ISO format for dates. + * Nested lists and objects are formatted slightly differently, with quoted strings and ISO format for dates. */ export function formatDecoded(value: unknown, isTopLevel: boolean = true): string { if (typeof value === 'object' && value) { diff --git a/app/plugin/GristAPI.ts b/app/plugin/GristAPI.ts index 843f3d93..b8a011ad 100644 --- a/app/plugin/GristAPI.ts +++ b/app/plugin/GristAPI.ts @@ -45,7 +45,7 @@ export interface GristAPI { /** * Render the file at `path` into the `target` location in Grist. `path` must be relative to the * root of the plugin's directory and point to an html that is contained within the plugin's - * directory. `target` is a predifined location of the Grist UI, it could be `fullscreen` or + * directory. `target` is a predefined location of the Grist UI, it could be `fullscreen` or * identifier for an inline target. Grist provides inline target identifiers in certain call * plugins. E.g. ImportSourceAPI.getImportSource is given a target identifier to allow rende UI * inline in the import dialog. Returns the procId which can be used to dispose the view. diff --git a/app/plugin/grist-plugin-api.ts b/app/plugin/grist-plugin-api.ts index 23548b3a..d73674e2 100644 --- a/app/plugin/grist-plugin-api.ts +++ b/app/plugin/grist-plugin-api.ts @@ -1,4 +1,4 @@ -// Provide a way to acess grist for iframe, web worker (which runs the main safeBrowser script) and +// Provide a way to access grist for iframe, web worker (which runs the main safeBrowser script) and // unsafeNode. WebView should work the same way as iframe, grist is exposed just the same way and // necessary api is exposed using preload script. Here we bootstrap from channel capabilities to key // parts of the grist API. @@ -230,7 +230,7 @@ export function onOptions(callback: (options: any, settings: InteractionOptions) * */ export async function addImporter(name: string, path: string, mode: 'fullscreen' | 'inline', options?: RenderOptions) { - // checker is omitted for implementation because call was alredy checked by grist. + // checker is omitted for implementation because call was already checked by grist. rpc.registerImpl(name, { async getImportSource(target: RenderTarget): Promise { const procId = await api.render(path, mode === 'inline' ? target : 'fullscreen', options); @@ -308,7 +308,7 @@ if (typeof window !== 'undefined') { process.on('disconnect', () => { process.exit(0); }); } else { // Not a recognized environment, perhaps plain nodejs run independently of Grist, or tests - // running under mocha. For now, we only provide a disfunctional implementation. It allows + // running under mocha. For now, we only provide a dysfunctional implementation. It allows // plugins to call methods like registerFunction() without failing, so that plugin code may be // imported, but the methods don't do anything useful. rpc.setSendMessage((data) => { return; }); diff --git a/app/server/lib/ActionHistoryImpl.ts b/app/server/lib/ActionHistoryImpl.ts index 5048ca6e..2896ba04 100644 --- a/app/server/lib/ActionHistoryImpl.ts +++ b/app/server/lib/ActionHistoryImpl.ts @@ -453,7 +453,7 @@ export class ActionHistoryImpl implements ActionHistory { } /** - * Fetches the most recent action row from the history, orderd with earlier actions first. + * Fetches the most recent action row from the history, ordered with earlier actions first. * If `maxActions` is supplied, at most that number of actions are returned. */ private async _getRecentActionRows(maxActions: number|undefined, diff --git a/app/server/lib/ActionSummary.ts b/app/server/lib/ActionSummary.ts index 6e933bd8..27ff7306 100644 --- a/app/server/lib/ActionSummary.ts +++ b/app/server/lib/ActionSummary.ts @@ -19,7 +19,7 @@ import values = require('lodash/values'); const MAXIMUM_INLINE_ROWS = 10; /** - * Options when producing an action sumary. + * Options when producing an action summary. */ export interface ActionSummaryOptions { maximumInlineRows?: number; // Overrides the maximum number of rows in a @@ -309,7 +309,7 @@ function renameAndDelete(entries: {[name: string]: T}, dead: Set, } /** - * Apply planned name changes to a pair of entries, and return a merged entry encorporating + * Apply planned name changes to a pair of entries, and return a merged entry incorporating * their composition. * * @param names: the planned name changes as calculated by planNameMerge() diff --git a/app/server/lib/ActiveDocImport.ts b/app/server/lib/ActiveDocImport.ts index 7ad5ea8e..a645f95e 100644 --- a/app/server/lib/ActiveDocImport.ts +++ b/app/server/lib/ActiveDocImport.ts @@ -349,7 +349,7 @@ export class ActiveDocImport { hiddenTableId: createdTableId, // TODO: rename thing? uploadFileIndex, origTableName, - transformSectionRef, // TODO: this shouldnt always be needed, and we only get it if genimporttransform + transformSectionRef, // TODO: this shouldn't always be needed, and we only get it if genimporttransform destTableId }); } diff --git a/app/server/lib/Authorizer.ts b/app/server/lib/Authorizer.ts index 3637d17c..37626570 100644 --- a/app/server/lib/Authorizer.ts +++ b/app/server/lib/Authorizer.ts @@ -482,7 +482,7 @@ export function assertAccess( } /** - * Pull out headers to pass along to a proxied service. Focussed primarily on + * Pull out headers to pass along to a proxied service. Focused primarily on * authentication. */ export function getTransitiveHeaders(req: Request): {[key: string]: string} { diff --git a/app/server/lib/BrowserSession.ts b/app/server/lib/BrowserSession.ts index 242e7d80..83d7cb78 100644 --- a/app/server/lib/BrowserSession.ts +++ b/app/server/lib/BrowserSession.ts @@ -129,7 +129,7 @@ export function linkOrgWithEmail(session: SessionObj, email: string, org: string * * This is a view of the session object, for a single organization (the "scope"). * - * Local caching is disabled in an enviroment where there is a home server (or we are + * Local caching is disabled in an environment where there is a home server (or we are * the home server). In hosted Grist, per-instance caching would be a problem. * * We retain local caching for situations with a single server - especially electron. diff --git a/app/server/lib/DocPluginManager.ts b/app/server/lib/DocPluginManager.ts index 5a8edc7c..dc70c96f 100644 --- a/app/server/lib/DocPluginManager.ts +++ b/app/server/lib/DocPluginManager.ts @@ -51,7 +51,7 @@ class GristDocAPIImpl implements GristDocAPI { /** * DocPluginManager manages plugins for a document. * - * DocPluginManager instanciates asynchronously. Wait for the `ready` to resolve before using any + * DocPluginManager instantiates asynchronously. Wait for the `ready` to resolve before using any * plugin. * */ diff --git a/app/server/lib/DocSnapshots.ts b/app/server/lib/DocSnapshots.ts index 7d4f515e..ec0344af 100644 --- a/app/server/lib/DocSnapshots.ts +++ b/app/server/lib/DocSnapshots.ts @@ -85,7 +85,7 @@ export class DocSnapshotPruner { * steady state). * * The list of versions (with metadata) for a document is itself stored in S3. This isn't - * ideal since we cannnot simply append a new version to the list without rewriting it in full. + * ideal since we cannot simply append a new version to the list without rewriting it in full. * But the alternatives have more serious problems, and this way folds quite well into the * existing pruning setup. * - Storing in db would mean we'd need sharding sooner than otherwise diff --git a/app/server/lib/DocStorage.ts b/app/server/lib/DocStorage.ts index 09fdfdc6..b188b380 100644 --- a/app/server/lib/DocStorage.ts +++ b/app/server/lib/DocStorage.ts @@ -678,7 +678,7 @@ export class DocStorage implements ISQLiteDB { */ public _initDB(): Promise { // Set options for speed across multiple OSes/Filesystems. - // WAL is fast and safe (guarantees consistency accross crashes), but has disadvantages + // WAL is fast and safe (guarantees consistency across crashes), but has disadvantages // including generating unwanted extra files that can be tricky to deal with in renaming, etc // the options for WAL are commented out // Setting synchronous to OFF is the fastest method, but is not as safe, and could lead to diff --git a/app/server/lib/DocWorkerMap.ts b/app/server/lib/DocWorkerMap.ts index d3b77738..716790dc 100644 --- a/app/server/lib/DocWorkerMap.ts +++ b/app/server/lib/DocWorkerMap.ts @@ -57,7 +57,7 @@ export interface IDocWorkerMap extends IPermitStores, IElectionStore, IChecksumS setWorkerAvailability(workerId: string, available: boolean): Promise; // Releases doc from worker, freeing it to be assigned elsewhere. - // Assigments should only be released for workers that are now unavailable. + // Assignments should only be released for workers that are now unavailable. releaseAssignment(workerId: string, docId: string): Promise; // Get all assignments for a worker. Should only be queried for a worker that diff --git a/app/server/lib/ExpandedQuery.ts b/app/server/lib/ExpandedQuery.ts index dbd7ee4d..a128c3a9 100644 --- a/app/server/lib/ExpandedQuery.ts +++ b/app/server/lib/ExpandedQuery.ts @@ -134,7 +134,7 @@ export function expandQuery(iquery: ServerQuery, docData: DocData, onDemandFormu } /** - * Build a query that relates two homogenous tables sharing a common set of columns, + * Build a query that relates two homogeneous tables sharing a common set of columns, * returning rows that exist in both tables (if they have differences), and rows from * `leftTableId` that don't exist in `rightTableId`. * diff --git a/app/server/lib/ExternalStorage.ts b/app/server/lib/ExternalStorage.ts index 76080848..685a724b 100644 --- a/app/server/lib/ExternalStorage.ts +++ b/app/server/lib/ExternalStorage.ts @@ -208,7 +208,7 @@ export class ChecksummedExternalStorage implements ExternalStorage { /** * We may want to download material from one key and henceforth treat it as another - * key (specifically for forking a document). Since this class crossreferences the + * key (specifically for forking a document). Since this class cross-references the * key in the external store with other consistent stores, it needs to know we are * doing that. So we add a downloadTo variant that takes before and after keys. */ diff --git a/app/server/lib/FlexServer.ts b/app/server/lib/FlexServer.ts index 93400d6f..d5dd3119 100644 --- a/app/server/lib/FlexServer.ts +++ b/app/server/lib/FlexServer.ts @@ -1070,7 +1070,7 @@ export class FlexServer implements GristServer { const scope = addPermit(getScope(mreq), this._dbManager.getSupportUserId(), {org: orgDomain}); const query = await this._dbManager.getOrg(scope, orgDomain); const org = this._dbManager.unwrapQueryResult(query); - // This page isn't availabe for personal site. + // This page isn't available for personal site. if (org.owner) { return this._sendAppPage(req, resp, {path: 'error.html', status: 404, config: {errPage: 'not-found'}}); } diff --git a/app/server/lib/GranularAccess.ts b/app/server/lib/GranularAccess.ts index 321f92ba..535bffa3 100644 --- a/app/server/lib/GranularAccess.ts +++ b/app/server/lib/GranularAccess.ts @@ -373,7 +373,7 @@ export class GranularAccess implements GranularAccessForBundle { /** * Check whether an ActionGroup can be sent to the client. TODO: in future, we'll want - * to filter acceptible parts of ActionGroup, rather than denying entirely. + * to filter acceptable parts of ActionGroup, rather than denying entirely. */ public async allowActionGroup(docSession: OptDocSession, actionGroup: ActionGroup): Promise { return this.canReadEverything(docSession); diff --git a/app/server/lib/HostedMetadataManager.ts b/app/server/lib/HostedMetadataManager.ts index 27a4c048..b809c280 100644 --- a/app/server/lib/HostedMetadataManager.ts +++ b/app/server/lib/HostedMetadataManager.ts @@ -19,7 +19,7 @@ export class HostedMetadataManager { // Callback for next opportunity to push changes. private _timeout: any = null; - // Mantains the update Promise to wait on it if the class is closing. + // Maintains the update Promise to wait on it if the class is closing. private _push: Promise|null; /** @@ -65,7 +65,7 @@ export class HostedMetadataManager { } /** - * Push all metadata updates to the databse. + * Push all metadata updates to the database. */ private _update(): void { if (this._push) { return; } diff --git a/app/server/lib/NSandbox.ts b/app/server/lib/NSandbox.ts index 94cca548..071f0631 100644 --- a/app/server/lib/NSandbox.ts +++ b/app/server/lib/NSandbox.ts @@ -350,7 +350,7 @@ const spawners = { * - GRIST_SANDBOX_FLAVOR: should be one of the spawners (pynbox, unsandboxed, docker, * gvisor, macSandboxExec) * - GRIST_SANDBOX: a program or image name to run as the sandbox. Not needed for - * pynbox (it is either built in or not avaiable). For unsandboxed, should be an + * pynbox (it is either built in or not available). For unsandboxed, should be an * absolute path to python within a virtualenv with all requirements installed. * For docker, it should be `grist-docker-sandbox` (an image built via makefile * in `sandbox/docker`) or a derived image. For gvisor, it should be the full path @@ -743,7 +743,7 @@ function getWrappingEnv(options: ISandboxOptions) { * structure on the host rather than remapping, we can simplify nesting * wrappers, or cases where remapping isn't possible. It does leak the names * of the host directories though, and there could be silly complications if the - * directories have spaces or other idiosyncracies. When committing to a sandbox + * directories have spaces or other idiosyncrasies. When committing to a sandbox * technology, for stand-alone Grist, it would be worth rethinking this. */ function getAbsolutePaths(options: ISandboxOptions) { diff --git a/app/server/lib/PluginManager.ts b/app/server/lib/PluginManager.ts index c377306d..fb1e7669 100644 --- a/app/server/lib/PluginManager.ts +++ b/app/server/lib/PluginManager.ts @@ -66,7 +66,7 @@ export class PluginManager { } /** - * Re-load plugins (litterally re-run `loadPlugins`). + * Re-load plugins (literally re-run `loadPlugins`). */ // TODO: it's not clear right now what we do on reload. Do we deactivate plugins that were removed // from the fs? Do we update plugins that have changed on the fs ? diff --git a/app/server/lib/SQLiteDB.ts b/app/server/lib/SQLiteDB.ts index ca05b3c6..09f488ed 100644 --- a/app/server/lib/SQLiteDB.ts +++ b/app/server/lib/SQLiteDB.ts @@ -114,7 +114,7 @@ export type DBFunc = (db: SQLiteDB) => Promise; export enum OpenMode { OPEN_CREATE, // Open DB or create if doesn't exist (the default mode for sqlite3 module) OPEN_EXISTING, // Open DB or fail if doesn't exist - OPEN_READONLY, // Open DB in read-only mode or fail if doens't exist. + OPEN_READONLY, // Open DB in read-only mode or fail if doesn't exist. CREATE_EXCL, // Create new DB or fail if it already exists. } diff --git a/app/server/lib/SamlConfig.ts b/app/server/lib/SamlConfig.ts index 8fe98c96..cbed758a 100644 --- a/app/server/lib/SamlConfig.ts +++ b/app/server/lib/SamlConfig.ts @@ -174,7 +174,7 @@ export class SamlConfig { if (state.action === 'login') { const samlUser = samlResponse.user; if (!samlUser || !samlUser.name_id) { - log.warn(`SamlConfig: bad SAML reponse: ${JSON.stringify(samlUser)}`); + log.warn(`SamlConfig: bad SAML response: ${JSON.stringify(samlUser)}`); throw new Error("Invalid user info in SAML response"); } @@ -183,7 +183,7 @@ export class SamlConfig { // available. Otherwise we use user.attributes which has the form {Name: [Value]}. const fname = samlUser.given_name || samlUser.attributes.FirstName || ''; const lname = samlUser.surname || samlUser.attributes.LastName || ''; - const email = samlUser.email || samlUser.nameId; + const email = samlUser.email || samlUser.name_id; const profile = { email, name: `${fname} ${lname}`.trim(), diff --git a/app/server/lib/Sharing.ts b/app/server/lib/Sharing.ts index 6350e28a..6185b9e0 100644 --- a/app/server/lib/Sharing.ts +++ b/app/server/lib/Sharing.ts @@ -320,7 +320,7 @@ export class Sharing { isModification: sandboxActionBundle.stored.length > 0 }; } finally { - // Make sure the bundle is marked as complete, even if some miscellaneous error occured. + // Make sure the bundle is marked as complete, even if some miscellaneous error occurred. await accessControl.finishedBundle(); } } diff --git a/app/server/lib/docUtils.js b/app/server/lib/docUtils.js index 8820b61e..00e66f27 100644 --- a/app/server/lib/docUtils.js +++ b/app/server/lib/docUtils.js @@ -74,8 +74,8 @@ exports.createNumbered = createNumbered; /** * An easier-to-use alternative to createNumbered. Pass in a template string containing the * special token "{NUM}". It will first call creator() with "{NUM}" removed, then with "{NUM}" - * replcaced by "-2", "-3", etc, until creator() succeeds, and will return the value for which it - * suceeded. + * replaced by "-2", "-3", etc, until creator() succeeds, and will return the value for which it + * succeeded. */ function createNumberedTemplate(template, creator) { const [prefix, suffix] = template.split("{NUM}"); diff --git a/sandbox/grist/engine.py b/sandbox/grist/engine.py index 039454b0..ab56d686 100644 --- a/sandbox/grist/engine.py +++ b/sandbox/grist/engine.py @@ -141,7 +141,7 @@ class Engine(object): def __init__(self): - # The document data, incuding logic (formulas), and metadata (tables prefixed with "_grist_"). + # The document data, including logic (formulas), and metadata (tables prefixed with "_grist_"). self.tables = {} # Maps table IDs (or names) to Table objects. # Schema contains information about tables and columns, needed in particular to generate the diff --git a/sandbox/grist/gencode.py b/sandbox/grist/gencode.py index bf041207..9bd661c5 100644 --- a/sandbox/grist/gencode.py +++ b/sandbox/grist/gencode.py @@ -152,7 +152,7 @@ class GenCode(object): return textbuilder.Combiner(parts) def make_module(self, schema): - """Regenerates the code text and usercode module from upated document schema.""" + """Regenerates the code text and usercode module from updated document schema.""" # Collect summary tables to group them by source table. summary_tables = {} for table_info in six.itervalues(schema): diff --git a/sandbox/grist/imports/dateguess.py b/sandbox/grist/imports/dateguess.py index 5b024c20..d06bafe5 100644 --- a/sandbox/grist/imports/dateguess.py +++ b/sandbox/grist/imports/dateguess.py @@ -328,7 +328,7 @@ def _sliding_triplets(tokens): def _analyze_tokens(tokens): - """Analize each token and find out compatible types for it.""" + """Analyze each token and find out compatible types for it.""" for token, prev, nxt in _sliding_triplets(tokens): token.compatible_types = tuple([t for t in DATE_ELEMENTS if t[2](token.val, prev, nxt)]) diff --git a/sandbox/grist/imports/import_json.py b/sandbox/grist/imports/import_json.py index a14ef6a1..7ae6f3cd 100644 --- a/sandbox/grist/imports/import_json.py +++ b/sandbox/grist/imports/import_json.py @@ -97,12 +97,12 @@ for typ in six.string_types: SCHEMA = [{ 'name': 'includes', - 'label': 'Includes (list of tables seperated by semicolon)', + 'label': 'Includes (list of tables separated by semicolon)', 'type': 'string', 'visible': True }, { 'name': 'excludes', - 'label': 'Excludes (list of tables seperated by semicolon)', + 'label': 'Excludes (list of tables separated by semicolon)', 'type': 'string', 'visible': True }] diff --git a/sandbox/grist/migrations.py b/sandbox/grist/migrations.py index 99cd20cc..33ea99f5 100644 --- a/sandbox/grist/migrations.py +++ b/sandbox/grist/migrations.py @@ -111,7 +111,7 @@ def migration(schema_version, need_all_tables=False): is marked with need_all_tables=True, then the migration will be retried with all tables. NOTE: new migrations should NOT set need_all_tables=True; it would require more work to process - very large documents safely (incuding those containing on-demand tables). + very large documents safely (including those containing on-demand tables). """ def add_migration(migration_func): migration_func.need_all_tables = need_all_tables diff --git a/sandbox/grist/table.py b/sandbox/grist/table.py index a60efcdb..3f00072f 100644 --- a/sandbox/grist/table.py +++ b/sandbox/grist/table.py @@ -559,7 +559,7 @@ class Table(object): """ # We don't set up any dependencies, so it would be incorrect to use this from formulas. # We no longer assert, however, since such calls may still happen e.g. while applying - # user-actions caused by formula side-effects (e.g. as trigged by lookupOrAddDerived()) + # user-actions caused by formula side-effects (e.g. as triggered by lookupOrAddDerived()) if row_id not in self.row_ids: raise KeyError("'get_record' found no matching record") return self.Record(row_id, None) diff --git a/sandbox/grist/test_find_col.py b/sandbox/grist/test_find_col.py index 22ddb211..efe76f40 100644 --- a/sandbox/grist/test_find_col.py +++ b/sandbox/grist/test_find_col.py @@ -3,7 +3,7 @@ import test_engine class TestFindCol(test_engine.EngineTestCase): def test_find_col_from_values(self): - # Test basic funtionality. + # Test basic functionality. self.load_sample(testsamples.sample_students) self.assertEqual(self.engine.find_col_from_values(("Columbia", "Yale", "Eureka"), 0), [4, 10]) diff --git a/sandbox/grist/test_renames2.py b/sandbox/grist/test_renames2.py index 71790f5c..57a58713 100644 --- a/sandbox/grist/test_renames2.py +++ b/sandbox/grist/test_renames2.py @@ -68,7 +68,7 @@ class TestRenames2(test_engine.EngineTestCase): [ 4, "CheckersA" , 5, 1 ], ]) - # This was just setpu. Now create some crazy formulas that overuse referenes in crazy ways. + # This was just setpu. Now create some crazy formulas that overuse references in crazy ways. self.partner_names = textwrap.dedent( """ games = Entries.lookupRecords(person=$id).game diff --git a/sandbox/grist/useractions.py b/sandbox/grist/useractions.py index 8c74e15e..78166224 100644 --- a/sandbox/grist/useractions.py +++ b/sandbox/grist/useractions.py @@ -1047,7 +1047,7 @@ class UserActions(object): @override_action('BulkRemoveRecord', '_grist_Pages') def _removePageRecords(self, table_id, row_ids): """ - Remove page records and for the those that have children, udpate the first child's indentation + Remove page records and for the those that have children, update the first child's indentation so that it becomes the new parent. Note that this run a O(n) routine for each page to remove but it's ok considering that the list of _grist_Pages is not meant to grow that big. """ @@ -1686,7 +1686,7 @@ class UserActions(object): # User actions on viewSections. #---------------------------------------- - # TODO: Deprecated; This should no longer be an exposed action; it is superceded by + # TODO: Deprecated; This should no longer be an exposed action; it is superseded by # CreateViewSection. @useraction def AddViewSection(self, title, view_section_type, view_row_id, table_id): diff --git a/test/init-mocha-webdriver.js b/test/init-mocha-webdriver.js index 578cf95a..dc3faa7f 100644 --- a/test/init-mocha-webdriver.js +++ b/test/init-mocha-webdriver.js @@ -7,7 +7,7 @@ // This determines when a failed assertion shows a diff with details or // "expected [ Array(3) ] to deeply equal [ Array(3) ]". -// Increase the threshhold since the default (of 40 characters) is often too low. +// Increase the threshold since the default (of 40 characters) is often too low. // You can override it using CHAI_TRUNCATE_THRESHOLD env var; 0 disables it. require('chai').config.truncateThreshold = process.env.CHAI_TRUNCATE_THRESHOLD ? parseFloat(process.env.CHAI_TRUNCATE_THRESHOLD) : 200; diff --git a/test/nbrowser/gristUtils.ts b/test/nbrowser/gristUtils.ts index 3634d7d5..2e2d7d06 100644 --- a/test/nbrowser/gristUtils.ts +++ b/test/nbrowser/gristUtils.ts @@ -665,7 +665,7 @@ export async function importUrlDialog(url: string): Promise { /** * Starts or resets the collections of UserActions. This should be followed some time later by * a call to userActionsVerify() to check which UserActions were sent to the server. If the - * argumet is false, then stops the collection. + * argument is false, then stops the collection. */ export function userActionsCollect(yesNo: boolean = true) { return driver.executeScript("window.gristApp.comm.userActionsCollect(arguments[0])", yesNo);