typings-core
Version:
The logic of Typings
36 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var path_1 = require("path");
var isAbsolute = require("is-absolute");
var path_2 = require("./path");
exports.REFERENCE_REGEXP = /^\/\/\/[ \t]*<reference[ \t]+path[ \t]*=("|')(.*?)\1.*?\/>[ \t]*\r?\n?/gm;
function extractReferences(contents, cwd) {
var refs = [];
var m;
do {
m = exports.REFERENCE_REGEXP.exec(contents);
if (m == null) {
break;
}
refs.push({
start: m.index,
end: m.index + m[0].length,
path: path_1.resolve(cwd, m[2])
});
} while (m);
return refs;
}
exports.extractReferences = extractReferences;
function parseReferences(contents, cwd) {
return extractReferences(contents, cwd).map(function (ref) { return path_1.resolve(cwd, ref.path); });
}
exports.parseReferences = parseReferences;
function stringifyReferences(paths, cwd) {
return paths.map(function (path) { return toReference(path, cwd); }).join(path_2.EOL) + path_2.EOL;
}
exports.stringifyReferences = stringifyReferences;
function toReference(path, cwd) {
return "/// <reference path=\"" + path_2.normalizeSlashes(isAbsolute(path) ? path_1.relative(cwd, path) : path_1.normalize(path)) + "\" />";
}
exports.toReference = toReference;
//# sourceMappingURL=references.js.map