dockerfile-language-service
Version:
A language service for Dockerfiles to enable the creation of feature-rich Dockerfile editors.
91 lines (90 loc) • 3.38 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports"], factory);
}
})(function (require, exports) {
/* --------------------------------------------------------------------------------------------
* Copyright (c) Remy Suen. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
* ------------------------------------------------------------------------------------------ */
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.Util = exports.KEYWORDS = void 0;
exports.KEYWORDS = [
"ADD",
"ARG",
"CMD",
"COPY",
"ENTRYPOINT",
"ENV",
"EXPOSE",
"FROM",
"HEALTHCHECK",
"LABEL",
"MAINTAINER",
"ONBUILD",
"RUN",
"SHELL",
"STOPSIGNAL",
"USER",
"VOLUME",
"WORKDIR"
];
var Util = /** @class */ (function () {
function Util() {
}
Util.isWhitespace = function (char) {
return char === ' ' || char === '\t' || Util.isNewline(char);
};
Util.isNewline = function (char) {
return char === '\r' || char === '\n';
};
/**
* Determines if the given position is contained within the given range.
*
* @param position the position to check
* @param range the range to see if the position is inside of
*/
Util.isInsideRange = function (position, range) {
if (range === null) {
return false;
}
else if (range.start.line === range.end.line) {
return range.start.line === position.line
&& range.start.character <= position.character
&& position.character <= range.end.character;
}
else if (range.start.line === position.line) {
return range.start.character <= position.character;
}
else if (range.end.line === position.line) {
return position.character <= range.end.character;
}
return range.start.line < position.line && position.line < range.end.line;
};
Util.isEmpty = function (range) {
return range.start.line === range.end.line && range.start.character === range.end.character;
};
Util.rangeEquals = function (range, range2) {
return Util.positionEquals(range.start, range2.start) && Util.positionEquals(range.end, range2.end);
};
Util.positionEquals = function (position, position2) {
return position.line == position2.line && position.character === position2.character;
};
Util.positionBefore = function (origin, other) {
if (origin.line < other.line) {
return true;
}
else if (origin.line > other.line) {
return false;
}
return origin.character < other.character;
};
return Util;
}());
exports.Util = Util;
});