UNPKG

@builder.io/eslint-plugin-mitosis

Version:

A Mitosis plugin containing rules that help you write valid and idiomatic Mitosis code

44 lines (43 loc) 3.72 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); var eslint_1 = require("eslint"); var only_default_function_and_imports_1 = require("../only-default-function-and-imports"); var opts = { filename: 'component.lite.tsx', parserOptions: { ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features sourceType: 'module', // Allows for the use of imports ecmaFeatures: { jsx: true, // Allows for the parsing of JSX }, }, }; var ruleTester = new eslint_1.RuleTester({ parser: require.resolve('@typescript-eslint/parser'), }); ruleTester.run('only-default-function-and-imports', only_default_function_and_imports_1.default, { valid: [ __assign(__assign({}, opts), { code: "\n import x from \"y\";\n import {a} from \"b\";\n export default function MyComponent(props) {\n return (\n <div />\n );\n }\n " }), __assign(__assign({}, opts), { code: "\n export default function MyComponent(props) {\n return (\n <div />\n );\n }\n " }), __assign(__assign({}, opts), { code: "\n import x from \"y\";\n import {a} from \"b\";\n\n export type Props = {}\n export interface OtherProps {}\n type Props1 = {}\n interface OtherProps2 {}\n\n export default function MyComponent(props) {\n return (\n <div />\n );\n }\n " }), __assign(__assign({}, opts), { code: "\n useMetadata({\n qwik: {\n component: {\n isLight: true,\n },\n },\n });\n \n export default function RenderComponent(props) {\n return (\n <div>Text</div>\n );\n }\n " }), __assign(__assign({}, opts), { code: "\n useDefaultProps({\n test: \"XXX\"\n });\n \n export default function RenderComponent(props) {\n return (\n <div>{props.test}</div>\n );\n }\n " }), __assign(__assign({}, opts), { code: "\n export const x = y;\n \n export default function MyComponent(props) {\n return (\n <div />\n );\n }\n ", filename: 'file.jsx' }), ], invalid: [ __assign(__assign({}, opts), { code: "\n import {a} from \"b\";\n export default function MyComponent(props) {\n return (\n <div />\n );\n }\n export const x = y;\n ", errors: [only_default_function_and_imports_1.onlyDefaultFunctionAndImportsMessage] }), __assign(__assign({}, opts), { code: "\n useMeta({\n qwik: {\n component: {\n isLight: true,\n },\n },\n });\n \n export default function RenderComponent(props) {\n return (\n <div>Text</div>\n );\n }\n ", errors: [only_default_function_and_imports_1.onlyDefaultFunctionAndImportsMessage] }), __assign(__assign({}, opts), { code: "\n useDefault({\n test: \"XXX\"\n });\n \n export default function RenderComponent(props) {\n return (\n <div>{props.test}</div>\n );\n }\n ", errors: [only_default_function_and_imports_1.onlyDefaultFunctionAndImportsMessage] }), ], });