intelligen
Version:
Generate VS Code intellisense from Service Now Instance data
73 lines (65 loc) • 2.33 kB
JavaScript
import { Console } from "console";
import fs, { mkdir } from 'fs';
import path from "path";
import directory from "./data.cjs";
const settings = {
"compilerOptions": {
"target": "ES6",
"allowJs": true,
"outDir": "build"
}
}
const dir = directory + '\\..\\..\\..\\'
const settingsFile = fs.createWriteStream(dir + '\\tsconfig.json')
const readmeFile = fs.readFileSync(directory + '\\help\\rd.txt','utf-8');
const readmeFileWriter = fs.createWriteStream(dir + '\\README.md');
const intelligenPlg = fs.readFileSync(directory + '\\help\\intelligen.txt','utf-8');
const intelligenPlgWriter = fs.createWriteStream(dir + '\\intelligen.xml');
const intelligenCons = new Console(intelligenPlgWriter);
intelligenCons.log(intelligenPlg);
const configWriter = new Console(settingsFile);
configWriter.log(JSON.stringify(settings));
const readMeCons = new Console(readmeFileWriter);
readMeCons.log(readmeFile);
fs.mkdir(path.join(dir, '.vscode'), {recursive: true}, () => cb());
const updSettings = {
"files.exclude": {
"autocomplete":true,
".vscode": true,
"*/system": true,
"node_modules": true,
"system": true,
"tsconfig.json": true,
"lib": true
},
"search.exclude": {
"**/node_modules": false,
"*/system": true,
"lib":true
}
}
const vcodeDir = dir + '\\.vscode\\settings.json'
const cb = () => {
try {
const vCodeSett = fs.readFileSync(vcodeDir,'utf-8');
let orgData = {};
if(vCodeSett) {
orgData = JSON.parse(vCodeSett);
};
orgData['search.exclude'] = {
...orgData["search.exclude"],
...updSettings["search.exclude"]
};
orgData['files.exclude'] = {
...orgData["files.exclude"],
...updSettings['files.exclude']
};
const newSettingsWrite = fs.createWriteStream(vcodeDir, 'utf-8');
const newConsole = new Console(newSettingsWrite);
newConsole.log(JSON.stringify(orgData))
} catch (err) {
const newSettingsWrite = fs.createWriteStream(vcodeDir, 'utf-8');
const newConsole = new Console(newSettingsWrite);
newConsole.log(JSON.stringify(updSettings));
}
}