Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. IF YOU ARE USING THIS WITH SUBLIME: see the bottom section for important info. I use prettier, which uses those entries in the eslint config to integrate with eslint. However, webpack allows a number of things in import module source strings that
aliasing schemes, such as externals: mapping a module id to a global name at To avoid this, you may provide electron as a A list of regex strings that, if matched by a path, will Any help needed? Already on GitHub? This return value is passed down to any nested resolvers via the parent argument. Hi @ljharb thanks for the reply. This example assumes you're using either the apollo-server or apollo-server-express package, both of which use Express. Currently Node and webpack resolution have been implemented, but the Sign up for a free GitHub account to open an issue and contact its maintainers and the community. The purpose of the chdir setting, in this case, is to set the working directory 4.0.0: ESLint configuration is invalid: - Unexpected top-level property "ecmaFeatures", install eslint v3, compatible with airbnb's config, Update command to install eslint-config-airbnb, Peer dep missing after update 1.11.0 - 2017-06-30, ESLint 4.1.1 [object Object]: ESLint configuration is invalid: - Unexpected top-level property "ecmaFeatures]. However, webpack allows a number of things in import module source strings that You define all of your server's resolvers in a single JavaScript object (named, The resolver map has top-level fields that correspond to your schema's types (such as. /home/me/project/packages will only match files and directories inside this directory, and the directory itself. All the goodness that the ES2015+ static module syntax intends to provide, marked up in your editor. What purpose are these openings on the roof? bases the relative path it provides. To provide an initial context to your resolvers, add a context initialization function to the ApolloServer constructor. An array of folders. Resolved modules only from those folders will be considered as "external". How is transformer output affected by frequency? If you require more granular extension definitions, you can use: Note that this is different from (and likely a subset of) any import/resolver The context argument is useful for passing things that any resolver might need, like authentication scope, database connections, and custom fetch functions. An object that contains all GraphQL arguments provided for this field. [eslint-config-airbnb] Unexpected top-level property "ecmaFeatures". Apollo Server extends it with a cacheControl field. In the interest of supporting both of these, v0.11 introduces resolvers. If you require more granular extension definitions, you can use: Note that this is different from (and likely a subset of) any import/resolver Your resolver may which will still Available as part of the Tidelift Subscription. packages/core will match any path that contains these two segments, for example /home/me/project/packages/core/src/utils.js. eslint-import-resolver-typescript. depending on how far down the rabbit hole goes. (yml|json|js), or extend one of the canned configs: You may use the following shortcut or assemble your own config using the granular settings described below. I'm trying to create a rule to have a one empty line between internal and external imports. Let's say our server defines the following schema: Here's a valid query against that schema: The resulting resolver chain for this query matches the hierarchical structure of the query itself: These resolvers execute in the order shown above, and they each pass their return value to the next resolver in the chain via the parent argument. the process's current working directory if no package.json is found. must be installed and require-able from the running eslint module's location .eslintignore will be updated to work more like a .gitignore, which should not report the matching module if no exports are found. Thanks for the response. If you're using dataloaders to batch requests across resolvers, you can attach them to the context as well. There's nothing wrong with sticking with v3 in the meantime. If a file extension is matched, the I've manually run the info command and installed the correct eslint version, suggested by the deps (3.19.0). See The context argument for more information. Make sure you have installed @typescript-eslint/parser which is used in the following configuration. Today I've reconfigured the project and the editor and seems to work fine now :), ./node_modules/.bin/eslint . Makes sense if you have configured your path or webpack to handle your internal paths differently and want to consider modules from some folders, for example bower_components or jspm_modules, as "external". It's difficult to say how well various plugin features will be supported, too, By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. privacy statement. What does npm ls say? @alp82 yes, that's invalid in eslint 4 but is ignored in eslint 3. In the meantime, see roadhump/SublimeLinter-eslint#58 Making statements based on opinion; back them up with references or personal experience. from which ESLint is executed to be the same as the directory on which SublimeLinter-eslint
For example, all fields of this Product type "bottom out": Because of this rule, whenever Apollo Server resolves a field that returns an object type, it always then resolves one or more fields of that object. Here's my eslint config: When I run the linter, I get the expected error you want: I would try playing with your extends property. It works fine with eslint v3 so i assume i should wait till config will be available for v4? SF novel featuring a quest, very flexible roads, and giant letters floating out of mountains, Sets with both additive and multiplicative gaps. By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. A resolver can optionally accept four positional arguments.
Here's my eslint config: When I run the linter, I get the expected error you want: I would try playing with your extends property. for more information, in case this does not work with your project.
Learn more. @ljharb it seems that the Atom's linter-eslint wasn't finding the eslint installation under node_modules, fallbacking to the eslint version shipped with the plugin. Unfortunately NPM does not allow to list optional peer dependencies. You may set the following settings in your .eslintrc: A list of file extensions that will be parsed as modules and inspected for (, Ensure imported namespaces contain dereferenced properties as they are dereferenced. Each item in this array is either a folder's name, its subpath, or its absolute prefix path: jspm_modules will match any file or folder named jspm_modules or which has a direct or non-direct parent named jspm_modules, e.g. By default - ["node_modules"]. For normal eslint console runs, the cache lifetime is irrelevant, as we can strongly assume that files should not be changing during the lifetime of the linter process (and thus, the cache in memory). Contribution of more such shared configs for other platforms are welcome! Submit an issue if you find strange (, Ensure named imports correspond to a named export in the remote file. Sometimes eslint and prettier fight with eachother about code formatting, so having eslint, thanks I've installed the suggested dependency, now I have, ESLINT Unexpected top-level property "import/order" error, How APIs can take the pain out of legacy system headaches (Ep. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Available as part of the Tidelift Subscription. For example, if your packages in a monorepo are all in @scope, you can configure import/internal-regex like this. For example, Electron exposes an electron module: that would otherwise be unresolved. This function is called with every request, so you can customize the context based on each request's details (such as HTTP headers). Settings for cache behavior. This is useful if you're inter-op-ing with TypeScript code: I also found that I needed to set rc_search_limit to null, which removes the file Also, npm ls will report errors for you - it has to exit zero before anything else will work properly. What is necessary to allow Jest, using ts-jest and webpack, to recognize and parse module aliases? P.S. Resolvers often perform asynchronous actions, such as fetching from a database or back-end API. You will also need to install and configure the TypeScript resolver: For normal eslint console runs, the cache lifetime is irrelevant, as we can strongly assume that files should not be changing during the lifetime of the linter process (and thus, the cache in memory). An object shared across all resolvers that are executing for a particular operation. This option is also useful in a monorepo setup: list here all directories that contain monorepo's packages and they will be treated as external ones no matter which resolver is used. Highly recommended! # Should always return the number 6 when queried, // Pass schema definition and resolvers to the, // The branch field of a book indicates which library has it in stock, // Return our hardcoded array of libraries, // Filter the hardcoded array of books to only include, // books that are located at the correct branch, // The parent resolver (Library.books) returns an object with the, // author's name in the "author" field. re-export of the same name (, Report use of exported name as identifier of default export (, Report use of exported name as property of default export (, Report modules without exports, or exports without matching import in another module (, Report potentially ambiguous parse goal (, Ensure all imports appear before other statements (, Ensure all exports appear after other statements (, Report repeated import of the same module in multiple places (, Ensure consistent use of file extension within the import path (, Enforce a convention in module import order (, Enforce a newline after import statements (, Prefer a default export if module exports a single name (, Limit the maximum number of dependencies a module can have (, Forbid anonymous values as default exports (, Prefer named exports to be grouped together in a single export declaration (, Enforce a leading comment with the webpackChunkName for dynamic imports (, with a filesystem path to resolver, defined in this example as a.