diff --git a/__tests__/Comparator.ts b/__tests__/Comparator.ts index 39ab3679fb..52dac121e4 100644 --- a/__tests__/Comparator.ts +++ b/__tests__/Comparator.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { List, OrderedSet, Seq, type Comparator, PairSorting } from 'immutable'; +import { type Comparator, List, OrderedSet, PairSorting, Seq } from 'immutable'; const sourceNumbers: readonly number[] = [3, 4, 5, 6, 7, 9, 10, 12, 90, 92, 95]; diff --git a/__tests__/Conversion.ts b/__tests__/Conversion.ts index 5a008e7e55..ce732ce0a1 100644 --- a/__tests__/Conversion.ts +++ b/__tests__/Conversion.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { fromJS, is, List, Map, OrderedMap, Record } from 'immutable'; import fc, { type JsonValue } from 'fast-check'; +import { List, Map, OrderedMap, Record, fromJS, is } from 'immutable'; describe('Conversion', () => { // Note: order of keys based on Map's hashing order diff --git a/__tests__/Equality.ts b/__tests__/Equality.ts index ae95ef4a12..71acda0f3b 100644 --- a/__tests__/Equality.ts +++ b/__tests__/Equality.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { is, List, Map, Seq, Set } from 'immutable'; import fc from 'fast-check'; +import { List, Map, Seq, Set, is } from 'immutable'; describe('Equality', () => { function expectIs(left, right) { diff --git a/__tests__/KeyedSeq.ts b/__tests__/KeyedSeq.ts index 528c28f523..f29b4e25d2 100644 --- a/__tests__/KeyedSeq.ts +++ b/__tests__/KeyedSeq.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { Range, Seq } from 'immutable'; import fc from 'fast-check'; +import { Range, Seq } from 'immutable'; describe('KeyedSeq', () => { it('iterates equivalently', () => { diff --git a/__tests__/List.ts b/__tests__/List.ts index da2e9d996b..6c3507d549 100644 --- a/__tests__/List.ts +++ b/__tests__/List.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { fromJS, List, Map, Range, Seq, Set } from 'immutable'; import fc from 'fast-check'; +import { List, Map, Range, Seq, Set, fromJS } from 'immutable'; import { create as createSeed } from 'random-seed'; function arrayOfSize(s: number) { diff --git a/__tests__/Map.ts b/__tests__/Map.ts index d8ae8b16ca..e3d388f6b7 100644 --- a/__tests__/Map.ts +++ b/__tests__/Map.ts @@ -1,6 +1,6 @@ import { describe, expect, it, jest } from '@jest/globals'; -import { fromJS, is, List, Map, Range, Record, Seq } from 'immutable'; import fc from 'fast-check'; +import { List, Map, Range, Record, Seq, fromJS, is } from 'immutable'; describe('Map', () => { it('converts from object', () => { diff --git a/__tests__/OrderedSet.ts b/__tests__/OrderedSet.ts index 12c958072d..2120a187a9 100644 --- a/__tests__/OrderedSet.ts +++ b/__tests__/OrderedSet.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { OrderedSet, Map } from 'immutable'; +import { Map, OrderedSet } from 'immutable'; describe('OrderedSet', () => { it('provides initial values in a mixed order', () => { diff --git a/__tests__/Predicates.ts b/__tests__/Predicates.ts index 0ab282205b..625753e2f9 100644 --- a/__tests__/Predicates.ts +++ b/__tests__/Predicates.ts @@ -1,12 +1,12 @@ import { describe, expect, it } from '@jest/globals'; import { - is, - isImmutable, - isValueObject, List, Map, Set, Stack, + is, + isImmutable, + isValueObject, } from 'immutable'; describe('isImmutable', () => { diff --git a/__tests__/Range.ts b/__tests__/Range.ts index 94c096d1a8..28fe7e608e 100644 --- a/__tests__/Range.ts +++ b/__tests__/Range.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { Range } from 'immutable'; import fc from 'fast-check'; +import { Range } from 'immutable'; describe('Range', () => { it('fixed range', () => { diff --git a/__tests__/Record.ts b/__tests__/Record.ts index 3839b6c46b..87f7d1677b 100644 --- a/__tests__/Record.ts +++ b/__tests__/Record.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { isKeyed, List, Map, Record, Seq } from 'immutable'; +import { List, Map, Record, Seq, isKeyed } from 'immutable'; describe('Record', () => { it('defines a constructor', () => { diff --git a/__tests__/Seq.ts b/__tests__/Seq.ts index cbb048eb8b..5018d87ba9 100644 --- a/__tests__/Seq.ts +++ b/__tests__/Seq.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { isCollection, isIndexed, isKeyed, Seq } from 'immutable'; +import { Seq, isCollection, isIndexed, isKeyed } from 'immutable'; describe('Seq', () => { it('returns undefined if empty and first is called without default argument', () => { diff --git a/__tests__/Set.ts b/__tests__/Set.ts index 5e8f1fe5d7..9cde07344b 100644 --- a/__tests__/Set.ts +++ b/__tests__/Set.ts @@ -1,5 +1,5 @@ import { describe, expect, it, jest } from '@jest/globals'; -import { fromJS, is, List, Map, OrderedSet, Seq, Set } from 'immutable'; +import { List, Map, OrderedSet, Seq, Set, fromJS, is } from 'immutable'; describe('Set', () => { it('accepts array of values', () => { diff --git a/__tests__/Stack.ts b/__tests__/Stack.ts index f3fc3d9326..03cfe10deb 100644 --- a/__tests__/Stack.ts +++ b/__tests__/Stack.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { Seq, Stack } from 'immutable'; import fc from 'fast-check'; +import { Seq, Stack } from 'immutable'; function arrayOfSize(s) { const a = new Array(s); diff --git a/__tests__/flatten.ts b/__tests__/flatten.ts index 0d5cea91e8..513c3be228 100644 --- a/__tests__/flatten.ts +++ b/__tests__/flatten.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { Collection, fromJS, List, Range, Seq } from 'immutable'; +import { Collection, List, Range, Seq, fromJS } from 'immutable'; describe('flatten', () => { it('flattens sequences one level deep', () => { diff --git a/__tests__/fromJS.ts b/__tests__/fromJS.ts index 90f70228e2..d87b096c45 100644 --- a/__tests__/fromJS.ts +++ b/__tests__/fromJS.ts @@ -1,6 +1,6 @@ -import { describe, expect, it } from '@jest/globals'; import { runInNewContext } from 'vm'; -import { List, Map, Set, isCollection, fromJS } from 'immutable'; +import { describe, expect, it } from '@jest/globals'; +import { List, Map, Set, fromJS, isCollection } from 'immutable'; describe('fromJS', () => { it('convert Array to Immutable.List', () => { diff --git a/__tests__/functional/get.ts b/__tests__/functional/get.ts index 901724f1c3..baeb64f3df 100644 --- a/__tests__/functional/get.ts +++ b/__tests__/functional/get.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { get, Map, List, Range } from 'immutable'; +import { List, Map, Range, get } from 'immutable'; describe('get', () => { it('for immutable structure', () => { diff --git a/__tests__/functional/has.ts b/__tests__/functional/has.ts index 3d4f550dec..55f19b9e04 100644 --- a/__tests__/functional/has.ts +++ b/__tests__/functional/has.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { has, Map, List, Range } from 'immutable'; +import { List, Map, Range, has } from 'immutable'; describe('has', () => { it('for immutable structure', () => { diff --git a/__tests__/functional/remove.ts b/__tests__/functional/remove.ts index 10674c695b..f497d791e4 100644 --- a/__tests__/functional/remove.ts +++ b/__tests__/functional/remove.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { remove, List, Map } from 'immutable'; +import { List, Map, remove } from 'immutable'; describe('remove', () => { it('for immutable structure', () => { diff --git a/__tests__/getIn.ts b/__tests__/getIn.ts index 57074034c6..e7a5e40e2f 100644 --- a/__tests__/getIn.ts +++ b/__tests__/getIn.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { fromJS, getIn, List, Map } from 'immutable'; +import { List, Map, fromJS, getIn } from 'immutable'; describe('getIn', () => { it('deep get', () => { diff --git a/__tests__/groupBy.ts b/__tests__/groupBy.ts index bfaba132df..f8d0ca40a7 100644 --- a/__tests__/groupBy.ts +++ b/__tests__/groupBy.ts @@ -1,14 +1,14 @@ import { describe, expect, it } from '@jest/globals'; import { Collection, + List, Map, - Seq, - isOrdered, OrderedMap, - List, OrderedSet, + Seq, Set, Stack, + isOrdered, } from 'immutable'; describe('groupBy', () => { diff --git a/__tests__/hasIn.ts b/__tests__/hasIn.ts index da2baa0a89..650468f9b5 100644 --- a/__tests__/hasIn.ts +++ b/__tests__/hasIn.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from '@jest/globals'; -import { fromJS, hasIn, List, Map } from 'immutable'; +import { List, Map, fromJS, hasIn } from 'immutable'; describe('hasIn', () => { it('deep has', () => { diff --git a/__tests__/hash.ts b/__tests__/hash.ts index 168ded87f1..a7e072a418 100644 --- a/__tests__/hash.ts +++ b/__tests__/hash.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { hash } from 'immutable'; import fc from 'fast-check'; +import { hash } from 'immutable'; describe('hash', () => { it('stable hash of well known values', () => { diff --git a/__tests__/issues.ts b/__tests__/issues.ts index e283378cfc..fdf86f01fc 100644 --- a/__tests__/issues.ts +++ b/__tests__/issues.ts @@ -1,6 +1,5 @@ import { describe, expect, it } from '@jest/globals'; import { - fromJS, List, Map, OrderedMap, @@ -8,6 +7,7 @@ import { Record, Seq, Set, + fromJS, } from 'immutable'; describe('Issue #1175', () => { diff --git a/__tests__/join.ts b/__tests__/join.ts index 4d6d472835..3c275f9539 100644 --- a/__tests__/join.ts +++ b/__tests__/join.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { Seq } from 'immutable'; import fc from 'fast-check'; +import { Seq } from 'immutable'; describe('join', () => { it('string-joins sequences with commas by default', () => { diff --git a/__tests__/merge.ts b/__tests__/merge.ts index 14e934b4c0..e574c320dc 100644 --- a/__tests__/merge.ts +++ b/__tests__/merge.ts @@ -1,13 +1,13 @@ import { describe, expect, it } from '@jest/globals'; import { - fromJS, List, Map, + Record, + Set, + fromJS, merge, mergeDeep, mergeDeepWith, - Record, - Set, } from 'immutable'; describe('merge', () => { diff --git a/__tests__/minmax.ts b/__tests__/minmax.ts index 9a4c7a3c59..a18b186848 100644 --- a/__tests__/minmax.ts +++ b/__tests__/minmax.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { is, Seq } from 'immutable'; import fc from 'fast-check'; +import { Seq, is } from 'immutable'; const genHeterogeneousishArray = fc.oneof( fc.sparseArray(fc.string()), diff --git a/__tests__/partition.ts b/__tests__/partition.ts index 0a59b3d8ec..5d663d467d 100644 --- a/__tests__/partition.ts +++ b/__tests__/partition.ts @@ -1,5 +1,9 @@ import { beforeEach, describe, expect, it, jest } from '@jest/globals'; import { + Map as IMap, + Set as ISet, + List, + Seq, isAssociative, isIndexed, isKeyed, @@ -7,10 +11,6 @@ import { isMap, isSeq, isSet, - List, - Map as IMap, - Seq, - Set as ISet, } from 'immutable'; describe('partition', () => { diff --git a/__tests__/slice.ts b/__tests__/slice.ts index 07b763ff58..81e7abcaa0 100644 --- a/__tests__/slice.ts +++ b/__tests__/slice.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { List, Range, Seq } from 'immutable'; import fc from 'fast-check'; +import { List, Range, Seq } from 'immutable'; describe('slice', () => { it('slices a sequence', () => { diff --git a/__tests__/splice.ts b/__tests__/splice.ts index cb90281016..9dc1447d88 100644 --- a/__tests__/splice.ts +++ b/__tests__/splice.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { List, Range, Seq } from 'immutable'; import fc from 'fast-check'; +import { List, Range, Seq } from 'immutable'; describe('splice', () => { it('splices a sequence only removing elements', () => { diff --git a/__tests__/transformerProtocol.ts b/__tests__/transformerProtocol.ts index c3cedb3577..73aa5fe9d3 100644 --- a/__tests__/transformerProtocol.ts +++ b/__tests__/transformerProtocol.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import * as t from 'transducers-js'; import { List, Map, Set, Stack } from 'immutable'; +import * as t from 'transducers-js'; describe('Transformer Protocol', () => { it('transduces Stack without initial values', () => { diff --git a/__tests__/updateIn.ts b/__tests__/updateIn.ts index 1ca054f979..f4703eb984 100644 --- a/__tests__/updateIn.ts +++ b/__tests__/updateIn.ts @@ -1,12 +1,12 @@ import { describe, expect, it } from '@jest/globals'; import { - fromJS, List, Map, MapOf, - removeIn, Seq, Set, + fromJS, + removeIn, setIn, updateIn, } from 'immutable'; diff --git a/__tests__/zip.ts b/__tests__/zip.ts index 4487fa1b95..b211f9c5a3 100644 --- a/__tests__/zip.ts +++ b/__tests__/zip.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from '@jest/globals'; -import { List, Range, Seq } from 'immutable'; import fc from 'fast-check'; +import { List, Range, Seq } from 'immutable'; import { expectToBeDefined } from './ts-utils'; describe('zip', () => { diff --git a/eslint.config.mjs b/eslint.config.mjs index 1594b5a5ea..185abe4ea7 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,8 +1,8 @@ import pluginJs from '@eslint/js'; -import globals from 'globals'; -import pluginJest from 'eslint-plugin-jest'; import importPlugin from 'eslint-plugin-import'; +import pluginJest from 'eslint-plugin-jest'; import pluginReact from 'eslint-plugin-react'; +import globals from 'globals'; import { config as tseslintConfig, configs as tseslintConfigs, @@ -64,6 +64,14 @@ export default tseslintConfig( argsIgnorePattern: '^_', }, ], + 'sort-imports': 'off', + 'import/order': [ + 'error', + { + alphabetize: { order: 'asc' }, + warnOnUnassignedImports: true, + }, + ], }, }, diff --git a/resources/benchmark.js b/resources/benchmark.js index a2e77aa399..2e1b403e52 100644 --- a/resources/benchmark.js +++ b/resources/benchmark.js @@ -1,8 +1,8 @@ -var Benchmark = require('benchmark'); var child_process = require('child_process'); var fs = require('fs'); var path = require('path'); var vm = require('vm'); +var Benchmark = require('benchmark'); function promisify(fn) { return function () { diff --git a/resources/jestPreprocessor.js b/resources/jestPreprocessor.js index 5ea6aa5036..e4dda78bbd 100644 --- a/resources/jestPreprocessor.js +++ b/resources/jestPreprocessor.js @@ -1,5 +1,5 @@ -var typescript = require('typescript'); const makeSynchronous = require('make-synchronous'); +var typescript = require('typescript'); const TYPESCRIPT_OPTIONS = { noEmitOnError: true, diff --git a/src/Collection.js b/src/Collection.js index 650ff654ff..223a585cad 100644 --- a/src/Collection.js +++ b/src/Collection.js @@ -1,8 +1,8 @@ -import { Seq, KeyedSeq, IndexedSeq, SetSeq } from './Seq'; +import { IndexedSeq, KeyedSeq, Seq, SetSeq } from './Seq'; +import { isAssociative } from './predicates/isAssociative'; import { isCollection } from './predicates/isCollection'; -import { isKeyed } from './predicates/isKeyed'; import { isIndexed } from './predicates/isIndexed'; -import { isAssociative } from './predicates/isAssociative'; +import { isKeyed } from './predicates/isKeyed'; export class Collection { constructor(value) { diff --git a/src/CollectionImpl.js b/src/CollectionImpl.js index befb3dadc2..c20cad926c 100644 --- a/src/CollectionImpl.js +++ b/src/CollectionImpl.js @@ -1,73 +1,71 @@ import { Collection, - KeyedCollection, IndexedCollection, + KeyedCollection, SetCollection, } from './Collection'; -import { IS_COLLECTION_SYMBOL } from './predicates/isCollection'; -import { isKeyed, IS_KEYED_SYMBOL } from './predicates/isKeyed'; -import { isIndexed, IS_INDEXED_SYMBOL } from './predicates/isIndexed'; -import { isOrdered, IS_ORDERED_SYMBOL } from './predicates/isOrdered'; -import { is } from './is'; -import { - NOT_SET, - ensureSize, - wrapIndex, - returnTrue, - resolveBegin, -} from './TrieUtils'; import { hash } from './Hash'; -import { imul, smi } from './Math'; import { - Iterator, - ITERATOR_SYMBOL, + ITERATE_ENTRIES, ITERATE_KEYS, ITERATE_VALUES, - ITERATE_ENTRIES, + ITERATOR_SYMBOL, + Iterator, } from './Iterator'; - -import arrCopy from './utils/arrCopy'; -import assertNotInfinite from './utils/assertNotInfinite'; -import deepEqual from './utils/deepEqual'; -import mixin from './utils/mixin'; -import quoteString from './utils/quoteString'; - -import { toJS } from './toJS'; -import { Map } from './Map'; -import { OrderedMap } from './OrderedMap'; import { List } from './List'; -import { Set } from './Set'; -import { OrderedSet } from './OrderedSet'; -import { Stack } from './Stack'; -import { Range } from './Range'; -import { KeyedSeq, IndexedSeq, SetSeq, ArraySeq } from './Seq'; +import { Map } from './Map'; +import { imul, smi } from './Math'; import { - reify, - ToKeyedSequence, + FromEntriesSequence, ToIndexedSequence, + ToKeyedSequence, ToSetSequence, - FromEntriesSequence, + concatFactory, + countByFactory, + filterFactory, + flatMapFactory, + flattenFactory, flipFactory, + groupByFactory, + interposeFactory, mapFactory, + maxFactory, + partitionFactory, + reify, reverseFactory, - filterFactory, - countByFactory, - groupByFactory, - sliceFactory, - takeWhileFactory, skipWhileFactory, - concatFactory, - flattenFactory, - flatMapFactory, - interposeFactory, + sliceFactory, sortFactory, - maxFactory, + takeWhileFactory, zipWithFactory, - partitionFactory, } from './Operations'; +import { OrderedMap } from './OrderedMap'; +import { OrderedSet } from './OrderedSet'; +import { Range } from './Range'; +import { ArraySeq, IndexedSeq, KeyedSeq, SetSeq } from './Seq'; +import { Set } from './Set'; +import { Stack } from './Stack'; +import { + NOT_SET, + ensureSize, + resolveBegin, + returnTrue, + wrapIndex, +} from './TrieUtils'; +import { is } from './is'; import { getIn } from './methods/getIn'; import { hasIn } from './methods/hasIn'; import { toObject } from './methods/toObject'; +import { IS_COLLECTION_SYMBOL } from './predicates/isCollection'; +import { isIndexed, IS_INDEXED_SYMBOL } from './predicates/isIndexed'; +import { isKeyed, IS_KEYED_SYMBOL } from './predicates/isKeyed'; +import { isOrdered, IS_ORDERED_SYMBOL } from './predicates/isOrdered'; +import { toJS } from './toJS'; +import arrCopy from './utils/arrCopy'; +import assertNotInfinite from './utils/assertNotInfinite'; +import deepEqual from './utils/deepEqual'; +import mixin from './utils/mixin'; +import quoteString from './utils/quoteString'; export { Collection, CollectionPrototype, IndexedCollectionPrototype }; diff --git a/src/Immutable.js b/src/Immutable.js index 98945f762e..947bc323a1 100644 --- a/src/Immutable.js +++ b/src/Immutable.js @@ -1,3 +1,4 @@ +/* eslint-disable import/order */ import { Seq } from './Seq'; import { OrderedMap } from './OrderedMap'; import { List } from './List'; diff --git a/src/List.js b/src/List.js index 966b9e1b2c..2316f50923 100644 --- a/src/List.js +++ b/src/List.js @@ -1,29 +1,29 @@ +import { IndexedCollection } from './Collection'; +import { Iterator, hasIterator, iteratorDone, iteratorValue } from './Iterator'; import { DELETE, - SHIFT, - SIZE, MASK, - OwnerID, MakeRef, + OwnerID, + SHIFT, + SIZE, SetRef, - wrapIndex, - wholeSlice, resolveBegin, resolveEnd, + wholeSlice, + wrapIndex, } from './TrieUtils'; -import { IS_LIST_SYMBOL, isList } from './predicates/isList'; -import { IndexedCollection } from './Collection'; -import { hasIterator, Iterator, iteratorValue, iteratorDone } from './Iterator'; -import { setIn } from './methods/setIn'; +import { asImmutable } from './methods/asImmutable'; +import { asMutable } from './methods/asMutable'; import { deleteIn } from './methods/deleteIn'; +import { mergeDeepIn } from './methods/mergeDeepIn'; +import { mergeIn } from './methods/mergeIn'; +import { setIn } from './methods/setIn'; import { update } from './methods/update'; import { updateIn } from './methods/updateIn'; -import { mergeIn } from './methods/mergeIn'; -import { mergeDeepIn } from './methods/mergeDeepIn'; -import { withMutations } from './methods/withMutations'; -import { asMutable } from './methods/asMutable'; -import { asImmutable } from './methods/asImmutable'; import { wasAltered } from './methods/wasAltered'; +import { withMutations } from './methods/withMutations'; +import { IS_LIST_SYMBOL, isList } from './predicates/isList'; import assertNotInfinite from './utils/assertNotInfinite'; export class List extends IndexedCollection { diff --git a/src/Map.js b/src/Map.js index 672e70cac4..092411a7f2 100644 --- a/src/Map.js +++ b/src/Map.js @@ -1,36 +1,35 @@ -import { is } from './is'; import { Collection, KeyedCollection } from './Collection'; -import { IS_MAP_SYMBOL, isMap } from './predicates/isMap'; -import { isOrdered } from './predicates/isOrdered'; +import { hash } from './Hash'; +import { Iterator, iteratorDone, iteratorValue } from './Iterator'; +import { sortFactory } from './Operations'; +import { OrderedMap } from './OrderedMap'; import { DELETE, - SHIFT, - SIZE, MASK, + MakeRef, NOT_SET, OwnerID, - MakeRef, + SHIFT, + SIZE, SetRef, } from './TrieUtils'; -import { hash } from './Hash'; -import { Iterator, iteratorValue, iteratorDone } from './Iterator'; -import { sortFactory } from './Operations'; -import arrCopy from './utils/arrCopy'; -import assertNotInfinite from './utils/assertNotInfinite'; -import { setIn } from './methods/setIn'; +import { is } from './is'; +import { asImmutable } from './methods/asImmutable'; +import { asMutable } from './methods/asMutable'; import { deleteIn } from './methods/deleteIn'; -import { update } from './methods/update'; -import { updateIn } from './methods/updateIn'; import { merge, mergeWith } from './methods/merge'; import { mergeDeep, mergeDeepWith } from './methods/mergeDeep'; -import { mergeIn } from './methods/mergeIn'; import { mergeDeepIn } from './methods/mergeDeepIn'; -import { withMutations } from './methods/withMutations'; -import { asMutable } from './methods/asMutable'; -import { asImmutable } from './methods/asImmutable'; +import { mergeIn } from './methods/mergeIn'; +import { setIn } from './methods/setIn'; +import { update } from './methods/update'; +import { updateIn } from './methods/updateIn'; import { wasAltered } from './methods/wasAltered'; - -import { OrderedMap } from './OrderedMap'; +import { withMutations } from './methods/withMutations'; +import { IS_MAP_SYMBOL, isMap } from './predicates/isMap'; +import { isOrdered } from './predicates/isOrdered'; +import arrCopy from './utils/arrCopy'; +import assertNotInfinite from './utils/assertNotInfinite'; export class Map extends KeyedCollection { // @pragma Construction diff --git a/src/Operations.js b/src/Operations.js index bb3b16568d..ab8b6f916e 100644 --- a/src/Operations.js +++ b/src/Operations.js @@ -1,43 +1,42 @@ -import { - NOT_SET, - ensureSize, - wrapIndex, - wholeSlice, - resolveBegin, - resolveEnd, -} from './TrieUtils'; import { Collection, + IndexedCollection, KeyedCollection, SetCollection, - IndexedCollection, } from './Collection'; -import { isCollection } from './predicates/isCollection'; -import { IS_KEYED_SYMBOL, isKeyed } from './predicates/isKeyed'; -import { IS_INDEXED_SYMBOL, isIndexed } from './predicates/isIndexed'; -import { isOrdered, IS_ORDERED_SYMBOL } from './predicates/isOrdered'; -import { isSeq } from './predicates/isSeq'; import { - getIterator, - Iterator, - iteratorValue, - iteratorDone, + ITERATE_ENTRIES, ITERATE_KEYS, ITERATE_VALUES, - ITERATE_ENTRIES, + Iterator, + getIterator, + iteratorDone, + iteratorValue, } from './Iterator'; +import { Map } from './Map'; +import { OrderedMap } from './OrderedMap'; import { - Seq, + ArraySeq, + IndexedSeq, KeyedSeq, + Seq, SetSeq, - IndexedSeq, - keyedSeqFromValue, indexedSeqFromValue, - ArraySeq, + keyedSeqFromValue, } from './Seq'; - -import { Map } from './Map'; -import { OrderedMap } from './OrderedMap'; +import { + NOT_SET, + ensureSize, + resolveBegin, + resolveEnd, + wholeSlice, + wrapIndex, +} from './TrieUtils'; +import { isCollection } from './predicates/isCollection'; +import { IS_INDEXED_SYMBOL, isIndexed } from './predicates/isIndexed'; +import { IS_KEYED_SYMBOL, isKeyed } from './predicates/isKeyed'; +import { IS_ORDERED_SYMBOL, isOrdered } from './predicates/isOrdered'; +import { isSeq } from './predicates/isSeq'; export class ToKeyedSequence extends KeyedSeq { constructor(indexed, useKeys) { diff --git a/src/OrderedMap.js b/src/OrderedMap.js index c6867b6c83..995c218d95 100644 --- a/src/OrderedMap.js +++ b/src/OrderedMap.js @@ -1,9 +1,9 @@ import { KeyedCollection } from './Collection'; -import { IS_ORDERED_SYMBOL } from './predicates/isOrdered'; -import { isOrderedMap } from './predicates/isOrderedMap'; -import { Map, emptyMap } from './Map'; import { emptyList } from './List'; +import { Map, emptyMap } from './Map'; import { DELETE, NOT_SET, SIZE } from './TrieUtils'; +import { IS_ORDERED_SYMBOL } from './predicates/isOrdered'; +import { isOrderedMap } from './predicates/isOrderedMap'; import assertNotInfinite from './utils/assertNotInfinite'; export class OrderedMap extends Map { diff --git a/src/OrderedSet.js b/src/OrderedSet.js index 98da36416f..30c3f9cf29 100644 --- a/src/OrderedSet.js +++ b/src/OrderedSet.js @@ -1,9 +1,9 @@ -import { SetCollection, KeyedCollection } from './Collection'; -import { IS_ORDERED_SYMBOL } from './predicates/isOrdered'; -import { isOrderedSet } from './predicates/isOrderedSet'; +import { KeyedCollection, SetCollection } from './Collection'; import { IndexedCollectionPrototype } from './CollectionImpl'; -import { Set } from './Set'; import { emptyOrderedMap } from './OrderedMap'; +import { Set } from './Set'; +import { IS_ORDERED_SYMBOL } from './predicates/isOrdered'; +import { isOrderedSet } from './predicates/isOrderedSet'; import assertNotInfinite from './utils/assertNotInfinite'; export class OrderedSet extends Set { diff --git a/src/Range.js b/src/Range.js index a7ac912aed..f552961ca8 100644 --- a/src/Range.js +++ b/src/Range.js @@ -1,9 +1,9 @@ -import { wrapIndex, wholeSlice, resolveBegin, resolveEnd } from './TrieUtils'; +import { Iterator, iteratorDone, iteratorValue } from './Iterator'; import { IndexedSeq } from './Seq'; -import { Iterator, iteratorValue, iteratorDone } from './Iterator'; +import { resolveBegin, resolveEnd, wholeSlice, wrapIndex } from './TrieUtils'; -import invariant from './utils/invariant'; import deepEqual from './utils/deepEqual'; +import invariant from './utils/invariant'; /** * Returns a lazy seq of nums from start (inclusive) to end diff --git a/src/Record.js b/src/Record.js index 89100a6410..2e7f46cebf 100644 --- a/src/Record.js +++ b/src/Record.js @@ -1,27 +1,27 @@ -import { toJS } from './toJS'; import { KeyedCollection } from './Collection'; -import { keyedSeqFromValue } from './Seq'; -import { List } from './List'; -import { ITERATE_ENTRIES, ITERATOR_SYMBOL } from './Iterator'; -import { isRecord, IS_RECORD_SYMBOL } from './predicates/isRecord'; import { CollectionPrototype } from './CollectionImpl'; +import { ITERATE_ENTRIES, ITERATOR_SYMBOL } from './Iterator'; +import { List } from './List'; +import { keyedSeqFromValue } from './Seq'; import { DELETE } from './TrieUtils'; -import { getIn } from './methods/getIn'; -import { setIn } from './methods/setIn'; +import { asImmutable } from './methods/asImmutable'; +import { asMutable } from './methods/asMutable'; import { deleteIn } from './methods/deleteIn'; -import { update } from './methods/update'; -import { updateIn } from './methods/updateIn'; +import { getIn } from './methods/getIn'; import { merge, mergeWith } from './methods/merge'; import { mergeDeep, mergeDeepWith } from './methods/mergeDeep'; -import { mergeIn } from './methods/mergeIn'; import { mergeDeepIn } from './methods/mergeDeepIn'; +import { mergeIn } from './methods/mergeIn'; +import { setIn } from './methods/setIn'; +import { update } from './methods/update'; +import { updateIn } from './methods/updateIn'; import { withMutations } from './methods/withMutations'; -import { asMutable } from './methods/asMutable'; -import { asImmutable } from './methods/asImmutable'; +import { isImmutable } from './predicates/isImmutable'; +import { IS_RECORD_SYMBOL, isRecord } from './predicates/isRecord'; +import { toJS } from './toJS'; import invariant from './utils/invariant'; import quoteString from './utils/quoteString'; -import { isImmutable } from './predicates/isImmutable'; function throwOnInvalidDefaultValues(defaultValues) { if (isRecord(defaultValues)) { diff --git a/src/Repeat.js b/src/Repeat.js index 0fb106156c..7ded1f8660 100644 --- a/src/Repeat.js +++ b/src/Repeat.js @@ -1,7 +1,7 @@ -import { wholeSlice, resolveBegin, resolveEnd } from './TrieUtils'; +import { Iterator, iteratorDone, iteratorValue } from './Iterator'; import { IndexedSeq } from './Seq'; +import { resolveBegin, resolveEnd, wholeSlice } from './TrieUtils'; import { is } from './is'; -import { Iterator, iteratorValue, iteratorDone } from './Iterator'; import deepEqual from './utils/deepEqual'; diff --git a/src/Seq.js b/src/Seq.js index fd2a1dea58..e6e2589c8d 100644 --- a/src/Seq.js +++ b/src/Seq.js @@ -1,22 +1,22 @@ -import { wrapIndex } from './TrieUtils'; import { Collection } from './Collection'; -import { IS_SEQ_SYMBOL, isSeq } from './predicates/isSeq'; -import { isImmutable } from './predicates/isImmutable'; -import { isCollection } from './predicates/isCollection'; -import { isKeyed } from './predicates/isKeyed'; -import { isAssociative } from './predicates/isAssociative'; -import { isRecord } from './predicates/isRecord'; -import { IS_ORDERED_SYMBOL } from './predicates/isOrdered'; import { Iterator, - iteratorValue, - iteratorDone, - hasIterator, - isIterator, getIterator, + hasIterator, isEntriesIterable, + isIterator, isKeysIterable, + iteratorDone, + iteratorValue, } from './Iterator'; +import { wrapIndex } from './TrieUtils'; +import { isAssociative } from './predicates/isAssociative'; +import { isCollection } from './predicates/isCollection'; +import { isImmutable } from './predicates/isImmutable'; +import { isKeyed } from './predicates/isKeyed'; +import { IS_ORDERED_SYMBOL } from './predicates/isOrdered'; +import { isRecord } from './predicates/isRecord'; +import { IS_SEQ_SYMBOL, isSeq } from './predicates/isSeq'; import hasOwnProperty from './utils/hasOwnProperty'; import isArrayLike from './utils/isArrayLike'; diff --git a/src/Set.js b/src/Set.js index cc42bc10f7..3e6c41158a 100644 --- a/src/Set.js +++ b/src/Set.js @@ -1,15 +1,14 @@ -import { Collection, SetCollection, KeyedCollection } from './Collection'; -import { isOrdered } from './predicates/isOrdered'; -import { IS_SET_SYMBOL, isSet } from './predicates/isSet'; +import { Collection, KeyedCollection, SetCollection } from './Collection'; import { emptyMap } from './Map'; -import { DELETE } from './TrieUtils'; import { sortFactory } from './Operations'; -import assertNotInfinite from './utils/assertNotInfinite'; +import { OrderedSet } from './OrderedSet'; +import { DELETE } from './TrieUtils'; import { asImmutable } from './methods/asImmutable'; import { asMutable } from './methods/asMutable'; import { withMutations } from './methods/withMutations'; - -import { OrderedSet } from './OrderedSet'; +import { isOrdered } from './predicates/isOrdered'; +import { IS_SET_SYMBOL, isSet } from './predicates/isSet'; +import assertNotInfinite from './utils/assertNotInfinite'; export class Set extends SetCollection { // @pragma Construction diff --git a/src/Stack.js b/src/Stack.js index 32414fa3a0..10f1aca860 100644 --- a/src/Stack.js +++ b/src/Stack.js @@ -1,13 +1,13 @@ -import { wholeSlice, resolveBegin, resolveEnd, wrapIndex } from './TrieUtils'; import { IndexedCollection } from './Collection'; +import { Iterator, iteratorDone, iteratorValue } from './Iterator'; import { ArraySeq } from './Seq'; -import { Iterator, iteratorValue, iteratorDone } from './Iterator'; -import { IS_STACK_SYMBOL, isStack } from './predicates/isStack'; -import assertNotInfinite from './utils/assertNotInfinite'; +import { resolveBegin, resolveEnd, wholeSlice, wrapIndex } from './TrieUtils'; import { asImmutable } from './methods/asImmutable'; import { asMutable } from './methods/asMutable'; import { wasAltered } from './methods/wasAltered'; import { withMutations } from './methods/withMutations'; +import { IS_STACK_SYMBOL, isStack } from './predicates/isStack'; +import assertNotInfinite from './utils/assertNotInfinite'; export class Stack extends IndexedCollection { // @pragma Construction diff --git a/src/fromJS.js b/src/fromJS.js index 7586c12a58..5d14a7aa61 100644 --- a/src/fromJS.js +++ b/src/fromJS.js @@ -1,5 +1,5 @@ -import { Seq } from './Seq'; import { hasIterator } from './Iterator'; +import { Seq } from './Seq'; import { isImmutable } from './predicates/isImmutable'; import { isIndexed } from './predicates/isIndexed'; import { isKeyed } from './predicates/isKeyed'; diff --git a/src/functional/getIn.ts b/src/functional/getIn.ts index 080e07238a..bcb8008b13 100644 --- a/src/functional/getIn.ts +++ b/src/functional/getIn.ts @@ -1,7 +1,7 @@ -import coerceKeyPath from '../utils/coerceKeyPath'; +import type { KeyPath } from '../../type-definitions/immutable'; import { NOT_SET } from '../TrieUtils'; +import coerceKeyPath from '../utils/coerceKeyPath'; import { get } from './get'; -import type { KeyPath } from '../../type-definitions/immutable'; type GetType = typeof get; type GetTypeParameters = Parameters; diff --git a/src/functional/hasIn.ts b/src/functional/hasIn.ts index 30e6a0e781..d6c780ede6 100644 --- a/src/functional/hasIn.ts +++ b/src/functional/hasIn.ts @@ -1,5 +1,5 @@ -import { getIn } from './getIn'; import { NOT_SET } from '../TrieUtils'; +import { getIn } from './getIn'; type GetInParameters = Parameters; diff --git a/src/functional/merge.js b/src/functional/merge.js index b2d231a0c9..fdc9c9e1e6 100644 --- a/src/functional/merge.js +++ b/src/functional/merge.js @@ -1,8 +1,8 @@ +import { IndexedCollection, KeyedCollection } from '../Collection'; +import { Seq } from '../Seq'; import { isImmutable } from '../predicates/isImmutable'; import { isIndexed } from '../predicates/isIndexed'; import { isKeyed } from '../predicates/isKeyed'; -import { IndexedCollection, KeyedCollection } from '../Collection'; -import { Seq } from '../Seq'; import hasOwnProperty from '../utils/hasOwnProperty'; import isDataStructure from '../utils/isDataStructure'; import shallowCopy from '../utils/shallowCopy'; diff --git a/src/functional/removeIn.ts b/src/functional/removeIn.ts index 70155a359a..5e8a192d03 100644 --- a/src/functional/removeIn.ts +++ b/src/functional/removeIn.ts @@ -1,6 +1,6 @@ -import { updateIn, type PossibleCollection } from './updateIn'; -import { NOT_SET } from '../TrieUtils'; import type { KeyPath } from '../../type-definitions/immutable'; +import { NOT_SET } from '../TrieUtils'; +import { type PossibleCollection, updateIn } from './updateIn'; /** * Returns a copy of the collection with the value at the key path removed. diff --git a/src/functional/setIn.ts b/src/functional/setIn.ts index f1590a03f1..00dcc89a4e 100644 --- a/src/functional/setIn.ts +++ b/src/functional/setIn.ts @@ -1,6 +1,6 @@ -import { updateIn, type PossibleCollection } from './updateIn'; -import { NOT_SET } from '../TrieUtils'; import type { KeyPath } from '../../type-definitions/immutable'; +import { NOT_SET } from '../TrieUtils'; +import { type PossibleCollection, updateIn } from './updateIn'; /** * Returns a copy of the collection with the value at the key path set to the diff --git a/src/functional/update.ts b/src/functional/update.ts index b073b5a1c2..07dbd8e055 100644 --- a/src/functional/update.ts +++ b/src/functional/update.ts @@ -1,5 +1,5 @@ import type { Collection, Record } from '../../type-definitions/immutable'; -import { updateIn, type PossibleCollection } from './updateIn'; +import { type PossibleCollection, updateIn } from './updateIn'; type UpdaterFunction = (value: V | undefined) => V | undefined; type UpdaterFunctionWithNSV = (value: V | NSV) => V; diff --git a/src/functional/updateIn.ts b/src/functional/updateIn.ts index 8c3cf1c1cc..4c0120331c 100644 --- a/src/functional/updateIn.ts +++ b/src/functional/updateIn.ts @@ -1,18 +1,18 @@ +import type { + Collection, + KeyPath, + Record, + RetrievePath, +} from '../../type-definitions/immutable'; +import { emptyMap } from '../Map'; +import { NOT_SET } from '../TrieUtils'; import { isImmutable } from '../predicates/isImmutable'; import coerceKeyPath from '../utils/coerceKeyPath'; import isDataStructure from '../utils/isDataStructure'; import quoteString from '../utils/quoteString'; -import { NOT_SET } from '../TrieUtils'; -import { emptyMap } from '../Map'; import { get } from './get'; import { remove } from './remove'; import { set } from './set'; -import type { - Collection, - KeyPath, - Record, - RetrievePath, -} from '../../type-definitions/immutable'; /** * Returns a copy of the collection with the value at key path set to the diff --git a/src/methods/mergeDeepIn.js b/src/methods/mergeDeepIn.js index 119369b7ba..420543832f 100644 --- a/src/methods/mergeDeepIn.js +++ b/src/methods/mergeDeepIn.js @@ -1,6 +1,6 @@ +import { emptyMap } from '../Map'; import { mergeDeepWithSources } from '../functional/merge'; import { updateIn } from '../functional/updateIn'; -import { emptyMap } from '../Map'; export function mergeDeepIn(keyPath, ...iters) { return updateIn(this, keyPath, emptyMap(), (m) => diff --git a/src/methods/mergeIn.js b/src/methods/mergeIn.js index 9af239c4d0..d7d1a2e4ec 100644 --- a/src/methods/mergeIn.js +++ b/src/methods/mergeIn.js @@ -1,6 +1,6 @@ +import { emptyMap } from '../Map'; import { mergeWithSources } from '../functional/merge'; import { updateIn } from '../functional/updateIn'; -import { emptyMap } from '../Map'; export function mergeIn(keyPath, ...iters) { return updateIn(this, keyPath, emptyMap(), (m) => mergeWithSources(m, iters)); diff --git a/src/predicates/isAssociative.ts b/src/predicates/isAssociative.ts index e174616f7b..5ee2da3963 100644 --- a/src/predicates/isAssociative.ts +++ b/src/predicates/isAssociative.ts @@ -1,6 +1,6 @@ -import { isKeyed } from './isKeyed'; -import { isIndexed } from './isIndexed'; import type { Collection } from '../../type-definitions/immutable'; +import { isIndexed } from './isIndexed'; +import { isKeyed } from './isKeyed'; /** * True if `maybeAssociative` is either a Keyed or Indexed Collection. diff --git a/src/predicates/isOrderedSet.ts b/src/predicates/isOrderedSet.ts index 8ac58beb96..cd26eaa6d5 100644 --- a/src/predicates/isOrderedSet.ts +++ b/src/predicates/isOrderedSet.ts @@ -1,6 +1,6 @@ -import { isSet } from './isSet'; -import { isOrdered } from './isOrdered'; import type { OrderedSet } from '../../type-definitions/immutable'; +import { isOrdered } from './isOrdered'; +import { isSet } from './isSet'; /** * True if `maybeOrderedSet` is an OrderedSet. diff --git a/src/utils/deepEqual.ts b/src/utils/deepEqual.ts index c76d62c840..f7f3b1e02c 100644 --- a/src/utils/deepEqual.ts +++ b/src/utils/deepEqual.ts @@ -1,13 +1,13 @@ -import { is } from '../is'; +import type { Collection } from '../../type-definitions/immutable'; +import type { Range } from '../Range'; +import type { Repeat } from '../Repeat'; import { NOT_SET } from '../TrieUtils'; +import { is } from '../is'; +import { isAssociative } from '../predicates/isAssociative'; import { isCollection } from '../predicates/isCollection'; -import { isKeyed } from '../predicates/isKeyed'; import { isIndexed } from '../predicates/isIndexed'; -import { isAssociative } from '../predicates/isAssociative'; +import { isKeyed } from '../predicates/isKeyed'; import { isOrdered } from '../predicates/isOrdered'; -import type { Collection } from '../../type-definitions/immutable'; -import type { Repeat } from '../Repeat'; -import type { Range } from '../Range'; export default function deepEqual( a: Range | Repeat | Collection, diff --git a/type-definitions/ts-tests/covariance.ts b/type-definitions/ts-tests/covariance.ts index b4c01e50e9..2da88f4270 100644 --- a/type-definitions/ts-tests/covariance.ts +++ b/type-definitions/ts-tests/covariance.ts @@ -1,4 +1,3 @@ -import { expect, test } from 'tstyche'; import { List, Map, @@ -8,6 +7,7 @@ import { Set, Stack, } from 'immutable'; +import { expect, test } from 'tstyche'; class A { x: number; diff --git a/type-definitions/ts-tests/deepCopy.ts b/type-definitions/ts-tests/deepCopy.ts index 25e262fd81..6d6922c104 100644 --- a/type-definitions/ts-tests/deepCopy.ts +++ b/type-definitions/ts-tests/deepCopy.ts @@ -1,5 +1,5 @@ +import { Collection, DeepCopy, List, Map, Record, Seq, Set } from 'immutable'; import { describe, expect, test } from 'tstyche'; -import { List, Map, Record, Set, Seq, DeepCopy, Collection } from 'immutable'; describe('DeepCopy', () => { test('basic types', () => { diff --git a/type-definitions/ts-tests/empty.ts b/type-definitions/ts-tests/empty.ts index e9425c6eb5..267942b69e 100644 --- a/type-definitions/ts-tests/empty.ts +++ b/type-definitions/ts-tests/empty.ts @@ -1,5 +1,5 @@ +import { Collection, Seq } from 'immutable'; import { expect, test } from 'tstyche'; -import { Seq, Collection } from 'immutable'; test('typed empty Seq', () => { expect(Seq()).type.toBe>(); diff --git a/type-definitions/ts-tests/es6-collections.ts b/type-definitions/ts-tests/es6-collections.ts index 790bc3cf2b..54ca9ae3be 100644 --- a/type-definitions/ts-tests/es6-collections.ts +++ b/type-definitions/ts-tests/es6-collections.ts @@ -1,5 +1,5 @@ -import { expect, test } from 'tstyche'; import { Map as ImmutableMap, Set as ImmutableSet } from 'immutable'; +import { expect, test } from 'tstyche'; test('immutable.js collections', () => { const mapImmutable: ImmutableMap = ImmutableMap< diff --git a/type-definitions/ts-tests/exports.ts b/type-definitions/ts-tests/exports.ts index 39f9d2fe49..4ae15f9d7a 100644 --- a/type-definitions/ts-tests/exports.ts +++ b/type-definitions/ts-tests/exports.ts @@ -1,8 +1,8 @@ // Some tests look like they are repeated in order to avoid false positives. -import { expect, test } from 'tstyche'; import * as Immutable from 'immutable'; import { + Collection, List, Map, OrderedMap, @@ -12,8 +12,8 @@ import { Seq, Set, Stack, - Collection, } from 'immutable'; +import { expect, test } from 'tstyche'; test('named imports', () => { expect(List).type.toBe(); diff --git a/type-definitions/ts-tests/from-js.ts b/type-definitions/ts-tests/from-js.ts index f04a1e78f8..48a3b1be38 100644 --- a/type-definitions/ts-tests/from-js.ts +++ b/type-definitions/ts-tests/from-js.ts @@ -1,5 +1,5 @@ +import { Collection, List, Map, MapOf, fromJS } from 'immutable'; import { expect, test } from 'tstyche'; -import { fromJS, Collection, List, Map, MapOf } from 'immutable'; test('fromJS', () => { // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/type-definitions/ts-tests/functional.ts b/type-definitions/ts-tests/functional.ts index 01a8636c50..245945e145 100644 --- a/type-definitions/ts-tests/functional.ts +++ b/type-definitions/ts-tests/functional.ts @@ -1,16 +1,16 @@ -import { expect, test } from 'tstyche'; import { + List, + Map, + MapOf, get, getIn, has, hasIn, - set, remove, + set, update, - Map, - List, - MapOf, } from 'immutable'; +import { expect, test } from 'tstyche'; test('get', () => { expect(get([1, 2, 3], 0)).type.toBe(); diff --git a/type-definitions/ts-tests/groupBy.ts b/type-definitions/ts-tests/groupBy.ts index 141bfc2912..f959407a83 100644 --- a/type-definitions/ts-tests/groupBy.ts +++ b/type-definitions/ts-tests/groupBy.ts @@ -1,15 +1,15 @@ -import { expect, test } from 'tstyche'; import { Collection, List, Map, + MapOf, OrderedMap, - Set, OrderedSet, Seq, + Set, Stack, - MapOf, } from 'immutable'; +import { expect, test } from 'tstyche'; test('groupBy', () => { expect(Collection(['a', 'b', 'c', 'a']).groupBy((v) => v)).type.toBe< diff --git a/type-definitions/ts-tests/list.ts b/type-definitions/ts-tests/list.ts index 2b86dca369..c05f535a7e 100644 --- a/type-definitions/ts-tests/list.ts +++ b/type-definitions/ts-tests/list.ts @@ -1,15 +1,15 @@ -import { expect, pick, test } from 'tstyche'; import { List, get, - set, + merge, remove, - update, - setIn, removeIn, + set, + setIn, + update, updateIn, - merge, } from 'immutable'; +import { expect, pick, test } from 'tstyche'; test('#constructor', () => { expect(List()).type.toBe>(); diff --git a/type-definitions/ts-tests/map.ts b/type-definitions/ts-tests/map.ts index 59f39eb36c..d7fd0ae3f4 100644 --- a/type-definitions/ts-tests/map.ts +++ b/type-definitions/ts-tests/map.ts @@ -1,5 +1,5 @@ +import { List, Map, MapOf, OrderedMap } from 'immutable'; import { expect, pick, test } from 'tstyche'; -import { Map, List, MapOf, OrderedMap } from 'immutable'; test('#constructor', () => { expect(Map()).type.toBe>(); diff --git a/type-definitions/ts-tests/ordered-map.ts b/type-definitions/ts-tests/ordered-map.ts index 56341ff76e..3d8b266a32 100644 --- a/type-definitions/ts-tests/ordered-map.ts +++ b/type-definitions/ts-tests/ordered-map.ts @@ -1,5 +1,5 @@ +import { List, OrderedMap } from 'immutable'; import { expect, pick, test } from 'tstyche'; -import { OrderedMap, List } from 'immutable'; test('#constructor', () => { expect(OrderedMap()).type.toBe>(); diff --git a/type-definitions/ts-tests/ordered-set.ts b/type-definitions/ts-tests/ordered-set.ts index b753c09a53..9171f645c3 100644 --- a/type-definitions/ts-tests/ordered-set.ts +++ b/type-definitions/ts-tests/ordered-set.ts @@ -1,5 +1,5 @@ +import { Collection, Map, OrderedSet } from 'immutable'; import { expect, pick, test } from 'tstyche'; -import { Collection, OrderedSet, Map } from 'immutable'; test('#constructor', () => { expect(OrderedSet()).type.toBe>(); diff --git a/type-definitions/ts-tests/partition.ts b/type-definitions/ts-tests/partition.ts index a9d4871e94..b79c0f5c50 100644 --- a/type-definitions/ts-tests/partition.ts +++ b/type-definitions/ts-tests/partition.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/no-unused-expressions */ -import { expect, test } from 'tstyche'; import { Collection, List, @@ -9,6 +8,7 @@ import { Seq, Set, } from 'immutable'; +import { expect, test } from 'tstyche'; abstract class A {} class B extends A {} diff --git a/type-definitions/ts-tests/range.ts b/type-definitions/ts-tests/range.ts index 79db184113..108113b118 100644 --- a/type-definitions/ts-tests/range.ts +++ b/type-definitions/ts-tests/range.ts @@ -1,5 +1,5 @@ -import { expect, test } from 'tstyche'; import { Range, Seq } from 'immutable'; +import { expect, test } from 'tstyche'; test('#constructor', () => { expect(Range(0, 0, 1)).type.toBe>(); diff --git a/type-definitions/ts-tests/record.ts b/type-definitions/ts-tests/record.ts index bb2db4ee3a..56ee19ef24 100644 --- a/type-definitions/ts-tests/record.ts +++ b/type-definitions/ts-tests/record.ts @@ -1,5 +1,5 @@ -import { expect, pick, test } from 'tstyche'; import { List, Map, MapOf, Record, RecordOf, Set } from 'immutable'; +import { expect, pick, test } from 'tstyche'; test('Factory', () => { const PointXY = Record({ x: 0, y: 0 }); diff --git a/type-definitions/ts-tests/repeat.ts b/type-definitions/ts-tests/repeat.ts index 9506b753f1..6a19619f62 100644 --- a/type-definitions/ts-tests/repeat.ts +++ b/type-definitions/ts-tests/repeat.ts @@ -1,5 +1,5 @@ -import { expect, test } from 'tstyche'; import { Repeat, Seq } from 'immutable'; +import { expect, test } from 'tstyche'; test('#constructor', () => { expect(Repeat(0, 0)).type.toBe>(); diff --git a/type-definitions/ts-tests/seq.ts b/type-definitions/ts-tests/seq.ts index d967acaade..b8254414e7 100644 --- a/type-definitions/ts-tests/seq.ts +++ b/type-definitions/ts-tests/seq.ts @@ -1,5 +1,5 @@ -import { expect, pick, test } from 'tstyche'; import { Seq } from 'immutable'; +import { expect, pick, test } from 'tstyche'; test('#constructor', () => { expect(Seq([1, 2, 3])).type.toBe>(); diff --git a/type-definitions/ts-tests/set.ts b/type-definitions/ts-tests/set.ts index 9149417986..88d9cabbb8 100644 --- a/type-definitions/ts-tests/set.ts +++ b/type-definitions/ts-tests/set.ts @@ -1,5 +1,5 @@ +import { Collection, Map, OrderedSet, Set } from 'immutable'; import { expect, pick, test } from 'tstyche'; -import { Set, Map, Collection, OrderedSet } from 'immutable'; test('#constructor', () => { expect(Set()).type.toBe>(); diff --git a/type-definitions/ts-tests/stack.ts b/type-definitions/ts-tests/stack.ts index d261b1152a..7315ae55d6 100644 --- a/type-definitions/ts-tests/stack.ts +++ b/type-definitions/ts-tests/stack.ts @@ -1,5 +1,5 @@ -import { expect, pick, test } from 'tstyche'; import { Collection, Stack } from 'immutable'; +import { expect, pick, test } from 'tstyche'; test('#constructor', () => { expect(Stack()).type.toBe>(); diff --git a/website/src/Header.tsx b/website/src/Header.tsx index 5625754daa..f89780b614 100644 --- a/website/src/Header.tsx +++ b/website/src/Header.tsx @@ -1,10 +1,9 @@ 'use client'; -import { useState, useEffect } from 'react'; import Link from 'next/link'; - -import { SVGSet } from './SVGSet'; +import { useEffect, useState } from 'react'; import { Logo } from './Logo'; +import { SVGSet } from './SVGSet'; import { StarBtn } from './StarBtn'; import { isMobile } from './isMobile'; diff --git a/website/src/MarkdownContent.tsx b/website/src/MarkdownContent.tsx index 7f90fca400..445ea8a48a 100644 --- a/website/src/MarkdownContent.tsx +++ b/website/src/MarkdownContent.tsx @@ -1,7 +1,7 @@ 'use client'; -import { memo, MouseEvent } from 'react'; import { useRouter } from 'next/navigation'; +import { MouseEvent, memo } from 'react'; type Props = { contents: string; diff --git a/website/src/app/WorkerContext.tsx b/website/src/app/WorkerContext.tsx index 0404d46c8b..b41dbc3cfd 100644 --- a/website/src/app/WorkerContext.tsx +++ b/website/src/app/WorkerContext.tsx @@ -1,14 +1,14 @@ 'use client'; -import { Element, JsonMLElementList } from '../worker/jsonml-types'; import React, { - createContext, JSX, + createContext, useCallback, useEffect, useMemo, useRef, useState, } from 'react'; +import { Element, JsonMLElementList } from '../worker/jsonml-types'; type Props = { children: React.ReactNode; diff --git a/website/src/app/docs/[version]/Defs.tsx b/website/src/app/docs/[version]/Defs.tsx index 5b3a3e9a34..db74eb9287 100644 --- a/website/src/app/docs/[version]/Defs.tsx +++ b/website/src/app/docs/[version]/Defs.tsx @@ -1,13 +1,13 @@ +import Link from 'next/link'; import type { FocusEvent, JSX, MouseEvent, ReactNode } from 'react'; import { Fragment, useCallback, useState } from 'react'; -import Link from 'next/link'; import { - TypeKind, - Type, + CallParam, + CallSignature, InterfaceDefinition, ObjectMember, - CallSignature, - CallParam, + Type, + TypeKind, } from './TypeDefs'; export function InterfaceDef({ diff --git a/website/src/app/docs/[version]/MemberDoc.tsx b/website/src/app/docs/[version]/MemberDoc.tsx index e2706a7db5..7d4d2d1884 100644 --- a/website/src/app/docs/[version]/MemberDoc.tsx +++ b/website/src/app/docs/[version]/MemberDoc.tsx @@ -1,7 +1,7 @@ import Link from 'next/link'; import { Fragment } from 'react'; -import { CallSigDef, MemberDef } from './Defs'; import { MarkdownContent } from '../../../MarkdownContent'; +import { CallSigDef, MemberDef } from './Defs'; import type { MemberDefinition } from './TypeDefs'; export function MemberDoc({ member }: { member: MemberDefinition }) { diff --git a/website/src/app/docs/[version]/SidebarV4.tsx b/website/src/app/docs/[version]/SidebarV4.tsx index ec793dc62f..18b3906077 100644 --- a/website/src/app/docs/[version]/SidebarV4.tsx +++ b/website/src/app/docs/[version]/SidebarV4.tsx @@ -2,11 +2,11 @@ import Link from 'next/link'; import { Fragment, useEffect, useState } from 'react'; -import type { TypeDefinition } from './TypeDefs'; -import { collectMemberGroups } from './collectMemberGroups'; import { ArrowDown } from '../../../ArrowDown'; -import { SIDEBAR_LINKS } from '../currentVersion'; import { SidebarLinks } from '../../../sidebar'; +import { SIDEBAR_LINKS } from '../currentVersion'; +import type { TypeDefinition } from './TypeDefs'; +import { collectMemberGroups } from './collectMemberGroups'; function Links({ links, diff --git a/website/src/app/docs/[version]/[type]/TypeDocumentation.tsx b/website/src/app/docs/[version]/[type]/TypeDocumentation.tsx index e6a04fe57c..9b51284370 100644 --- a/website/src/app/docs/[version]/[type]/TypeDocumentation.tsx +++ b/website/src/app/docs/[version]/[type]/TypeDocumentation.tsx @@ -2,14 +2,14 @@ import { Fragment, useReducer } from 'react'; -import { InterfaceDef, CallSigDef } from '../Defs'; +import { DocSearch } from '../../../../DocSearch'; +import { MarkdownContent } from '../../../../MarkdownContent'; import { SidebarLinks } from '../../../../sidebar'; -import { SideBarV4 } from '../SidebarV4'; +import { CallSigDef, InterfaceDef } from '../Defs'; import { MemberDoc } from '../MemberDoc'; -import { MarkdownContent } from '../../../../MarkdownContent'; +import { SideBarV4 } from '../SidebarV4'; +import type { MemberDefinition, TypeDefinition } from '../TypeDefs'; import { collectMemberGroups } from '../collectMemberGroups'; -import type { TypeDefinition, MemberDefinition } from '../TypeDefs'; -import { DocSearch } from '../../../../DocSearch'; const typeDefURL = 'https://github.com/immutable-js/immutable-js/blob/main/type-definitions/immutable.d.ts'; diff --git a/website/src/app/docs/[version]/[type]/page.tsx b/website/src/app/docs/[version]/[type]/page.tsx index 83d1c1cbdb..dd7eb0c4ab 100644 --- a/website/src/app/docs/[version]/[type]/page.tsx +++ b/website/src/app/docs/[version]/[type]/page.tsx @@ -1,9 +1,9 @@ +import { getVersionFromGitTag } from '../../../../static/getVersions'; +import { VERSION } from '../../currentVersion'; import { getSidebarLinks } from '../getSidebarLinks'; import { getTypeDefs } from '../getTypeDefs'; -import { getVersionFromGitTag } from '../../../../static/getVersions'; -import { TypeDocumentation } from './TypeDocumentation'; import { getVersionFromParams } from '../getVersionFromParams'; -import { VERSION } from '../../currentVersion'; +import { TypeDocumentation } from './TypeDocumentation'; export async function generateStaticParams() { return getVersionFromGitTag() diff --git a/website/src/app/docs/[version]/getSidebarLinks.tsx b/website/src/app/docs/[version]/getSidebarLinks.tsx index d564f81a89..1e9792d1f9 100644 --- a/website/src/app/docs/[version]/getSidebarLinks.tsx +++ b/website/src/app/docs/[version]/getSidebarLinks.tsx @@ -1,5 +1,5 @@ -import type { TypeDefs } from './TypeDefs'; import { SidebarLinks } from '../../../sidebar'; +import type { TypeDefs } from './TypeDefs'; export function getSidebarLinks(defs: TypeDefs): SidebarLinks { return Object.values(defs.types).map(({ label, url }) => ({ label, url })); diff --git a/website/src/app/docs/[version]/getTypeDefs.ts b/website/src/app/docs/[version]/getTypeDefs.ts index d4653aa138..28616dcb67 100644 --- a/website/src/app/docs/[version]/getTypeDefs.ts +++ b/website/src/app/docs/[version]/getTypeDefs.ts @@ -2,20 +2,20 @@ import { execSync } from 'child_process'; import { readFileSync } from 'fs'; import ts from 'typescript'; +import { MarkdownContext, markdown } from '../../../static/markdown'; +import { stripUndefineds } from '../../../static/stripUndefineds'; import { CallParam, CallSignature, - TypeDefinition, InterfaceDefinition, + MemberDefinition, NamedType, Type, + TypeDefinition, TypeDefs, TypeDoc, TypeKind, - MemberDefinition, } from './TypeDefs'; -import { markdown, MarkdownContext } from '../../../static/markdown'; -import { stripUndefineds } from '../../../static/stripUndefineds'; const generatedTypeDefs = new Map(); export function getTypeDefs(version: string) { diff --git a/website/src/app/docs/[version]/page.tsx b/website/src/app/docs/[version]/page.tsx index 09c9613cfd..efabb61a00 100644 --- a/website/src/app/docs/[version]/page.tsx +++ b/website/src/app/docs/[version]/page.tsx @@ -1,12 +1,12 @@ import { Metadata } from 'next'; +import { DocSearch } from '../../../DocSearch'; import { getVersionFromGitTag } from '../../../static/getVersions'; -import { getTypeDefs } from './getTypeDefs'; +import { VERSION } from '../currentVersion'; import { DocOverview, getOverviewData } from './DocOverview'; -import { DocSearch } from '../../../DocSearch'; import { SideBarV4 } from './SidebarV4'; import { getSidebarLinks } from './getSidebarLinks'; +import { getTypeDefs } from './getTypeDefs'; import { getVersionFromParams } from './getVersionFromParams'; -import { VERSION } from '../currentVersion'; export async function generateStaticParams() { return [...getVersionFromGitTag().map((version) => ({ version }))]; diff --git a/website/src/app/docs/page.tsx b/website/src/app/docs/page.tsx index 8f2eed2439..eaf93d03ab 100644 --- a/website/src/app/docs/page.tsx +++ b/website/src/app/docs/page.tsx @@ -1,8 +1,8 @@ import { Metadata } from 'next'; +import { DocHeader } from '../../DocHeader'; +import { ImmutableConsole } from '../../ImmutableConsole'; import { getVersions } from '../../static/getVersions'; import RedirectExistingDocs from './redirect-client'; -import { ImmutableConsole } from '../../ImmutableConsole'; -import { DocHeader } from '../../DocHeader'; export const metadata: Metadata = { title: 'Documentation — Immutable.js', diff --git a/website/src/app/docs/v5/[type]/page.tsx b/website/src/app/docs/v5/[type]/page.tsx index 1a5f99276d..a154f49ae8 100644 --- a/website/src/app/docs/v5/[type]/page.tsx +++ b/website/src/app/docs/v5/[type]/page.tsx @@ -1,6 +1,6 @@ -import { getDocFiles, getDocDetail } from '../../../../utils/doc'; -import { Sidebar, FocusType } from '../../../../sidebar'; import { DocSearch } from '../../../../DocSearch'; +import { FocusType, Sidebar } from '../../../../sidebar'; +import { getDocDetail, getDocFiles } from '../../../../utils/doc'; export async function generateStaticParams() { const docFiles = getDocFiles(); diff --git a/website/src/app/docs/v5/page.tsx b/website/src/app/docs/v5/page.tsx index 9185f93551..853588a372 100644 --- a/website/src/app/docs/v5/page.tsx +++ b/website/src/app/docs/v5/page.tsx @@ -1,8 +1,8 @@ import { Metadata } from 'next'; import Link from 'next/link'; -import { SIDEBAR_LINKS, VERSION } from '../currentVersion'; -import { Sidebar } from '../../../sidebar'; import { DocSearch } from '../../../DocSearch'; +import { Sidebar } from '../../../sidebar'; +import { SIDEBAR_LINKS, VERSION } from '../currentVersion'; export async function generateMetadata(): Promise { return { diff --git a/website/src/app/page.tsx b/website/src/app/page.tsx index 259a2a2cbf..97657ffcd8 100644 --- a/website/src/app/page.tsx +++ b/website/src/app/page.tsx @@ -1,10 +1,10 @@ import fs from 'fs'; +import { Metadata } from 'next'; import { Header } from '../Header'; import { ImmutableConsole } from '../ImmutableConsole'; import { MarkdownContent } from '../MarkdownContent'; import { genMarkdownDoc } from '../static/genMarkdownDoc'; import { getVersions } from '../static/getVersions'; -import { Metadata } from 'next'; export async function generateMetadata(): Promise { return { diff --git a/website/src/app/play/Playground.tsx b/website/src/app/play/Playground.tsx index 8a6f346d7f..ffcabbef06 100644 --- a/website/src/app/play/Playground.tsx +++ b/website/src/app/play/Playground.tsx @@ -1,7 +1,7 @@ 'use client'; import Repl from '../../repl/Repl'; -import { stringToBytes, bytesToString } from './encoder'; +import { bytesToString, stringToBytes } from './encoder'; export default function Playground() { { diff --git a/website/src/app/play/page.tsx b/website/src/app/play/page.tsx index 0e125e722f..417a246b31 100644 --- a/website/src/app/play/page.tsx +++ b/website/src/app/play/page.tsx @@ -1,8 +1,8 @@ import { Metadata } from 'next'; import { DocSearch } from '../../DocSearch'; import { Sidebar } from '../../sidebar'; -import Playground from './Playground'; import { VERSION } from '../docs/currentVersion'; +import Playground from './Playground'; export async function generateMetadata(): Promise { return { diff --git a/website/src/repl/Editor.tsx b/website/src/repl/Editor.tsx index cc9f0681f5..b1976e8544 100644 --- a/website/src/repl/Editor.tsx +++ b/website/src/repl/Editor.tsx @@ -1,11 +1,10 @@ -import { useEffect, useRef, type JSX } from 'react'; -import { basicSetup, minimalSetup } from 'codemirror'; -import { EditorView, gutter, keymap } from '@codemirror/view'; import { defaultKeymap, indentWithTab } from '@codemirror/commands'; -import { EditorState, Extension } from '@codemirror/state'; import { javascript } from '@codemirror/lang-javascript'; -// TODO activate this when we have a dark mode +import { EditorState, Extension } from '@codemirror/state'; import { oneDark } from '@codemirror/theme-one-dark'; +import { EditorView, gutter, keymap } from '@codemirror/view'; +import { basicSetup, minimalSetup } from 'codemirror'; +import { type JSX, useEffect, useRef } from 'react'; import useDarkMode from '../useDarkMode'; type Props = { diff --git a/website/src/repl/FormatterOutput.tsx b/website/src/repl/FormatterOutput.tsx index 26f86043ca..90d8e0c794 100644 --- a/website/src/repl/FormatterOutput.tsx +++ b/website/src/repl/FormatterOutput.tsx @@ -1,5 +1,5 @@ import { toHTML } from 'jsonml-html'; -import { useEffect, useRef, type JSX } from 'react'; +import { type JSX, useEffect, useRef } from 'react'; import { Element, JsonMLElementList } from '../worker/jsonml-types'; /** diff --git a/website/src/repl/Repl.tsx b/website/src/repl/Repl.tsx index d6c56941ee..5768964ddc 100644 --- a/website/src/repl/Repl.tsx +++ b/website/src/repl/Repl.tsx @@ -1,10 +1,10 @@ 'use client'; import dynamic from 'next/dynamic'; -import React, { useCallback, useEffect, useState, type JSX } from 'react'; +import React, { type JSX, useCallback, useEffect, useState } from 'react'; +import { useWorkerContext } from '../app/WorkerContext'; +import { Element, JsonMLElementList } from '../worker/jsonml-types'; import { Editor } from './Editor'; import FormatterOutput from './FormatterOutput'; -import { Element, JsonMLElementList } from '../worker/jsonml-types'; -import { useWorkerContext } from '../app/WorkerContext'; import './repl.css'; type Props = { diff --git a/website/src/sidebar/Sidebar.tsx b/website/src/sidebar/Sidebar.tsx index 8b2cf11d23..ad636adf97 100644 --- a/website/src/sidebar/Sidebar.tsx +++ b/website/src/sidebar/Sidebar.tsx @@ -2,8 +2,8 @@ import { Fragment, useState } from 'react'; import { SIDEBAR_LINKS } from '../app/docs/currentVersion'; -import SidebarMainLink from './SidebarMainLink'; import Focus, { FocusType } from './Focus'; +import SidebarMainLink from './SidebarMainLink'; export type SidebarLinks = Array<{ label: string; url: string }>; diff --git a/website/src/sidebar/SidebarMainLink.tsx b/website/src/sidebar/SidebarMainLink.tsx index 61a60bfa87..fc0df8f0d9 100644 --- a/website/src/sidebar/SidebarMainLink.tsx +++ b/website/src/sidebar/SidebarMainLink.tsx @@ -1,7 +1,7 @@ -import { JSX } from 'react'; import Link from 'next/link'; -import { ArrowDown } from '..//ArrowDown'; import { usePathname } from 'next/navigation'; +import { JSX } from 'react'; +import { ArrowDown } from '../ArrowDown'; type Props = { label: string; diff --git a/website/src/static/genMarkdownDoc.ts b/website/src/static/genMarkdownDoc.ts index 5e16fd48b4..bbfed2bacd 100644 --- a/website/src/static/genMarkdownDoc.ts +++ b/website/src/static/genMarkdownDoc.ts @@ -1,5 +1,5 @@ -import { markdown } from './markdown'; import { SIDEBAR_LINKS } from '../app/docs/currentVersion'; +import { markdown } from './markdown'; export function genMarkdownDoc(version: string, typeDefSource: string): string { return markdown( diff --git a/website/src/static/markdown.ts b/website/src/static/markdown.ts index d6080d08c5..081eacc0b7 100644 --- a/website/src/static/markdown.ts +++ b/website/src/static/markdown.ts @@ -2,9 +2,9 @@ import { Marked } from 'marked'; import { markedHighlight } from 'marked-highlight'; import prism from 'prismjs'; import type { - TypeDefs, CallSignature, TypeDefinition, + TypeDefs, } from '../app/docs/[version]/TypeDefs'; export type MarkdownContext = { diff --git a/website/src/worker/jsonml-types.test.ts b/website/src/worker/jsonml-types.test.ts index 07426d8c42..fae09b0fce 100644 --- a/website/src/worker/jsonml-types.test.ts +++ b/website/src/worker/jsonml-types.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect } from '@jest/globals'; +import { describe, expect, it } from '@jest/globals'; import { Element, explodeElement } from './jsonml-types'; describe('explodeElement', () => { diff --git a/website/src/worker/normalizeResult.test.ts b/website/src/worker/normalizeResult.test.ts index 9c8a624b1f..ecf7ccbcc0 100644 --- a/website/src/worker/normalizeResult.test.ts +++ b/website/src/worker/normalizeResult.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect } from '@jest/globals'; +import { describe, expect, it } from '@jest/globals'; // @ts-expect-error immutable is loaded automatically import * as Immutable from 'immutable'; import normalizeResult from './normalizeResult'; diff --git a/website/src/worker/normalizeResult.ts b/website/src/worker/normalizeResult.ts index fb24fc8067..790d80ddca 100644 --- a/website/src/worker/normalizeResult.ts +++ b/website/src/worker/normalizeResult.ts @@ -1,8 +1,8 @@ import { Element, + JsonMLElementList, explodeElement, isElement, - JsonMLElementList, } from './jsonml-types'; export interface DevToolsFormatter {