mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
d17f7d0a29
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/51858 Creates a new private package for the ESLint rules that are defined in the `facebook/react-native` repository for linting the monorepo itself: `react-native/eslint-plugin-monorepo` It resides in a new `private/` directory that will be used for all private packages. I plan to move private packages over from `packages/` and `tools/`. This also eliminates the need for the `eslint-plugin-lint` dependency in open source. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D76088698 fbshipit-source-id: 697d5d91421cda4ef3f96d0497a96954cd047296
93 lines
1.9 KiB
JavaScript
93 lines
1.9 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
* @noflow
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
const rule = require('../react-native-manifest.js');
|
|
const {RuleTester} = require('eslint');
|
|
|
|
const ruleTester = new RuleTester({
|
|
parser: require.resolve('jsonc-eslint-parser'),
|
|
});
|
|
|
|
ruleTester.run('react-native-manifest', rule, {
|
|
valid: [
|
|
{
|
|
code: JSON.stringify({
|
|
name: '@react-native/package-name',
|
|
}),
|
|
},
|
|
{
|
|
code: JSON.stringify({
|
|
name: '@react-native/package-name',
|
|
dependencies: {
|
|
dependencyA: '1.0.0',
|
|
},
|
|
devDependencies: {
|
|
dependencyB: '1.0.0',
|
|
},
|
|
}),
|
|
},
|
|
{
|
|
code: JSON.stringify({
|
|
name: '@react-native/monorepo',
|
|
devDependencies: {
|
|
dependencyB: '1.0.0',
|
|
},
|
|
}),
|
|
},
|
|
{
|
|
code: JSON.stringify({
|
|
name: 'react-native',
|
|
dependencies: {
|
|
dependencyA: '1.0.0',
|
|
},
|
|
}),
|
|
},
|
|
],
|
|
invalid: [
|
|
{
|
|
code: JSON.stringify({
|
|
name: '@react-native/monorepo',
|
|
dependencies: {
|
|
dependencyA: '1.0.0',
|
|
},
|
|
}),
|
|
errors: [
|
|
{
|
|
messageId: 'propertyDisallowed',
|
|
data: {
|
|
property: 'dependencies',
|
|
describe:
|
|
"Declare 'dependencies' in `packages/react-native/package.json`.",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
code: JSON.stringify({
|
|
name: 'react-native',
|
|
devDependencies: {
|
|
dependencyA: '1.0.0',
|
|
},
|
|
}),
|
|
errors: [
|
|
{
|
|
messageId: 'propertyDisallowed',
|
|
data: {
|
|
property: 'devDependencies',
|
|
describe: "Declare 'devDependencies' in `<root>/package.json`.",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|