diff --git a/.eslintrc b/.eslintrc index f1bc196bc..84987a38a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -6,13 +6,14 @@ "sourceType": "module" }, "extends": ["eslint:recommended", "prettier"], - "plugins": ["jsdoc", "import", "prefer-arrow"], + "plugins": ["jsdoc", "import", "prefer-arrow", "monorepo"], "rules": { "arrow-parens": ["off", "always"], "curly": ["error", "all"], "complexity": "error", "eqeqeq": ["error", "smart"], - "import/no-extraneous-dependencies": "error" + "import/no-extraneous-dependencies": "error", + "monorepo/no-relative-import": "error" }, "ignorePatterns": [ "/packages/*/dist/", diff --git a/package.json b/package.json index 94182b8b7..681dd9fb0 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "eslint-config-prettier": "8.1.0", "eslint-plugin-import": "2.22.1", "eslint-plugin-jsdoc": "32.3.0", + "eslint-plugin-monorepo": "0.3.2", "eslint-plugin-prefer-arrow": "1.2.3", "husky": "8.0.1", "lerna": "3.22.1", diff --git a/yarn.lock b/yarn.lock index 5c0947dc7..7dd4d81a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9127,7 +9127,7 @@ debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, de dependencies: ms "2.1.2" -debug@^3.1.0: +debug@^3.1.0, debug@^3.2.7: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -9495,7 +9495,7 @@ dir-glob@2.0.0: arrify "^1.0.1" path-type "^3.0.0" -dir-glob@^2.2.2: +dir-glob@^2.0.0, dir-glob@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz" integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== @@ -10135,6 +10135,13 @@ eslint-import-resolver-node@^0.3.4: debug "^2.6.9" resolve "^1.13.1" +eslint-module-utils@^2.1.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + eslint-module-utils@^2.6.0: version "2.6.0" resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz" @@ -10175,6 +10182,19 @@ eslint-plugin-jsdoc@32.3.0: semver "^7.3.4" spdx-expression-parse "^3.0.1" +eslint-plugin-monorepo@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-monorepo/-/eslint-plugin-monorepo-0.3.2.tgz#bc546cbe84b21ae6a7622f261bf9fe73b1524367" + integrity sha512-CypTAqHjTR05XxzqDj7x88oVu2GiqqQA/datD9kIwciHzpj0oE4YbTdyEFFKADgd7dbd21KliSlUpOvo626FBw== + dependencies: + eslint-module-utils "^2.1.1" + get-monorepo-packages "^1.1.0" + globby "^7.1.1" + load-json-file "^4.0.0" + minimatch "^3.0.4" + parse-package-name "^0.1.0" + path-is-inside "^1.0.2" + eslint-plugin-prefer-arrow@1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz" @@ -12170,6 +12190,14 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +get-monorepo-packages@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-monorepo-packages/-/get-monorepo-packages-1.2.0.tgz#3eee88d30b11a5f65955dec6ae331958b2a168e4" + integrity sha512-aDP6tH+eM3EuVSp3YyCutOcFS4Y9AhRRH9FAd+cjtR/g63Hx+DCXdKoP1ViRPUJz5wm+BOEXB4FhoffGHxJ7jQ== + dependencies: + globby "^7.1.1" + load-json-file "^4.0.0" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" @@ -12456,6 +12484,18 @@ globby@11.0.3, globby@^11.0.0, globby@^11.0.1: merge2 "^1.3.0" slash "^3.0.0" +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + integrity sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g== + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + globby@^8.0.1: version "8.0.2" resolved "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz" @@ -17558,6 +17598,11 @@ parse-node-version@^1.0.0: resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz" integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== +parse-package-name@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" + integrity sha512-OT2+32knn014ggXMpGjZeHHsTYwOvHmRAMFtVBZstWAnR4UVIOw+JOhWZUCv5JwZQAMiisfdF2K5SyGI5OXXIg== + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz"