UNPKG

2.14 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const ts = require("typescript");
4const FS = require("fs");
5const path_1 = require("path");
6const existingDirectories = {};
7function normalizePath(path) {
8 return path.replace(/\\/g, '/');
9}
10exports.normalizePath = normalizePath;
11function directoryExists(directoryPath) {
12 if (existingDirectories.hasOwnProperty(directoryPath)) {
13 return true;
14 }
15 if (ts.sys.directoryExists(directoryPath)) {
16 existingDirectories[directoryPath] = true;
17 return true;
18 }
19 return false;
20}
21exports.directoryExists = directoryExists;
22function ensureDirectoriesExist(directoryPath) {
23 if (!directoryExists(directoryPath)) {
24 const parentDirectory = path_1.dirname(directoryPath);
25 ensureDirectoriesExist(parentDirectory);
26 ts.sys.createDirectory(directoryPath);
27 }
28}
29exports.ensureDirectoriesExist = ensureDirectoriesExist;
30function writeFile(fileName, data, writeByteOrderMark, onError) {
31 try {
32 ensureDirectoriesExist(path_1.dirname(normalizePath(fileName)));
33 ts.sys.writeFile(fileName, data, writeByteOrderMark);
34 }
35 catch (e) {
36 if (onError) {
37 onError(e.message);
38 }
39 }
40}
41exports.writeFile = writeFile;
42function readFile(file) {
43 const buffer = FS.readFileSync(file);
44 switch (buffer[0]) {
45 case 0xFE:
46 if (buffer[1] === 0xFF) {
47 let i = 0;
48 while ((i + 1) < buffer.length) {
49 const temp = buffer[i];
50 buffer[i] = buffer[i + 1];
51 buffer[i + 1] = temp;
52 i += 2;
53 }
54 return buffer.toString('ucs2', 2);
55 }
56 break;
57 case 0xFF:
58 if (buffer[1] === 0xFE) {
59 return buffer.toString('ucs2', 2);
60 }
61 break;
62 case 0xEF:
63 if (buffer[1] === 0xBB) {
64 return buffer.toString('utf8', 3);
65 }
66 }
67 return buffer.toString('utf8', 0);
68}
69exports.readFile = readFile;
70//# sourceMappingURL=fs.js.map
\No newline at end of file