mirror of
https://github.com/sasjs/lint.git
synced 2026-01-06 20:20:06 +00:00
feat: support a user-level ~/.sasjslint
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import path from 'path'
|
||||
import os from 'os'
|
||||
import { LintConfig } from '../types/LintConfig'
|
||||
import { readFile } from '@sasjs/utils/file'
|
||||
import { getProjectRoot } from './getProjectRoot'
|
||||
@@ -31,14 +32,15 @@ export const DefaultLintConfiguration = {
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches the config from the .sasjslint file and creates a LintConfig object.
|
||||
* Fetches the config from the .sasjslint file (at project root or home directory) and creates a LintConfig object.
|
||||
* Returns the default configuration when a .sasjslint file is unavailable.
|
||||
* @returns {Promise<LintConfig>} resolves with an object representing the current lint configuration.
|
||||
*/
|
||||
export async function getLintConfig(): Promise<LintConfig> {
|
||||
const projectRoot = await getProjectRoot()
|
||||
const lintFileLocation = projectRoot || os.homedir()
|
||||
const configuration = await readFile(
|
||||
path.join(projectRoot, '.sasjslint')
|
||||
path.join(lintFileLocation, '.sasjslint')
|
||||
).catch((_) => {
|
||||
return JSON.stringify(DefaultLintConfiguration)
|
||||
})
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import path from 'path'
|
||||
import os from 'os'
|
||||
import { fileExists } from '@sasjs/utils/file'
|
||||
|
||||
/**
|
||||
@@ -11,10 +12,11 @@ export async function getProjectRoot(): Promise<string> {
|
||||
let rootFound = false
|
||||
let i = 1
|
||||
let currentLocation = process.cwd()
|
||||
const homeDir = os.homedir()
|
||||
|
||||
const maxLevels = currentLocation.split(path.sep).length
|
||||
|
||||
while (i <= maxLevels && !rootFound) {
|
||||
while (i <= maxLevels && !rootFound && currentLocation !== homeDir) {
|
||||
const isRoot = await fileExists(path.join(currentLocation, '.sasjslint'))
|
||||
|
||||
if (isRoot) {
|
||||
|
||||
Reference in New Issue
Block a user