UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

25 lines (23 loc) 4.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const typescript_1 = tslib_1.__importDefault(require("typescript")); const getDiagnosticMessage_1 = require("./getDiagnosticMessage"); function throwOnDiagnosticErrorOrWarning(diagnostics, ignoreWarnings = false) { const errors = diagnostics.filter((diagnostic) => diagnostic.category === typescript_1.default.DiagnosticCategory.Error); const warnings = diagnostics.filter((diagnostic) => diagnostic.category === typescript_1.default.DiagnosticCategory.Warning); const errorMessage = errors.length === 0 ? undefined : errors.map((error) => `Compilation error: ${getDiagnosticMessage_1.getDiagnosticMessage(error)}`).join('\n'); const warningMessage = warnings.length === 0 ? undefined : warnings.map((warning) => `Compilation warning: ${getDiagnosticMessage_1.getDiagnosticMessage(warning)}`).join('\n'); if (errorMessage !== undefined) { throw new Error(`${errorMessage}${warningMessage === undefined ? '' : warningMessage}`); } if (warningMessage !== undefined && !ignoreWarnings) { throw new Error(warningMessage); } } exports.throwOnDiagnosticErrorOrWarning = throwOnDiagnosticErrorOrWarning; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRocm93T25EaWFnbm9zdGljRXJyb3JPcldhcm5pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQTRCO0FBRTVCLGlFQUE4RDtBQUU5RCxTQUFnQiwrQkFBK0IsQ0FBQyxXQUF5QyxFQUFFLGNBQWMsR0FBRyxLQUFLO0lBQy9HLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEtBQUssb0JBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxLQUFLLG9CQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0csTUFBTSxZQUFZLEdBQ2hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsMkNBQW9CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RixNQUFNLGNBQWMsR0FDbEIsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxTQUFTO1FBQ1gsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHdCQUF3QiwyQ0FBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BHLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRTtRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsWUFBWSxHQUFHLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztLQUN6RjtJQUVELElBQUksY0FBYyxLQUFLLFNBQVMsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQ2pDO0FBQ0gsQ0FBQztBQWxCRCwwRUFrQkMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvdXRpbHMvdGhyb3dPbkRpYWdub3N0aWNFcnJvck9yV2FybmluZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHsgZ2V0RGlhZ25vc3RpY01lc3NhZ2UgfSBmcm9tICcuL2dldERpYWdub3N0aWNNZXNzYWdlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93T25EaWFnbm9zdGljRXJyb3JPcldhcm5pbmcoZGlhZ25vc3RpY3M6IFJlYWRvbmx5QXJyYXk8dHMuRGlhZ25vc3RpYz4sIGlnbm9yZVdhcm5pbmdzID0gZmFsc2UpIHtcbiAgY29uc3QgZXJyb3JzID0gZGlhZ25vc3RpY3MuZmlsdGVyKChkaWFnbm9zdGljKSA9PiBkaWFnbm9zdGljLmNhdGVnb3J5ID09PSB0cy5EaWFnbm9zdGljQ2F0ZWdvcnkuRXJyb3IpO1xuICBjb25zdCB3YXJuaW5ncyA9IGRpYWdub3N0aWNzLmZpbHRlcigoZGlhZ25vc3RpYykgPT4gZGlhZ25vc3RpYy5jYXRlZ29yeSA9PT0gdHMuRGlhZ25vc3RpY0NhdGVnb3J5Lldhcm5pbmcpO1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgIGVycm9ycy5sZW5ndGggPT09IDBcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IGVycm9ycy5tYXAoKGVycm9yKSA9PiBgQ29tcGlsYXRpb24gZXJyb3I6ICR7Z2V0RGlhZ25vc3RpY01lc3NhZ2UoZXJyb3IpfWApLmpvaW4oJ1xcbicpO1xuICBjb25zdCB3YXJuaW5nTWVzc2FnZSA9XG4gICAgd2FybmluZ3MubGVuZ3RoID09PSAwXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiB3YXJuaW5ncy5tYXAoKHdhcm5pbmcpID0+IGBDb21waWxhdGlvbiB3YXJuaW5nOiAke2dldERpYWdub3N0aWNNZXNzYWdlKHdhcm5pbmcpfWApLmpvaW4oJ1xcbicpO1xuICBpZiAoZXJyb3JNZXNzYWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZXJyb3JNZXNzYWdlfSR7d2FybmluZ01lc3NhZ2UgPT09IHVuZGVmaW5lZCA/ICcnIDogd2FybmluZ01lc3NhZ2V9YCk7XG4gIH1cblxuICBpZiAod2FybmluZ01lc3NhZ2UgIT09IHVuZGVmaW5lZCAmJiAhaWdub3JlV2FybmluZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3Iod2FybmluZ01lc3NhZ2UpO1xuICB9XG59XG4iXX0=