UNPKG

@nextcloud/eslint-config

Version:

Eslint shared config for nextcloud apps and libraries

82 lines (81 loc) 2.48 kB
/*! * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ import { codeStyle } from "./configs/codeStyle.js"; import { documentation } from "./configs/documentation.js"; import { filesystem } from "./configs/filesystem.js"; import { imports } from "./configs/imports.js"; import { javascript } from "./configs/javascript.js"; import { json } from "./configs/json.js"; import { node } from "./configs/node.js"; import { typescript } from "./configs/typescript.js"; import { vue2 } from "./configs/vue2.js"; import { vue3 } from "./configs/vue3.js"; /** * Nextcloud shared configuration for projects using Vue 2 with Javascript <script> blocks */ export const recommendedVue2Javascript = createConfig({ isLibrary: false, vue2: true, vueIsTypescript: false, }); /** * Nextcloud shared configuration for projects using Vue 2 with Typescript <script> blocks */ export const recommendedVue2 = createConfig({ isLibrary: false, vue2: true, vueIsTypescript: true, }); /** * Nextcloud shared configuration for projects using Vue 3 with Javascript <script> blocks */ export const recommendedJavascript = createConfig({ isLibrary: false, vueIsTypescript: false, }); /** * Nextcloud shared configuration for projects using Vue 3 with Typescript <script> blocks */ export const recommended = createConfig({ isLibrary: false, vueIsTypescript: true, }); /** * Nextcloud shared configuration for projects using Vue 3 with Typescript <script> blocks */ export const recommendedLibrary = createConfig({ isLibrary: true, vueIsTypescript: true, }); /** * Nextcloud shared configuration for projects using Vue 3 with Typescript <script> blocks */ export const recommendedVue2Library = createConfig({ isLibrary: true, vue2: true, vueIsTypescript: true, }); export { default as packageJsonPlugin } from "./plugins/packageJson.js"; export { default as nextcloudPlugin } from "./plugins/nextcloud/index.js"; /** * Generate a configuration based on given options * * @param options - Configuration options */ function createConfig(options) { return [ ...filesystem, ...javascript(options), ...json, ...node, ...typescript(options), ...(options.vue2 ? vue2(options) : vue3(options)), ...documentation(options), ...imports(options), ...codeStyle(options), ]; }