Fix script for esbuild sample which cannot import .ts files

This commit is contained in:
Alex Dima 2022-02-05 00:23:00 +01:00
parent 29a2735168
commit eed1e1cf27
No known key found for this signature in database
GPG Key ID: 39563C1504FDD0C9
3 changed files with 48 additions and 10 deletions

View File

@ -56,12 +56,7 @@ export function removeDir(_dirPath: string, keep?: (filename: string) => boolean
rmDir(dirPath, _dirPath);
console.log(`Deleted ${_dirPath}`);
/**
* @param {string} dirPath
* @param {string} relativeDirPath
* @returns {boolean}
*/
function rmDir(dirPath, relativeDirPath) {
function rmDir(dirPath: string, relativeDirPath: string): boolean {
let keepsFiles = false;
const entries = fs.readdirSync(dirPath);
for (const entry of entries) {

View File

@ -64,9 +64,8 @@ generateMetadata();
/**
* Release to `dev` or `min`.
* @param {'dev'|'min'} type
*/
function AMD_releaseOne(type) {
function AMD_releaseOne(type: 'dev' | 'min') {
const coreFiles = readFiles(`node_modules/monaco-editor-core/${type}/**/*`, {
base: `node_modules/monaco-editor-core/${type}`
});

View File

@ -7,9 +7,9 @@
const esbuild = require('esbuild');
const path = require('path');
const { removeDir } = require('../../build/fs');
const fs = require('fs');
removeDir('samples/browser-esm-esbuild/dist', (entry) => /index.html$/.test(entry));
removeDir('dist', (entry) => /index.html$/.test(entry));
const workerEntryPoints = [
'vs/language/json/json.worker.js',
@ -50,3 +50,47 @@ function build(opts) {
}
});
}
/**
* Remove a directory and all its contents.
* @param {string} _dirPath
* @param {(filename: string) => boolean} [keep]
*/
function removeDir(_dirPath, keep) {
if (typeof keep === 'undefined') {
keep = () => false;
}
const dirPath = path.join(__dirname, _dirPath);
if (!fs.existsSync(dirPath)) {
return;
}
rmDir(dirPath, _dirPath);
console.log(`Deleted ${_dirPath}`);
/**
* @param {string} dirPath
* @param {string} relativeDirPath
* @returns {boolean}
*/
function rmDir(dirPath, relativeDirPath) {
let keepsFiles = false;
const entries = fs.readdirSync(dirPath);
for (const entry of entries) {
const filePath = path.join(dirPath, entry);
const relativeFilePath = path.join(relativeDirPath, entry);
if (keep(relativeFilePath)) {
keepsFiles = true;
continue;
}
if (fs.statSync(filePath).isFile()) {
fs.unlinkSync(filePath);
} else {
keepsFiles = rmDir(filePath, relativeFilePath) || keepsFiles;
}
}
if (!keepsFiles) {
fs.rmdirSync(dirPath);
}
return keepsFiles;
}
}