From 1c54824ad79393b11a00e77c6c1ab3bf68bda8e7 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 12 Jul 2020 23:14:20 +0800 Subject: [PATCH] - Linting: Add local ESLint rule to prefer no-namespace on public files, but disable rule for now for our two very large files until they may be refactored into smaller files --- .eslintrc.js | 3 +++ editor/svg-editor.js | 4 ++++ editor/svgcanvas.js | 8 ++++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 69720bef..340fdaf5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -174,6 +174,9 @@ module.exports = { ] }, rules: { + // Should probably add this rule to ash-nazg as facilitates tree-shaking + 'import/no-namespace': ['error'], + 'node/no-unsupported-features/node-builtins': 'off' } }, diff --git a/editor/svg-editor.js b/editor/svg-editor.js index 76cc7973..ce043681 100644 --- a/editor/svg-editor.js +++ b/editor/svg-editor.js @@ -18,6 +18,10 @@ import './touch.js'; import {NS} from './namespaces.js'; import {isWebkit, isChrome, isGecko, isIE, isMac, isTouch} from './browser.js'; + +// Until we split this into smaller files, this helps distinguish utilities +// from local methods +// eslint-disable-next-line import/no-namespace import * as Utils from './utilities.js'; import {getTypeMap, convertUnit, isValidUnit} from './units.js'; import { diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index 8ac7b4af..7dae0a9e 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -20,7 +20,13 @@ import './svgpathseg.js'; import jQueryPluginSVG from './jQuery.attr.js'; // Needed for SVG attribute setting and array form with `attr` import jQueryPluginDBox from './dbox.js'; + +/* eslint-disable import/no-namespace -- Keeping namespaced to help distinguish + utilities from local functions until we split canvas into separate files */ +import * as pathModule from './path.js'; +import * as hstry from './history.js'; import * as draw from './draw.js'; +/* eslint-enable import/no-namespace */ // eslint-disable-next-line no-duplicate-imports import { identifyLayers, createLayer, cloneLayer, deleteCurrentLayer, @@ -28,7 +34,6 @@ import { setLayerVisibility, moveSelectedToLayer, mergeLayer, mergeAllLayers, leaveContext, setContext } from './draw.js'; -import * as pathModule from './path.js'; import {sanitizeSvg} from './sanitize.js'; import {getReverseNS, NS} from './namespaces.js'; import {importSetGlobal, importScript} from './external/dynamic-import-polyfill/importModule.js'; @@ -42,7 +47,6 @@ import { init as utilsInit, getBBox as utilsGetBBox, getStrokedBBoxDefaultVisible, isNullish } from './utilities.js'; -import * as hstry from './history.js'; import { transformPoint, matrixMultiply, hasMatrixTransform, transformListToTransform, getMatrix, snapToAngle, isIdentity, rectsIntersect, transformBox