Skip to content

Commit

Permalink
chore: implement renameFiles as typescript, and update script accordi…
Browse files Browse the repository at this point in the history
…ngly
  • Loading branch information
kleekich21 committed Jul 2, 2024
1 parent 31c55fa commit a8e836b
Show file tree
Hide file tree
Showing 5 changed files with 100 additions and 53 deletions.
6 changes: 6 additions & 0 deletions build/cjs/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@
},
"scripts": {
"test": "jest",
"build": "npm run build:cjs && npm run build:esm && npm run rename",
"build": "npm run build:cjs && npm run build:esm && npm run build:rename && npm run rename",
"build:cjs": "tsc --p ./cjs/tsconfig.json",
"build:esm": "tsc --p ./esm/tsconfig.json",
"build:rename": "npx tsc renameFiles.ts",
"build:clean": "rm -rf ./build",
"rename": "node renameFiles.js",
"lint": "pnpm eslint",
Expand Down Expand Up @@ -49,6 +50,7 @@
"@jest/globals": "^29.7.0",
"@types/eslint__js": "^8.42.3",
"@types/jest": "^29.5.12",
"@types/node": "^20.14.9",
"babel-jest": "^29.7.0",
"eslint": "^9.5.0",
"eslint-config-prettier": "^9.1.0",
Expand Down
69 changes: 36 additions & 33 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 24 additions & 19 deletions renameFiles.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,29 @@
import fs from 'fs';
import path from 'path';

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var fs = require("fs");
var path = require("path");
/**
* 주어진 디렉토리에서 특정 확장자의 파일을 다른 확장자로 변경하는 함수
* @param directory - 파일이 있는 디렉토리 경로
* @param oldExt - 변경할 기존 파일 확장자
* @param newExt - 변경될 새로운 파일 확장자
*/
function renameFiles(directory, oldExt, newExt) {
fs.readdir(directory, (err, files) => {
if (err) throw err;

files.forEach((file) => {
if (path.extname(file) === oldExt) {
const oldPath = path.join(directory, file);
const newPath = path.join(
directory,
path.basename(file, oldExt) + newExt,
);
fs.rename(oldPath, newPath, (err) => {
if (err) throw err;
console.log(`Renamed: ${file} -> ${path.basename(newPath)}`);
fs.readdir(directory, function (err, files) {
if (err)
throw err;
files.forEach(function (file) {
if (path.extname(file) === oldExt) {
var oldPath = path.join(directory, file);
var newPath_1 = path.join(directory, path.basename(file, oldExt) + newExt);
fs.rename(oldPath, newPath_1, function (err) {
if (err)
throw err;
console.log("Renamed: ".concat(file, " -> ").concat(path.basename(newPath_1))); // 변경된 파일 로그 출력
});
}
});
}
});
});
}

// dist 디렉토리의 .js 파일을 .cjs 파일로 변경
renameFiles('./build/cjs', '.js', '.cjs');
31 changes: 31 additions & 0 deletions renameFiles.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import * as fs from 'fs';
import * as path from 'path';

/**
* 주어진 디렉토리에서 특정 확장자의 파일을 다른 확장자로 변경하는 함수
* @param directory - 파일이 있는 디렉토리 경로
* @param oldExt - 변경할 기존 파일 확장자
* @param newExt - 변경될 새로운 파일 확장자
*/
function renameFiles(directory: string, oldExt: string, newExt: string): void {
fs.readdir(directory, (err, files) => {
if (err) throw err;

files.forEach((file) => {
if (path.extname(file) === oldExt) {
const oldPath = path.join(directory, file);
const newPath = path.join(
directory,
path.basename(file, oldExt) + newExt,
);
fs.rename(oldPath, newPath, (err) => {
if (err) throw err;
console.log(`Renamed: ${file} -> ${path.basename(newPath)}`); // 변경된 파일 로그 출력
});
}
});
});
}

// dist 디렉토리의 .js 파일을 .cjs 파일로 변경
renameFiles('./build/cjs', '.js', '.cjs');

0 comments on commit a8e836b

Please sign in to comment.