Browse Source

Improve linting

semi-dynamic-namespace-imports
Bogdan Chadkin 8 years ago
parent
commit
d39105d688
  1. 8
      .eslintrc
  2. 14
      src/Bundle.js
  3. 10
      src/Module.js
  4. 2
      src/ast/flatten.js
  5. 4
      src/finalisers/amd.js
  6. 8
      src/finalisers/iife.js
  7. 8
      src/finalisers/umd.js
  8. 4
      src/rollup.js
  9. 8
      src/utils/collapseSourcemaps.js
  10. 2
      src/utils/defaults.js
  11. 2
      src/utils/makeLegalIdentifier.js
  12. 2
      src/utils/object.js
  13. 2
      src/utils/promise.js
  14. 4
      src/utils/pureFunctions.js
  15. 4
      src/utils/transform.js
  16. 10
      test/test.js

8
.eslintrc

@ -7,15 +7,19 @@
"space-before-blocks": [ 2, "always" ],
"space-before-function-paren": [ 2, "always" ],
"no-mixed-spaces-and-tabs": [ 2, "smart-tabs" ],
"no-cond-assign": [ 0 ],
"object-shorthand": [2, "always" ],
"no-cond-assign": 0,
"no-unused-vars": 2,
"object-shorthand": [ 2, "always" ],
"no-const-assign": 2,
"no-class-assign": 2,
"no-this-before-super": 2,
"no-var": 2,
"no-unreachable": 2,
"valid-typeof": 2,
"quote-props": [ 2, "as-needed" ],
"one-var": [ 2, "never" ],
"prefer-arrow-callback": 2,
"prefer-const": [ 2, { "destructuring": "all" } ],
"arrow-spacing": 2
},
"env": {

14
src/Bundle.js

@ -130,7 +130,7 @@ export default class Bundle {
}
deconflict () {
let used = blank();
const used = blank();
// ensure no conflicts with globals
keys( this.assumedGlobals ).forEach( name => used[ name ] = 1 );
@ -300,7 +300,7 @@ export default class Bundle {
const exportMode = getExportMode( this, options.exports, options.moduleName );
let magicString = new MagicStringBundle({ separator: '\n\n' });
let usedModules = [];
const usedModules = [];
this.orderedModules.forEach( module => {
const source = module.render( format === 'es' );
@ -344,7 +344,7 @@ export default class Bundle {
let code = magicString.toString();
let map = null;
let bundleSourcemapChain = [];
const bundleSourcemapChain = [];
code = transformBundle( code, this.plugins, bundleSourcemapChain )
.replace( new RegExp( `\\/\\/#\\s+${SOURCEMAPPING_URL}=.+\\n?`, 'g' ), '' );
@ -367,12 +367,12 @@ export default class Bundle {
}
sort () {
let seen = {};
let hasCycles;
let ordered = [];
const seen = {};
const ordered = [];
let stronglyDependsOn = blank();
let dependsOn = blank();
const stronglyDependsOn = blank();
const dependsOn = blank();
this.modules.forEach( module => {
stronglyDependsOn[ module.id ] = blank();

10
src/Module.js

@ -121,7 +121,7 @@ export default class Module {
// export var a = 1, b = 2, c = 3;
// export function foo () {}
else if ( node.declaration ) {
let declaration = node.declaration;
const declaration = node.declaration;
if ( declaration.type === 'VariableDeclaration' ) {
declaration.declarations.forEach( decl => {
@ -274,7 +274,7 @@ export default class Module {
}
getExports () {
let exports = blank();
const exports = blank();
keys( this.exports ).forEach( name => {
exports[ name ] = true;
@ -353,7 +353,7 @@ export default class Module {
}
});
let statements = [];
const statements = [];
let lastChar = 0;
let commentIndex = 0;
@ -447,7 +447,7 @@ export default class Module {
}
render ( es ) {
let magicString = this.magicString;
const magicString = this.magicString;
this.statements.forEach( statement => {
if ( !statement.isIncluded ) {
@ -503,7 +503,7 @@ export default class Module {
}
}
let toDeshadow = blank();
const toDeshadow = blank();
statement.references.forEach( reference => {
const { start, end } = reference;

2
src/ast/flatten.js

@ -1,5 +1,5 @@
export default function flatten ( node ) {
let parts = [];
const parts = [];
while ( node.type === 'MemberExpression' ) {
if ( node.computed ) return null;
parts.unshift( node.property.name );

4
src/finalisers/amd.js

@ -4,8 +4,8 @@ import getExportBlock from './shared/getExportBlock.js';
import esModuleExport from './shared/esModuleExport.js';
export default function amd ( bundle, magicString, { exportMode, indentString }, options ) {
let deps = bundle.externalModules.map( quotePath );
let args = bundle.externalModules.map( getName );
const deps = bundle.externalModules.map( quotePath );
const args = bundle.externalModules.map( getName );
if ( exportMode === 'named' ) {
args.unshift( `exports` );

8
src/finalisers/iife.js

@ -5,7 +5,7 @@ import getExportBlock from './shared/getExportBlock.js';
import getGlobalNameMaker from './shared/getGlobalNameMaker.js';
function setupNamespace ( keypath ) {
let parts = keypath.split( '.' ); // TODO support e.g. `foo['something-hyphenated']`?
const parts = keypath.split( '.' ); // TODO support e.g. `foo['something-hyphenated']`?
parts.pop();
@ -22,9 +22,9 @@ export default function iife ( bundle, magicString, { exportMode, indentString }
const name = options.moduleName;
const isNamespaced = name && ~name.indexOf( '.' );
let dependencies = bundle.externalModules.map( globalNameMaker );
const dependencies = bundle.externalModules.map( globalNameMaker );
let args = bundle.externalModules.map( getName );
const args = bundle.externalModules.map( getName );
if ( exportMode !== 'none' && !name ) {
throw new Error( 'You must supply options.moduleName for IIFE bundles' );
@ -38,7 +38,7 @@ export default function iife ( bundle, magicString, { exportMode, indentString }
const useStrict = options.useStrict !== false ? `'use strict';` : ``;
let intro = `(function (${args}) {\n`;
let outro = `\n\n}(${dependencies}));`;
const outro = `\n\n}(${dependencies}));`;
if ( exportMode === 'default' ) {
intro = ( isNamespaced ? `this.` : `${bundle.varOrConst} ` ) + `${name} = ${intro}`;

8
src/finalisers/umd.js

@ -23,11 +23,11 @@ export default function umd ( bundle, magicString, { exportMode, indentString },
const globalNameMaker = getGlobalNameMaker( options.globals || blank(), bundle.onwarn );
let amdDeps = bundle.externalModules.map( quotePath );
let cjsDeps = bundle.externalModules.map( req );
let globalDeps = bundle.externalModules.map( module => `global.${globalNameMaker( module )}` );
const amdDeps = bundle.externalModules.map( quotePath );
const cjsDeps = bundle.externalModules.map( req );
const globalDeps = bundle.externalModules.map( module => `global.${globalNameMaker( module )}` );
let args = bundle.externalModules.map( getName );
const args = bundle.externalModules.map( getName );
if ( exportMode === 'named' ) {
amdDeps.unshift( `'exports'` );

4
src/rollup.js

@ -80,10 +80,10 @@ export function rollup ( options ) {
}
const dest = options.dest;
let output = generate( options );
const output = generate( options );
let { code, map } = output;
let promises = [];
const promises = [];
if ( options.sourceMap ) {
let url;

8
src/utils/collapseSourcemaps.js

@ -21,12 +21,12 @@ class Link {
}
traceMappings () {
let sources = [];
let sourcesContent = [];
let names = [];
const sources = [];
const sourcesContent = [];
const names = [];
const mappings = this.mappings.map( line => {
let tracedLine = [];
const tracedLine = [];
line.forEach( segment => {
const source = this.sources[ segment[1] ];

2
src/utils/defaults.js

@ -32,7 +32,7 @@ export function resolveId ( importee, importer ) {
export function makeOnwarn () {
let warned = blank();
const warned = blank();
return msg => {
if ( msg in warned ) return;

2
src/utils/makeLegalIdentifier.js

@ -3,7 +3,7 @@ import { blank } from './object.js';
const reservedWords = 'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public'.split( ' ' );
const builtins = 'Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl'.split( ' ' );
let blacklisted = blank();
const blacklisted = blank();
reservedWords.concat( builtins ).forEach( word => blacklisted[ word ] = true );

2
src/utils/object.js

@ -10,7 +10,7 @@ export function forOwn ( object, func ) {
export function assign ( target, ...sources ) {
sources.forEach( source => {
for ( let key in source ) {
for ( const key in source ) {
if ( source.hasOwnProperty( key ) ) target[ key ] = source[ key ];
}
});

2
src/utils/promise.js

@ -1,5 +1,5 @@
export function mapSequence ( array, fn ) {
let results = [];
const results = [];
let promise = Promise.resolve();
function next ( member, i ) {

4
src/utils/pureFunctions.js

@ -1,9 +1,9 @@
let pureFunctions = {};
const pureFunctions = {};
const arrayTypes = 'Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array'.split( ' ' );
const simdTypes = 'Int8x16 Int16x8 Int32x4 Float32x4 Float64x2'.split( ' ' );
const simdMethods = 'abs add and bool check div equal extractLane fromFloat32x4 fromFloat32x4Bits fromFloat64x2 fromFloat64x2Bits fromInt16x8Bits fromInt32x4 fromInt32x4Bits fromInt8x16Bits greaterThan greaterThanOrEqual lessThan lessThanOrEqual load max maxNum min minNum mul neg not notEqual or reciprocalApproximation reciprocalSqrtApproximation replaceLane select selectBits shiftLeftByScalar shiftRightArithmeticByScalar shiftRightLogicalByScalar shuffle splat sqrt store sub swizzle xor'.split( ' ' );
let allSimdMethods = [];
const allSimdMethods = [];
simdTypes.forEach( t => {
simdMethods.forEach( m => {
allSimdMethods.push( `SIMD.${t}.${m}` );

4
src/utils/transform.js

@ -1,9 +1,9 @@
export default function transform ( source, id, plugins ) {
let sourceMapChain = [];
const sourceMapChain = [];
const originalSourceMap = typeof source.map === 'string' ? JSON.parse( source.map ) : source.map;
let originalCode = source.code;
const originalCode = source.code;
let ast = source.ast;
return plugins.reduce( ( promise, plugin ) => {

10
test/test.js

@ -166,7 +166,7 @@ describe( 'rollup', function () {
const config = loadConfig( FUNCTION + '/' + dir + '/_config.js' );
( config.skip ? it.skip : config.solo ? it.only : it )( dir, () => {
let warnings = [];
const warnings = [];
const captureWarning = msg => warnings.push( msg );
const options = extend( {
@ -216,7 +216,7 @@ describe( 'rollup', function () {
if ( config.code ) config.code( code );
let module = {
const module = {
exports: {}
};
@ -475,7 +475,7 @@ describe( 'rollup', function () {
const cjs = bundle.generate({ format: 'cjs' });
const m = new Function( 'module', 'exports', cjs.code );
let module = { exports: {} };
const module = { exports: {} };
m( module, module.exports );
return module.exports;
@ -608,7 +608,7 @@ describe( 'rollup', function () {
});
it( 'calls ongenerate hooks in sequence', () => {
let result = [];
const result = [];
return rollup.rollup({
entry: 'entry',
@ -636,7 +636,7 @@ describe( 'rollup', function () {
});
it( 'calls onwrite hooks in sequence', () => {
let result = [];
const result = [];
const dest = path.join( __dirname, 'tmp/bundle.js' );
return rollup.rollup({

Loading…
Cancel
Save