diff --git a/.changeset/red-bears-cry.md b/.changeset/red-bears-cry.md new file mode 100644 index 000000000..84b9f17d2 --- /dev/null +++ b/.changeset/red-bears-cry.md @@ -0,0 +1,5 @@ +--- +'slate': patch +--- + +Removed lodash dependecy to reduce bundled footprint diff --git a/packages/slate/package.json b/packages/slate/package.json index 8cd31ddb8..164dca72e 100644 --- a/packages/slate/package.json +++ b/packages/slate/package.json @@ -16,11 +16,14 @@ "dependencies": { "@types/esrever": "^0.2.0", "esrever": "^0.2.0", + "fast-deep-equal": "^3.1.3", "immer": "^8.0.1", "is-plain-object": "^3.0.0", - "lodash": "^4.17.4", "tiny-warning": "^1.0.3" }, + "devDependencies": { + "lodash": "^4.17.21" + }, "keywords": [ "canvas", "contenteditable", diff --git a/packages/slate/src/interfaces/text.ts b/packages/slate/src/interfaces/text.ts index d9cfc244b..c317043c3 100644 --- a/packages/slate/src/interfaces/text.ts +++ b/packages/slate/src/interfaces/text.ts @@ -1,6 +1,5 @@ import isPlainObject from 'is-plain-object' -import isEqual from 'lodash/isEqual' -import omit from 'lodash/omit' +import isEqual from 'fast-deep-equal' import { Range } from '..' import { ExtendedType } from './custom-types' @@ -37,9 +36,15 @@ export const Text: TextInterface = { ): boolean { const { loose = false } = options + function omitText(obj: Record) { + const { text, ...rest } = obj + + return rest + } + return isEqual( - loose ? omit(text, 'text') : text, - loose ? omit(another, 'text') : another + loose ? omitText(text) : text, + loose ? omitText(another) : another ) }, diff --git a/yarn.lock b/yarn.lock index 0e252af4c..284da1295 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5656,7 +5656,7 @@ faker@^4.1.0: resolved "https://registry.yarnpkg.com/faker/-/faker-4.1.0.tgz#1e45bbbecc6774b3c195fad2835109c6d748cc3f" integrity sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8= -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==