1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const ts = require("typescript");
|
4 | const FS = require("fs");
|
5 | const path_1 = require("path");
|
6 | const existingDirectories = {};
|
7 | function normalizePath(path) {
|
8 | return path.replace(/\\/g, '/');
|
9 | }
|
10 | exports.normalizePath = normalizePath;
|
11 | function 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 | }
|
21 | exports.directoryExists = directoryExists;
|
22 | function ensureDirectoriesExist(directoryPath) {
|
23 | if (!directoryExists(directoryPath)) {
|
24 | const parentDirectory = path_1.dirname(directoryPath);
|
25 | ensureDirectoriesExist(parentDirectory);
|
26 | ts.sys.createDirectory(directoryPath);
|
27 | }
|
28 | }
|
29 | exports.ensureDirectoriesExist = ensureDirectoriesExist;
|
30 | function 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 | }
|
41 | exports.writeFile = writeFile;
|
42 | function 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 | }
|
69 | exports.readFile = readFile;
|
70 |
|
\ | No newline at end of file |