UNPKG

eslint-plugin-esm

Version:
20 lines 2.68 kB
import { createRule, DEFAULT_MESSAGE_ID, getRuleName } from "../common.js"; export const topSideEffectImports = createRule({ name: getRuleName(import.meta.url), message: "Side effect imports must be placed before other import statements.", create: (context) => { let hasNonSideEffectImport = false; return { ImportDeclaration: (node) => { if (node.specifiers.length > 0) { hasNonSideEffectImport = true; return; } if (hasNonSideEffectImport) { context.report({ node, messageId: DEFAULT_MESSAGE_ID }); } }, }; }, }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLXNpZGUtZWZmZWN0LWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvdG9wLXNpZGUtZWZmZWN0LWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0lBQzdDLElBQUksRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEMsT0FBTyxFQUFFLG9FQUFvRTtJQUM3RSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNsQixJQUFJLHNCQUFzQixHQUFHLEtBQUssQ0FBQztRQUVuQyxPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsQ0FBQyxJQUF1QixFQUFFLEVBQUU7Z0JBQzdDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQy9CLHNCQUFzQixHQUFHLElBQUksQ0FBQztvQkFDOUIsT0FBTztnQkFDVCxDQUFDO2dCQUNELElBQUksc0JBQXNCLEVBQUUsQ0FBQztvQkFDM0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbXBvcnREZWNsYXJhdGlvbiB9IGZyb20gXCJlc3RyZWVcIjtcbmltcG9ydCB7IGNyZWF0ZVJ1bGUsIERFRkFVTFRfTUVTU0FHRV9JRCwgZ2V0UnVsZU5hbWUgfSBmcm9tIFwiLi4vY29tbW9uLnRzXCI7XG5cbmV4cG9ydCBjb25zdCB0b3BTaWRlRWZmZWN0SW1wb3J0cyA9IGNyZWF0ZVJ1bGUoe1xuICBuYW1lOiBnZXRSdWxlTmFtZShpbXBvcnQubWV0YS51cmwpLFxuICBtZXNzYWdlOiBcIlNpZGUgZWZmZWN0IGltcG9ydHMgbXVzdCBiZSBwbGFjZWQgYmVmb3JlIG90aGVyIGltcG9ydCBzdGF0ZW1lbnRzLlwiLFxuICBjcmVhdGU6IChjb250ZXh0KSA9PiB7XG4gICAgbGV0IGhhc05vblNpZGVFZmZlY3RJbXBvcnQgPSBmYWxzZTtcblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbjogKG5vZGU6IEltcG9ydERlY2xhcmF0aW9uKSA9PiB7XG4gICAgICAgIGlmIChub2RlLnNwZWNpZmllcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGhhc05vblNpZGVFZmZlY3RJbXBvcnQgPSB0cnVlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaGFzTm9uU2lkZUVmZmVjdEltcG9ydCkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZUlkOiBERUZBVUxUX01FU1NBR0VfSUQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbn0pO1xuIl19