@locker/eslint-plugin-locker
Version:
Lightning Web Security ESLint rules
33 lines (32 loc) • 1.63 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.docURL = exports.createSetterMessageHandler = exports.createGetterMessageHandler = void 0;
const node_fs_1 = __importDefault(require("node:fs"));
const node_path_1 = __importDefault(require("node:path"));
// Reference the documentation mirror until this repo is publicly accessible.
const BASE_DOC_URL = 'https://github.com/salesforce/lwsec-docs-mirror';
const pkgJSONPath = node_path_1.default.resolve(__dirname, '../package.json');
const { version } = JSON.parse(node_fs_1.default.readFileSync(pkgJSONPath, 'utf8'));
function createAccessorMessageHandler(accessorType) {
return function onMessage(data) {
const dotName = data.pattern.slice(2);
const nodeText = data.context.getSourceCode().getText(data.node);
const matchedText = nodeText.slice(0, nodeText.indexOf(dotName) + dotName.length);
return `The ${matchedText} ${accessorType} is distorted by Lightning Web Security.`;
};
}
function createGetterMessageHandler() {
return createAccessorMessageHandler('getter');
}
exports.createGetterMessageHandler = createGetterMessageHandler;
function createSetterMessageHandler() {
return createAccessorMessageHandler('setter');
}
exports.createSetterMessageHandler = createSetterMessageHandler;
function docURL(ruleName) {
return `${BASE_DOC_URL}/blob/v${version}/packages/%40locker/eslint-plugin-locker/docs/rules/${ruleName}.md`;
}
exports.docURL = docURL;