parent
c592891dde
commit
c9dfd2b5b9
@ -1,26 +1,26 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const realFs = require("fs"); |
import realFs = require("fs"); |
||||||
const fs = require("graceful-fs"); |
import fs = require("graceful-fs"); |
||||||
|
|
||||||
fs.gracefulify(realFs); |
fs.gracefulify(realFs); |
||||||
|
|
||||||
const express = require("express"); |
import express = require("express"); |
||||||
const routes = require("./routes"); |
import routes = require("./routes"); |
||||||
const http = require("http"); |
import http = require("http"); |
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const serveFavicon = require("serve-favicon"); |
import serveFavicon = require("serve-favicon"); |
||||||
const morgan = require("morgan"); |
import morgan = require("morgan"); |
||||||
const bodyParser = require("body-parser"); |
import bodyParser = require("body-parser"); |
||||||
const methodOverride = require("method-override"); |
import methodOverride = require("method-override"); |
||||||
const serveStatic = require("serve-static"); |
import serveStatic = require("serve-static"); |
||||||
const errorhandler = require("errorhandler"); |
import errorhandler = require("errorhandler"); |
||||||
|
|
||||||
const settings = require("./settings"); |
import settings = require("./settings"); |
||||||
|
|
||||||
const app = express(); |
const app = express(); |
||||||
|
|
||||||
app.set("port", process.env.PORT || settings.port); // eslint-disable-line no-process-env
|
app.set("port", settings.port); // eslint-disable-line no-process-env
|
||||||
app.set("views", path.join(__dirname, "views")); |
app.set("views", path.join(__dirname, "views")); |
||||||
app.set("view engine", "jade"); |
app.set("view engine", "jade"); |
||||||
app.set("gitpath", settings.gitpath); |
app.set("gitpath", settings.gitpath); |
@ -1,3 +0,0 @@ |
|||||||
"use strict"; |
|
||||||
|
|
||||||
exports.send = (message, callback) => process.nextTick(callback); |
|
@ -0,0 +1,3 @@ |
|||||||
|
"use strict"; |
||||||
|
|
||||||
|
export const send = (message, callback) => process.nextTick(callback); |
@ -1,8 +1,8 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const glob = require("glob"); |
import glob = require("glob"); |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => glob("**/obj/{Debug,Release}/*.{dll,pdb,xml}", { |
"process": () => glob("**/obj/{Debug,Release}/*.{dll,pdb,xml}", { |
||||||
"cwd": processor.context.exported, |
"cwd": processor.context.exported, |
||||||
"dot": true |
"dot": true |
@ -1,6 +1,6 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
module.exports = (params, processor) => { |
export = (params, processor) => { |
||||||
const condition = (!params.owner || params.owner === processor.context.owner) |
const condition = (!params.owner || params.owner === processor.context.owner) |
||||||
&& (!params.branch || params.branch === processor.context.branch || `refs/heads/${params.branch}` === processor.context.branch); |
&& (!params.branch || params.branch === processor.context.branch || `refs/heads/${params.branch}` === processor.context.branch); |
||||||
const task = (condition && params.task) || params.otherwise; |
const task = (condition && params.task) || params.otherwise; |
@ -1,9 +1,9 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const fse = require("fs-extra"); |
import fse = require("fs-extra"); |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
const sourceFilePath = path.join(processor.context.exported, params.filename); |
const sourceFilePath = path.join(processor.context.exported, params.filename); |
||||||
const targetFilePath = path.join(processor.context.release, params.filename); |
const targetFilePath = path.join(processor.context.release, params.filename); |
@ -1,8 +1,8 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const glob = require("glob"); |
import glob = require("glob"); |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => glob(params.mask, { |
"process": () => glob(params.mask, { |
||||||
"cwd": processor.context.exported, |
"cwd": processor.context.exported, |
||||||
"dot": true |
"dot": true |
@ -1,10 +1,10 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const fs = require("fs"); |
import fs = require("fs"); |
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const cssnano = require("cssnano"); |
import cssnano = require("cssnano"); |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
const filePath = path.join(processor.context.exported, params.filename); |
const filePath = path.join(processor.context.exported, params.filename); |
||||||
|
|
@ -1,9 +1,9 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const glob = require("glob"); |
import glob = require("glob"); |
||||||
const flagDoneName = "cssnanoallDone"; |
const flagDoneName = "cssnanoallDone"; |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
if (processor.context.containsFlag(flagDoneName)) { |
if (processor.context.containsFlag(flagDoneName)) { |
||||||
processor.onWarn("cssnanoall task is executed more than once; this is probably a bug in your mbs.json"); |
processor.onWarn("cssnanoall task is executed more than once; this is probably a bug in your mbs.json"); |
@ -1,9 +1,9 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const fse = require("fs-extra"); |
import fse = require("fs-extra"); |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
const sourceFilePath = path.join(processor.context.exported, params.filename); |
const sourceFilePath = path.join(processor.context.exported, params.filename); |
||||||
|
|
@ -1,8 +1,8 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const sequential = require("./sequential"); |
import sequential = require("./sequential"); |
||||||
|
|
||||||
module.exports = (params, processor) => sequential({ |
export = (params, processor) => sequential({ |
||||||
"tasks": [ |
"tasks": [ |
||||||
{ |
{ |
||||||
"name": "build", |
"name": "build", |
@ -1,8 +1,8 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const sequential = require("./sequential"); |
import sequential = require("./sequential"); |
||||||
|
|
||||||
module.exports = (params, processor) => sequential({ |
export = (params, processor) => sequential({ |
||||||
"tasks": [ |
"tasks": [ |
||||||
{ |
{ |
||||||
"name": "build", |
"name": "build", |
@ -1,11 +1,11 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const _ = require("underscore"); |
import _ = require("underscore"); |
||||||
const settings = require("../../settings"); |
import settings = require("../../settings"); |
||||||
const dotnetbuilderwrapper = require("./dotnetbuilderwrapper"); |
import dotnetbuilderwrapper = require("./dotnetbuilderwrapper"); |
||||||
|
|
||||||
module.exports = (params, processor) => { |
export = (params, processor) => { |
||||||
if (settings.isCodeAnalysisUnsupported && params.forceCodeAnalysis) { |
if (settings.isCodeAnalysisUnsupported && params.forceCodeAnalysis) { |
||||||
processor.onError("Code analysis is not supported"); |
processor.onError("Code analysis is not supported"); |
||||||
|
|
@ -1,11 +0,0 @@ |
|||||||
"use strict"; |
|
||||||
|
|
||||||
const _ = require("underscore"); |
|
||||||
const dotnetnugetprocessinternal = require("./dotnetnugetprocessinternal"); |
|
||||||
|
|
||||||
module.exports = (params, processor) => dotnetnugetprocessinternal(_.extendOwn(params, { |
|
||||||
"getFinalTask": (nupkg) => ({ |
|
||||||
"params": { "filename": nupkg }, |
|
||||||
"type": "copy" |
|
||||||
}) |
|
||||||
}), processor); |
|
@ -0,0 +1,11 @@ |
|||||||
|
"use strict"; |
||||||
|
|
||||||
|
import _ = require("underscore"); |
||||||
|
import dotnetnugetprocessinternal = require("./dotnetnugetprocessinternal"); |
||||||
|
|
||||||
|
export = (params, processor) => dotnetnugetprocessinternal(_.extendOwn(params, { |
||||||
|
"getFinalTask": (nupkg) => ({ |
||||||
|
"params": { "filename": nupkg }, |
||||||
|
"type": "copy" |
||||||
|
}) |
||||||
|
}), processor); |
@ -1,8 +1,8 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const conditional = require("./conditional"); |
import conditional = require("./conditional"); |
||||||
|
|
||||||
module.exports = (params, processor) => conditional({ |
export = (params, processor) => conditional({ |
||||||
"branch": "master", |
"branch": "master", |
||||||
"otherwise": { |
"otherwise": { |
||||||
"name": "nuget-pack", |
"name": "nuget-pack", |
@ -1,11 +0,0 @@ |
|||||||
"use strict"; |
|
||||||
|
|
||||||
const _ = require("underscore"); |
|
||||||
const dotnetnugetprocessinternal = require("./dotnetnugetprocessinternal"); |
|
||||||
|
|
||||||
module.exports = (params, processor) => dotnetnugetprocessinternal(_.extendOwn(params, { |
|
||||||
"getFinalTask": (nupkg) => ({ |
|
||||||
"params": { "Package": nupkg }, |
|
||||||
"type": "dotnetnugetpushonly" |
|
||||||
}) |
|
||||||
}), processor); |
|
@ -0,0 +1,11 @@ |
|||||||
|
"use strict"; |
||||||
|
|
||||||
|
import _ = require("underscore"); |
||||||
|
import dotnetnugetprocessinternal = require("./dotnetnugetprocessinternal"); |
||||||
|
|
||||||
|
export = (params, processor) => dotnetnugetprocessinternal(_.extendOwn(params, { |
||||||
|
"getFinalTask": (nupkg) => ({ |
||||||
|
"params": { "Package": nupkg }, |
||||||
|
"type": "dotnetnugetpushonly" |
||||||
|
}) |
||||||
|
}), processor); |
@ -1,10 +1,10 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const dotnetbuilderwrapper = require("./dotnetbuilderwrapper"); |
import dotnetbuilderwrapper = require("./dotnetbuilderwrapper"); |
||||||
const settings = require("../../settings"); |
import settings = require("../../settings"); |
||||||
|
|
||||||
module.exports = (params, processor) => dotnetbuilderwrapper({ |
export = (params, processor) => dotnetbuilderwrapper({ |
||||||
"ApiKey": settings.nugetApiKey, |
"ApiKey": settings.nugetApiKey, |
||||||
"NugetHost": settings.nugetHost, |
"NugetHost": settings.nugetHost, |
||||||
"Package": path.join(processor.context.exported, params.Package), |
"Package": path.join(processor.context.exported, params.Package), |
@ -1,9 +1,9 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const sequential = require("./sequential"); |
import sequential = require("./sequential"); |
||||||
|
|
||||||
module.exports = (params, processor) => sequential({ |
export = (params, processor) => sequential({ |
||||||
"tasks": [ |
"tasks": [ |
||||||
{ |
{ |
||||||
"params": { |
"params": { |
@ -1,9 +0,0 @@ |
|||||||
"use strict"; |
|
||||||
|
|
||||||
const path = require("path"); |
|
||||||
const dotNetBuilderWrapper = require("./dotnetbuilderwrapper"); |
|
||||||
|
|
||||||
module.exports = (params, processor) => dotNetBuilderWrapper({ |
|
||||||
"TestLibraryPath": path.join(processor.context.exported, params.assembly), |
|
||||||
"command": "nunit" |
|
||||||
}, processor); |
|
@ -0,0 +1,9 @@ |
|||||||
|
"use strict"; |
||||||
|
|
||||||
|
import path = require("path"); |
||||||
|
import dotNetBuilderWrapper = require("./dotnetbuilderwrapper"); |
||||||
|
|
||||||
|
export = (params, processor) => dotNetBuilderWrapper({ |
||||||
|
"TestLibraryPath": path.join(processor.context.exported, params.assembly), |
||||||
|
"command": "nunit" |
||||||
|
}, processor); |
@ -1,9 +1,9 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const glob = require("glob"); |
import glob = require("glob"); |
||||||
const flagDoneName = "dotnetnunitallDone"; |
const flagDoneName = "dotnetnunitallDone"; |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
if (processor.context.containsFlag(flagDoneName)) { |
if (processor.context.containsFlag(flagDoneName)) { |
||||||
processor.onWarn("dotnetnunitall task is executed more than once; this is probably a bug in your mbs.json"); |
processor.onWarn("dotnetnunitall task is executed more than once; this is probably a bug in your mbs.json"); |
@ -1,6 +1,6 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
if (params.error) { |
if (params.error) { |
||||||
processor.onError(params.error); |
processor.onError(params.error); |
@ -1,13 +1,13 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const CLIEngine = require("eslint").CLIEngine; |
import { CLIEngine } from "eslint"; |
||||||
const settings = require("../../settings"); |
import settings = require("../../settings"); |
||||||
const cli = new CLIEngine({ "configFile": settings.eslintBrowserConfig }); |
const cli = new CLIEngine({ "configFile": settings.eslintBrowserConfig }); |
||||||
|
|
||||||
const errorSeverity = 2; |
const errorSeverity = 2; |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
const filePath = path.join(processor.context.exported, params.filename); |
const filePath = path.join(processor.context.exported, params.filename); |
||||||
const result = cli.executeOnFiles([filePath]); |
const result = cli.executeOnFiles([filePath]); |
@ -1,9 +1,9 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const glob = require("glob"); |
import glob = require("glob"); |
||||||
const flagDoneName = "eslintbrowserallDone"; |
const flagDoneName = "eslintbrowserallDone"; |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
if (processor.context.containsFlag(flagDoneName)) { |
if (processor.context.containsFlag(flagDoneName)) { |
||||||
processor.onWarn("eslintbrowserall task is executed more than once; this is probably a bug in your mbs.json"); |
processor.onWarn("eslintbrowserall task is executed more than once; this is probably a bug in your mbs.json"); |
@ -1,13 +1,17 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
|
var tasks = {}; |
||||||
|
|
||||||
// Code taken from http://stackoverflow.com/a/17204293
|
// Code taken from http://stackoverflow.com/a/17204293
|
||||||
// eslint-disable-next-line no-sync
|
// eslint-disable-next-line no-sync
|
||||||
require("fs").readdirSync(__dirname) |
require("fs").readdirSync(__dirname) |
||||||
.forEach((file) => { |
.forEach((file) => { |
||||||
if (file.match(/\.js$/) !== null && file !== "index.js") { |
if (file.match(/\.ts$/) !== null && file !== "index.ts") { |
||||||
const name = file.replace(".js", ""); |
const name = file.replace(".ts", ""); |
||||||
|
|
||||||
// eslint-disable-next-line global-require
|
// eslint-disable-next-line global-require
|
||||||
exports[name] = require(`./${file}`); |
tasks[name] = require(`./${file}`); |
||||||
} |
} |
||||||
}); |
}); |
||||||
|
|
||||||
|
export default tasks; |
@ -1,3 +0,0 @@ |
|||||||
"use strict"; |
|
||||||
|
|
||||||
module.exports = (params, processor) => ({ "process": () => processor.done() }); |
|
@ -0,0 +1,3 @@ |
|||||||
|
"use strict"; |
||||||
|
|
||||||
|
export = (params, processor) => ({ "process": () => processor.done() }); |
@ -1,8 +1,8 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const sequential = require("./sequential"); |
import sequential = require("./sequential"); |
||||||
|
|
||||||
module.exports = (params, processor) => sequential({ |
export = (params, processor) => sequential({ |
||||||
"tasks": [ |
"tasks": [ |
||||||
{ |
{ |
||||||
"params": { "excludeFiles": params.eslintExcludeFiles }, |
"params": { "excludeFiles": params.eslintExcludeFiles }, |
@ -1,7 +0,0 @@ |
|||||||
"use strict"; |
|
||||||
|
|
||||||
const async = require("async"); |
|
||||||
|
|
||||||
const mapper = (processor) => (task) => (callback) => processor.processTask(task, callback); |
|
||||||
|
|
||||||
module.exports = (params, processor) => ({ "process": () => async.parallel(params.tasks.map(mapper(processor)), () => processor.done()) }); |
|
@ -0,0 +1,7 @@ |
|||||||
|
"use strict"; |
||||||
|
|
||||||
|
import async = require("async"); |
||||||
|
|
||||||
|
const mapper = (processor) => (task) => (callback) => processor.processTask(task, callback); |
||||||
|
|
||||||
|
export = (params, processor) => ({ "process": () => async.parallel(params.tasks.map(mapper(processor)), () => processor.done()) }); |
@ -1,7 +0,0 @@ |
|||||||
"use strict"; |
|
||||||
|
|
||||||
const async = require("async"); |
|
||||||
|
|
||||||
const mapper = (processor) => (task) => (callback) => processor.processTask(task, callback); |
|
||||||
|
|
||||||
module.exports = (params, processor) => ({ "process": () => async.series(params.tasks.map(mapper(processor)), () => processor.done()) }); |
|
@ -0,0 +1,7 @@ |
|||||||
|
"use strict"; |
||||||
|
|
||||||
|
import async = require("async"); |
||||||
|
|
||||||
|
const mapper = (processor) => (task) => (callback) => processor.processTask(task, callback); |
||||||
|
|
||||||
|
export = (params, processor) => ({ "process": () => async.series(params.tasks.map(mapper(processor)), () => processor.done()) }); |
@ -1,10 +1,10 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const fs = require("fs"); |
import fs = require("fs"); |
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const UglifyJS = require("uglify-js"); |
import UglifyJS = require("uglify-js"); |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
const filePath = path.normalize(path.join(processor.context.exported, params.filename)); |
const filePath = path.normalize(path.join(processor.context.exported, params.filename)); |
||||||
const result = UglifyJS.minify(filePath); |
const result = UglifyJS.minify(filePath); |
@ -1,10 +1,10 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const glob = require("glob"); |
import glob = require("glob"); |
||||||
|
|
||||||
const doneFlagName = "uglifyjsallDone"; |
const doneFlagName = "uglifyjsallDone"; |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
if (processor.context.containsFlag(doneFlagName)) { |
if (processor.context.containsFlag(doneFlagName)) { |
||||||
processor.onWarn("dotnetnunitall task is executed more than once; this is probably a bug in your mbs.json"); |
processor.onWarn("dotnetnunitall task is executed more than once; this is probably a bug in your mbs.json"); |
@ -1,9 +1,9 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const fs = require("fs"); |
import fs = require("fs"); |
||||||
const path = require("path"); |
import path = require("path"); |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
const filePath = path.join(processor.context.exported, params.filename); |
const filePath = path.join(processor.context.exported, params.filename); |
||||||
|
|
@ -1,10 +1,10 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
const fs = require("fs"); |
import fs = require("fs"); |
||||||
const path = require("path"); |
import path = require("path"); |
||||||
const Archiver = require("archiver"); |
import Archiver = require("archiver"); |
||||||
|
|
||||||
module.exports = (params, processor) => ({ |
export = (params, processor) => ({ |
||||||
"process": () => { |
"process": () => { |
||||||
const sourceDirectoryPath = path.normalize(path.join(processor.context.exported, String(params.directory || ""))); |
const sourceDirectoryPath = path.normalize(path.join(processor.context.exported, String(params.directory || ""))); |
||||||
const targetArchivePath = path.normalize(path.join(processor.context.release, params.archive)); |
const targetArchivePath = path.normalize(path.join(processor.context.release, params.archive)); |
@ -1,6 +1,6 @@ |
|||||||
"use strict"; |
"use strict"; |
||||||
|
|
||||||
module.exports = (req, res) => { |
export = (req, res) => { |
||||||
const options = { |
const options = { |
||||||
"branch": `/refs/heads/${req.params.branch}`, |
"branch": `/refs/heads/${req.params.branch}`, |
||||||
"branchName": req.params.branch, |
"branchName": req.params.branch, |
@ -1,9 +0,0 @@ |
|||||||
"use strict"; |
|
||||||
|
|
||||||
exports.index = (req, res) => res.render("index", { "title": `Express<br/>\r\n${req}` }); |
|
||||||
|
|
||||||
exports.postreceive = require("./postreceive"); |
|
||||||
exports.manual = require("./manual"); |
|
||||||
exports.status = require("./status"); |
|
||||||
exports.artifact = require("./artifact"); |
|
||||||
exports.release = require("./release"); |
|
@ -0,0 +1,12 @@ |
|||||||
|
"use strict"; |
||||||
|
|
||||||
|
import postreceive = require("./postreceive"); |
||||||
|
import manual = require("./manual"); |
||||||
|
import status = require("./status"); |
||||||
|
import artifact = require("./artifact"); |
||||||
|
import release = require("./release"); |
||||||
|
|
||||||
|
const index = (req, res) => res.render("index", { "title": `Express<br/>\r\n${req}` }); |
||||||
|
|
||||||
|
export { index, postreceive, manual, status, artifact, release }; |
||||||
|
|
@ -0,0 +1,8 @@ |
|||||||
|
{ |
||||||
|
"compilerOptions": { |
||||||
|
"target": "es6", |
||||||
|
"typeRoots": [ |
||||||
|
"node_modules/@types" |
||||||
|
] |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue