UNPKG

eslint-plugin-esm

Version:
22 lines 2.83 kB
import { createRule, DEFAULT_MESSAGE_ID, getRuleName } from "../common.js"; export const requiredExports = createRule({ name: getRuleName(import.meta.url), message: "It's required at least one `export` statement in a file.", create: (context) => { let existExport = false; const hasExport = () => { existExport = true; }; return { ExportAllDeclaration: () => hasExport(), ExportDefaultDeclaration: () => hasExport(), ExportNamedDeclaration: () => hasExport(), "Program:exit": (node) => { if (!existExport) { context.report({ node, messageId: DEFAULT_MESSAGE_ID }); } }, }; }, }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9yZXF1aXJlZC1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUM7SUFDeEMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQyxPQUFPLEVBQUUsMERBQTBEO0lBQ25FLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2xCLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN4QixNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7WUFDckIsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDLENBQUM7UUFDRixPQUFPO1lBQ0wsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFO1lBQ3ZDLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRTtZQUMzQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUU7WUFDekMsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDakIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUnVsZSwgREVGQVVMVF9NRVNTQUdFX0lELCBnZXRSdWxlTmFtZSB9IGZyb20gXCIuLi9jb21tb24udHNcIjtcblxuZXhwb3J0IGNvbnN0IHJlcXVpcmVkRXhwb3J0cyA9IGNyZWF0ZVJ1bGUoe1xuICBuYW1lOiBnZXRSdWxlTmFtZShpbXBvcnQubWV0YS51cmwpLFxuICBtZXNzYWdlOiBcIkl0J3MgcmVxdWlyZWQgYXQgbGVhc3Qgb25lIGBleHBvcnRgIHN0YXRlbWVudCBpbiBhIGZpbGUuXCIsXG4gIGNyZWF0ZTogKGNvbnRleHQpID0+IHtcbiAgICBsZXQgZXhpc3RFeHBvcnQgPSBmYWxzZTtcbiAgICBjb25zdCBoYXNFeHBvcnQgPSAoKSA9PiB7XG4gICAgICBleGlzdEV4cG9ydCA9IHRydWU7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgRXhwb3J0QWxsRGVjbGFyYXRpb246ICgpID0+IGhhc0V4cG9ydCgpLFxuICAgICAgRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uOiAoKSA9PiBoYXNFeHBvcnQoKSxcbiAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb246ICgpID0+IGhhc0V4cG9ydCgpLFxuICAgICAgXCJQcm9ncmFtOmV4aXRcIjogKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKCFleGlzdEV4cG9ydCkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZUlkOiBERUZBVUxUX01FU1NBR0VfSUQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbn0pO1xuIl19