Skip to content

Commit 55f88c7

Browse files
committed
recursiveにファイル名を取得するように変更する
1 parent d8813e2 commit 55f88c7

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

src/lib/file-system-repo.ts

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,14 @@ export class FileSystemRepo {
214214
}
215215

216216
private async getItemFilenames(remote: boolean = false) {
217-
return await fs.readdir(
218-
this.getRootOrRemotePath(remote),
219-
FileSystemRepo.fileSystemOptions(),
217+
return (
218+
await fs.readdir(
219+
this.getRootOrRemotePath(remote),
220+
FileSystemRepo.fileSystemOptions()
221+
)
222+
).filter(
223+
(itemFilename) =>
224+
/\.md$/.test(itemFilename) && !itemFilename.startsWith(".remote/")
220225
);
221226
}
222227

@@ -234,7 +239,7 @@ export class FileSystemRepo {
234239
const basename = `${prefix}${suffix}`;
235240
const filenameCandidate = this.getFilename(basename);
236241
const found = itemFilenames.find(
237-
(filename) => filename === filenameCandidate,
242+
(filename) => filename === filenameCandidate
238243
);
239244
if (!found) {
240245
return basename;
@@ -246,33 +251,35 @@ export class FileSystemRepo {
246251
private static fileSystemOptions() {
247252
return {
248253
encoding: "utf8",
254+
withFileTypes: false,
255+
recursive: true,
249256
} as const;
250257
}
251258

252259
private async setItemData(
253260
fileContent: FileContent,
254261
remote: boolean = false,
255-
basename: string | null = null,
262+
basename: string | null = null
256263
) {
257264
if (!fileContent.id) {
258265
return;
259266
}
260267
const filepath = this.getFilePath(
261268
basename || this.defaultBasename(fileContent),
262-
remote,
269+
remote
263270
);
264271
const data = fileContent.toSaveFormat();
265272
await fs.writeFile(filepath, data, FileSystemRepo.fileSystemOptions());
266273
}
267274

268275
private async getItemData(
269276
itemFilename: string,
270-
remote: boolean = false,
277+
remote: boolean = false
271278
): Promise<FileContent | null> {
272279
try {
273280
const fileContent = await fs.readFile(
274281
path.join(this.getRootOrRemotePath(remote), itemFilename),
275-
FileSystemRepo.fileSystemOptions(),
282+
FileSystemRepo.fileSystemOptions()
276283
);
277284
return FileContent.read(fileContent);
278285
} catch (err: any) {
@@ -283,7 +290,7 @@ export class FileSystemRepo {
283290
private async syncItem(
284291
item: Item,
285292
beforeSync: boolean = false,
286-
forceUpdate: boolean = false,
293+
forceUpdate: boolean = false
287294
) {
288295
const fileContent = FileContent.fromItem(item);
289296

@@ -295,7 +302,7 @@ export class FileSystemRepo {
295302
const basename = localResult?.name || null;
296303
const remoteFileContent = await this.getItemData(
297304
this.getFilename(item.id),
298-
true,
305+
true
299306
);
300307

301308
if (data === null || remoteFileContent?.equals(data) || forceUpdate) {
@@ -317,20 +324,18 @@ export class FileSystemRepo {
317324
async saveItem(
318325
item: Item,
319326
beforeSync: boolean = false,
320-
forceUpdate: boolean = false,
327+
forceUpdate: boolean = false
321328
) {
322329
await this.syncItem(item, beforeSync, forceUpdate);
323330
}
324331

325332
async loadItems(): Promise<QiitaItem[]> {
326333
const itemFilenames = await this.getItemFilenames();
327334

328-
const promises = itemFilenames
329-
.filter((itemFilename) => /\.md$/.test(itemFilename))
330-
.map(async (itemFilename) => {
331-
const basename = this.parseFilename(itemFilename);
332-
return await this.loadItemByBasename(basename);
333-
});
335+
const promises = itemFilenames.map(async (itemFilename) => {
336+
const basename = this.parseFilename(itemFilename);
337+
return await this.loadItemByBasename(basename);
338+
});
334339

335340
const items = excludeNull(await Promise.all(promises));
336341
return items;
@@ -447,7 +452,7 @@ export class FileSystemRepo {
447452
await fs.writeFile(
448453
newFilePath,
449454
newData,
450-
FileSystemRepo.fileSystemOptions(),
455+
FileSystemRepo.fileSystemOptions()
451456
);
452457
}
453458

0 commit comments

Comments
 (0)