Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (iOpts.completeCopy()) {
includes = ['**/*'];
} else {
includes = iOpts.extensions().map(ext => '**/*' + ext);
}
if (!input) {
return callback(new Error('No input specified'));
}
instrumenter = libInstrument.createInstrumenter(
iOpts.getInstrumenterOpts()
);
if (needBaseline) {
mkdirp.sync(path.dirname(baselineFile));
instrumenter = new BaselineCollector(instrumenter);
callback = function(err) {
/* istanbul ignore else */
if (!err) {
console.error('Saving baseline coverage at ' + baselineFile);
fs.writeFileSync(
baselineFile,
JSON.stringify(instrumenter.getCoverage()),
'utf8'
);
}
return origCallback(err);
};
}
const file = path.resolve(input);
datamodel,
datamodelPath,
schemaDir,
transpile,
runtimePath,
browser,
outputDir,
generator,
version,
dmmf,
datasources,
binaryPaths,
})
debug(`makeDir: ${outputDir}`)
await makeDir(outputDir)
await Promise.all(
Object.entries(fileMap).map(async ([fileName, file]) => {
const filePath = path.join(outputDir, fileName)
// The deletion of the file is necessary, so VSCode
// picks up the changes.
if (await exists(filePath)) {
await remove(filePath)
}
await writeFile(filePath, file)
}),
)
const inputDir = testMode
? eval(`require('path').join(__dirname, '../../runtime')`) // tslint:disable-line
: eval(`require('path').join(__dirname, '../runtime')`) // tslint:disable-line
// if users use a custom output dir
async _createNewTmpDir () {
this.path = tmp.tmpNameSync({ dir: TempDirectory.TEMP_DIRECTORIES_ROOT, prefix: this.namePrefix + '-' });
await makeDir(this.path);
this.lockFile = new LockFile(this.path);
this.lockFile.init();
}
].forEach(file => {
const content = ``;
if (!existsSync(file.from)) {
makeDir.sync(file.from);
}
writeFileSync(join(file.from, 'index.html'), content);
});
};
async _ensureOutStream (outStream) {
if (typeof outStream !== 'string')
return outStream;
const fullReporterOutputPath = resolvePathRelativelyCwd(outStream);
await makeDir(path.dirname(fullReporterOutputPath));
return fs.createWriteStream(fullReporterOutputPath);
}
if (example) {
const found = await hasExample(example)
if (!found) {
console.error(
`Could not locate an example named ${chalk.red(
`"${example}"`
)}. Please check your spelling and try again.`
)
process.exit(1)
}
}
const root = path.resolve(appPath)
const appName = path.basename(root)
await makeDir(root)
if (!isFolderEmpty(root, appName)) {
process.exit(1)
}
const useYarn = useNpm ? false : shouldUseYarn()
const isOnline = !useYarn || (await getOnline())
const originalDirectory = process.cwd()
const displayedCommand = useYarn ? 'yarn' : 'npm'
console.log(`Creating a new Next.js app in ${chalk.green(root)}.`)
console.log()
await makeDir(root)
process.chdir(root)
if (example) {
return count;
} else {
const filename = filenameOrDir;
const written = await handleFile(filename, path.dirname(filename));
return written ? 1 : 0;
}
}
if (!cliOptions.skipInitialBuild) {
if (cliOptions.deleteDirOnStart) {
util.deleteDir(cliOptions.outDir);
}
makeDirSync(cliOptions.outDir);
let compiledFiles = 0;
for (const filename of cliOptions.filenames) {
compiledFiles += await handle(filename);
}
if (!cliOptions.quiet) {
console.log(
`Successfully compiled ${compiledFiles} ${
compiledFiles !== 1 ? "files" : "file"
} with Babel.`,
);
}
}
if (cliOptions.watch) {
const visitor = relFile => {
const inFile = path.resolve(inputDir, relFile)
const inCode = fs.readFileSync(inFile, 'utf-8')
const outCode = this._transform(inCode, inFile) || inCode
if (output) {
const mode = fs.statSync(inFile).mode
const outFile = path.resolve(output, relFile)
mkdirp.sync(path.dirname(outFile))
fs.writeFileSync(outFile, outCode)
fs.chmodSync(outFile, mode)
} else {
console.log(outCode)
}
}
createTempDirectory () {
mkdirp.sync(this.tempDirectory())
if (this.cache) mkdirp.sync(this.cacheDirectory)
mkdirp.sync(this.processInfoDirectory())
}
function outputFileSync(filePath: string, data: string | Buffer): void {
makeDirSync(path.dirname(filePath));
fs.writeFileSync(filePath, data);
}