Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | const fs = require( 'fs' ); const path = require( 'path' ); const yaml = require( 'js-yaml' ); const ajv = require( 'ajv' ); const configOptions = require( './eslint-config-associations.json' ); // SECTION Development modules const { print } = require( 'q-i' ); const chalk = require( 'chalk' ); // !SECTION Development modules let config = {}; /** * Modifies the imported eslintrc config object with rules specialized for GAS development */ function modifyConfig() { Object.keys( defaultConfig ).forEach( ( key ) => { if ( key === 'extends' ) { /* Don't overwrite the user's existing base config */ return; } if ( key === 'plugins' ) { if ( config[ key ] instanceof Array ) { /* Only add to the existing plugin array - don't overwrite it */ config[ key ] = config[ key ].concat( defaultConfig[ key ] ); } else config[ key ] = defaultConfig[ key ]; /* Unless there isn't one */ return; } /* Overwrite */ config[ key ] = defaultConfig[ key ]; } ); } /** * Handle the import-existing strategy * @param {*} options * @returns */ function useExistingEslintObj( filePath, modify ) { const eslintRulePath = filePath; config = importConfig( eslintRulePath ); if ( modify ) modifyConfig(); } /** * Handle the create-new strategy * @param {*} options * @returns */ function createNewEslintObj( extendsConfig ) { config = defaultConfig; const configType = extendsConfig; config.extends = configType; const associatedPlugins = configOptions[ configType ].eslintrc; associatedPlugins.plugins.forEach( plugin => config.plugins.push( plugin ) ); } /** * Validated the produced object against the official schema * @param {*} rules */ function verifyRuleObject( rules ) { } module.exports = eslintConfigObj; |