|
|
@@ -1,10 +1,33 @@
|
|
|
import { Injectable } from '@nestjs/common';
|
|
|
import Database from 'better-sqlite3';
|
|
|
+import fs from 'fs';
|
|
|
import path from 'path';
|
|
|
|
|
|
@Injectable()
|
|
|
export class DatasetsService {
|
|
|
- private dbPath = path.resolve(process.cwd(), 'data/database.db');
|
|
|
+ private dbPath: string;
|
|
|
+
|
|
|
+ constructor() {
|
|
|
+ // Find project root by traversing up from current directory until we find the root package.json
|
|
|
+ let projectRoot = process.cwd();
|
|
|
+ while (projectRoot !== path.dirname(projectRoot)) {
|
|
|
+ if (fs.existsSync(path.join(projectRoot, 'package.json'))) {
|
|
|
+ try {
|
|
|
+ const pkg = JSON.parse(
|
|
|
+ fs.readFileSync(path.join(projectRoot, 'package.json'), 'utf-8'),
|
|
|
+ );
|
|
|
+ if (pkg.name === 'watch-finished-turbo') {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } catch (e) {
|
|
|
+ // ignore
|
|
|
+ }
|
|
|
+ }
|
|
|
+ projectRoot = path.dirname(projectRoot);
|
|
|
+ }
|
|
|
+
|
|
|
+ this.dbPath = path.resolve(projectRoot, 'data/database.db');
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* Returns all enabled dataset paths from the settings.datasets key in the database
|