@into-cps-association/libms 0.3.1 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEVELOPER.md +24 -7
- package/README.md +42 -43
- package/config/.env.default +6 -0
- package/config/http.json +30 -0
- package/package.json +41 -31
- package/pm2.config.js +10 -0
- package/src/bootstrap.ts +8 -0
- package/src/cloudcmd/cloudcmd.ts +32 -0
- package/src/files/files.module.ts +1 -7
- package/src/files/services/files-service.factory.ts +0 -5
- package/src/files/services/local-files.service.ts +2 -2
- package/src/main.ts +12 -7
- package/test/cloudcmd/cloudcmd.spec.ts +52 -0
- package/test/e2e/app.e2e.spec.ts +42 -42
- package/test/integration/files.service.integration.spec.ts +1 -3
- package/test/testUtil.ts +1 -10
- package/test/unit/files-service.factory.unit.spec.ts +0 -9
- package/tsconfig.json +1 -1
- package/.env +0 -9
- package/dist/src/app.module.d.ts +0 -2
- package/dist/src/app.module.js +0 -36
- package/dist/src/app.module.js.map +0 -1
- package/dist/src/bootstrap.d.ts +0 -6
- package/dist/src/bootstrap.js +0 -27
- package/dist/src/bootstrap.js.map +0 -1
- package/dist/src/files/files.module.d.ts +0 -2
- package/dist/src/files/files.module.js +0 -27
- package/dist/src/files/files.module.js.map +0 -1
- package/dist/src/files/interfaces/files.service.interface.d.ts +0 -5
- package/dist/src/files/interfaces/files.service.interface.js +0 -3
- package/dist/src/files/interfaces/files.service.interface.js.map +0 -1
- package/dist/src/files/queries.d.ts +0 -2
- package/dist/src/files/queries.js +0 -47
- package/dist/src/files/queries.js.map +0 -1
- package/dist/src/files/resolvers/files.resolver.d.ts +0 -8
- package/dist/src/files/resolvers/files.resolver.js +0 -49
- package/dist/src/files/resolvers/files.resolver.js.map +0 -1
- package/dist/src/files/services/files-service.factory.d.ts +0 -11
- package/dist/src/files/services/files-service.factory.js +0 -48
- package/dist/src/files/services/files-service.factory.js.map +0 -1
- package/dist/src/files/services/gitlab-files.service.d.ts +0 -12
- package/dist/src/files/services/gitlab-files.service.js +0 -65
- package/dist/src/files/services/gitlab-files.service.js.map +0 -1
- package/dist/src/files/services/local-files.service.d.ts +0 -11
- package/dist/src/files/services/local-files.service.js +0 -77
- package/dist/src/files/services/local-files.service.js.map +0 -1
- package/dist/src/main.d.ts +0 -2
- package/dist/src/main.js +0 -20
- package/dist/src/main.js.map +0 -1
- package/dist/src/types.d.ts +0 -43
- package/dist/src/types.js +0 -181
- package/dist/src/types.js.map +0 -1
- package/dist/test/e2e/app.e2e.spec.d.ts +0 -1
- package/dist/test/e2e/app.e2e.spec.js +0 -36
- package/dist/test/e2e/app.e2e.spec.js.map +0 -1
- package/dist/test/integration/files.service.integration.spec.d.ts +0 -1
- package/dist/test/integration/files.service.integration.spec.js +0 -53
- package/dist/test/integration/files.service.integration.spec.js.map +0 -1
- package/dist/test/testUtil.d.ts +0 -88
- package/dist/test/testUtil.js +0 -182
- package/dist/test/testUtil.js.map +0 -1
- package/dist/test/unit/files-service.factory.unit.spec.d.ts +0 -1
- package/dist/test/unit/files-service.factory.unit.spec.js +0 -40
- package/dist/test/unit/files-service.factory.unit.spec.js.map +0 -1
- package/dist/test/unit/files.resolver.unit.spec.d.ts +0 -1
- package/dist/test/unit/files.resolver.unit.spec.js +0 -56
- package/dist/test/unit/files.resolver.unit.spec.js.map +0 -1
- package/dist/test/unit/gitlab-files.service.unit.spec.d.ts +0 -1
- package/dist/test/unit/gitlab-files.service.unit.spec.js +0 -37
- package/dist/test/unit/gitlab-files.service.unit.spec.js.map +0 -1
- package/dist/test/unit/local-files.service.unit.spec.d.ts +0 -1
- package/dist/test/unit/local-files.service.unit.spec.js +0 -84
- package/dist/test/unit/local-files.service.unit.spec.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/files/queries.ts +0 -42
- package/src/files/services/gitlab-files.service.ts +0 -65
- package/test/coverage/clover.xml +0 -40
- package/test/coverage/coverage-final.json +0 -2
- package/test/coverage/lcov-report/base.css +0 -224
- package/test/coverage/lcov-report/block-navigation.js +0 -87
- package/test/coverage/lcov-report/favicon.png +0 -0
- package/test/coverage/lcov-report/index.html +0 -116
- package/test/coverage/lcov-report/prettify.css +0 -1
- package/test/coverage/lcov-report/prettify.js +0 -2
- package/test/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/test/coverage/lcov-report/sorter.js +0 -196
- package/test/coverage/lcov-report/testUtil.ts.html +0 -655
- package/test/coverage/lcov.info +0 -52
- package/test/starttraefik.bash +0 -11
- package/test/stoptraefik.bash +0 -9
- package/test/unit/gitlab-files.service.unit.spec.ts +0 -46
package/test/e2e/app.e2e.spec.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { Test, TestingModule } from '@nestjs/testing';
|
|
2
2
|
import { INestApplication } from '@nestjs/common';
|
|
3
3
|
import * as request from 'supertest';
|
|
4
|
-
|
|
4
|
+
import fetch from 'cross-fetch';
|
|
5
|
+
import {
|
|
6
|
+
ApolloClient,
|
|
7
|
+
DocumentNode,
|
|
8
|
+
HttpLink,
|
|
9
|
+
InMemoryCache,
|
|
10
|
+
gql,
|
|
11
|
+
} from '@apollo/client';
|
|
5
12
|
import AppModule from '../../src/app.module';
|
|
6
13
|
import {
|
|
7
14
|
e2eReadFile,
|
|
@@ -10,12 +17,18 @@ import {
|
|
|
10
17
|
expectedListDirectoryResponse,
|
|
11
18
|
} from '../testUtil';
|
|
12
19
|
|
|
20
|
+
const client = new ApolloClient({
|
|
21
|
+
link: new HttpLink({
|
|
22
|
+
uri: `http://localhost:${process.env.PORT}${process.env.APOLLO_PATH}`,
|
|
23
|
+
fetch,
|
|
24
|
+
}),
|
|
25
|
+
cache: new InMemoryCache({ addTypename: false }),
|
|
26
|
+
});
|
|
27
|
+
|
|
13
28
|
describe('End to End test for the application', () => {
|
|
14
29
|
let app: INestApplication;
|
|
15
30
|
|
|
16
31
|
beforeAll(async () => {
|
|
17
|
-
// execSync("test/starttraefik.bash");
|
|
18
|
-
|
|
19
32
|
const moduleFixture: TestingModule = await Test.createTestingModule({
|
|
20
33
|
imports: [AppModule],
|
|
21
34
|
}).compile();
|
|
@@ -28,52 +41,39 @@ describe('End to End test for the application', () => {
|
|
|
28
41
|
}, 10000);
|
|
29
42
|
|
|
30
43
|
afterAll(async () => {
|
|
31
|
-
// execSync("test/stoptraefik.bash");
|
|
32
44
|
await app.close();
|
|
33
45
|
}, 10000);
|
|
34
46
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
async function HTTPQuery(
|
|
48
|
+
query: string,
|
|
49
|
+
expectedResponse: unknown,
|
|
50
|
+
): Promise<void> {
|
|
51
|
+
const response = await request(`http://localhost:${process.env.PORT}`)
|
|
39
52
|
.post(process.env.APOLLO_PATH)
|
|
40
53
|
.send({ query });
|
|
41
|
-
expect(response.body).toEqual(
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
it('should return the content of a file given in the query ', async () => {
|
|
45
|
-
const query = e2eReadFile;
|
|
54
|
+
expect(response.body).toEqual(expectedResponse);
|
|
55
|
+
}
|
|
46
56
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
async function GraphQLQuery(
|
|
58
|
+
query: DocumentNode,
|
|
59
|
+
expectedResponse: unknown,
|
|
60
|
+
): Promise<void> {
|
|
61
|
+
const { data } = await client.query({ query });
|
|
62
|
+
expect({ data }).toEqual(expectedResponse);
|
|
63
|
+
}
|
|
64
|
+
it('should return the directory contents requested with HTTP POST query', async () => {
|
|
65
|
+
await HTTPQuery(e2elistDirectory, expectedListDirectoryResponse);
|
|
51
66
|
}, 10000);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
/*
|
|
55
|
-
describe("End to End test for the application", () => {
|
|
56
|
-
it("should return the filename corresponding to the directory given in the query through the Traefik gateway", async () => {
|
|
57
|
-
const query = e2elistDirectory;
|
|
58
|
-
|
|
59
|
-
const response = await request("http://localhost")
|
|
60
|
-
.post("/lib")
|
|
61
|
-
.send({ query });
|
|
62
|
-
|
|
63
|
-
response;
|
|
64
|
-
expect(response.body).toEqual(expectedListDirectoryResponse);
|
|
65
|
-
}, 10000);
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
it('should return the file content requested with HTTP POST query', async () => {
|
|
69
|
+
await HTTPQuery(e2eReadFile, expectedFileContentResponse);
|
|
70
|
+
}, 10000);
|
|
69
71
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
it('should return the directory contents requested with GraphQL query', async () => {
|
|
73
|
+
await GraphQLQuery(gql(e2elistDirectory), expectedListDirectoryResponse);
|
|
74
|
+
}, 10000);
|
|
73
75
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
*/
|
|
76
|
+
it('should return the file content requested with GraphQL query', async () => {
|
|
77
|
+
await GraphQLQuery(gql(e2eReadFile), expectedFileContentResponse);
|
|
78
|
+
}, 10000);
|
|
79
|
+
});
|
|
@@ -3,7 +3,6 @@ import { ConfigService } from '@nestjs/config';
|
|
|
3
3
|
import FilesResolver from '../../src/files/resolvers/files.resolver';
|
|
4
4
|
import FilesServiceFactory from '../../src/files/services/files-service.factory';
|
|
5
5
|
import LocalFilesService from '../../src/files/services/local-files.service';
|
|
6
|
-
import GitlabFilesService from '../../src/files/services/gitlab-files.service';
|
|
7
6
|
import {
|
|
8
7
|
pathToTestDirectory,
|
|
9
8
|
pathToTestFileContent,
|
|
@@ -23,7 +22,6 @@ describe('Integration tests for FilesResolver', () => {
|
|
|
23
22
|
FilesResolver,
|
|
24
23
|
FilesServiceFactory,
|
|
25
24
|
LocalFilesService,
|
|
26
|
-
GitlabFilesService,
|
|
27
25
|
{ provide: ConfigService, useClass: MockConfigService },
|
|
28
26
|
],
|
|
29
27
|
}).compile();
|
|
@@ -35,7 +33,7 @@ describe('Integration tests for FilesResolver', () => {
|
|
|
35
33
|
jest.clearAllMocks();
|
|
36
34
|
});
|
|
37
35
|
|
|
38
|
-
const modes = ['local'
|
|
36
|
+
const modes = ['local'];
|
|
39
37
|
|
|
40
38
|
// eslint-disable-next-line no-restricted-syntax
|
|
41
39
|
for (const mode of modes) {
|
package/test/testUtil.ts
CHANGED
|
@@ -57,18 +57,9 @@ export class MockConfigService {
|
|
|
57
57
|
// eslint-disable-next-line class-methods-use-this
|
|
58
58
|
get(key: string): string {
|
|
59
59
|
switch (key) {
|
|
60
|
-
case 'TOKEN':
|
|
61
|
-
return process.env.TOKEN;
|
|
62
60
|
case 'LOCAL_PATH':
|
|
63
|
-
return process.env.
|
|
64
|
-
case 'GITLAB_URL':
|
|
65
|
-
return process.env.GITLAB_URL;
|
|
66
|
-
case 'GITLAB_GROUP':
|
|
67
|
-
return 'dtaas';
|
|
61
|
+
return process.env.LOCAL_PATH;
|
|
68
62
|
case 'MODE':
|
|
69
|
-
if (process.env.MODE === 'gitlab') {
|
|
70
|
-
return 'gitlab';
|
|
71
|
-
}
|
|
72
63
|
if (process.env.MODE === 'local') {
|
|
73
64
|
return 'local';
|
|
74
65
|
}
|
|
@@ -3,25 +3,21 @@ import { Test, TestingModule } from '@nestjs/testing';
|
|
|
3
3
|
import { ConfigService } from '@nestjs/config';
|
|
4
4
|
import FilesServiceFactory from '../../src/files/services/files-service.factory';
|
|
5
5
|
import LocalFilesService from '../../src/files/services/local-files.service';
|
|
6
|
-
import GitlabFilesService from '../../src/files/services/gitlab-files.service';
|
|
7
6
|
import { IFilesService } from '../../src/files/interfaces/files.service.interface';
|
|
8
7
|
|
|
9
8
|
describe('FilesServiceFactory', () => {
|
|
10
9
|
let serviceFactory: FilesServiceFactory;
|
|
11
10
|
let configService: ConfigService;
|
|
12
11
|
let localFilesService: IFilesService;
|
|
13
|
-
let gitlabFilesService: IFilesService;
|
|
14
12
|
|
|
15
13
|
beforeEach(async () => {
|
|
16
14
|
localFilesService = new LocalFilesService(configService as ConfigService);
|
|
17
|
-
gitlabFilesService = new GitlabFilesService(configService as ConfigService);
|
|
18
15
|
|
|
19
16
|
const module: TestingModule = await Test.createTestingModule({
|
|
20
17
|
providers: [
|
|
21
18
|
FilesServiceFactory,
|
|
22
19
|
{ provide: ConfigService, useValue: { get: jest.fn() } },
|
|
23
20
|
{ provide: LocalFilesService, useValue: localFilesService },
|
|
24
|
-
{ provide: GitlabFilesService, useValue: gitlabFilesService },
|
|
25
21
|
],
|
|
26
22
|
}).compile();
|
|
27
23
|
|
|
@@ -34,11 +30,6 @@ describe('FilesServiceFactory', () => {
|
|
|
34
30
|
expect(serviceFactory.create()).toBe(localFilesService);
|
|
35
31
|
});
|
|
36
32
|
|
|
37
|
-
it('should create a gitlab files service when MODE is gitlab', () => {
|
|
38
|
-
jest.spyOn(configService, 'get').mockReturnValue('gitlab');
|
|
39
|
-
expect(serviceFactory.create()).toBe(gitlabFilesService);
|
|
40
|
-
});
|
|
41
|
-
|
|
42
33
|
it('should throw an error when MODE is invalid', () => {
|
|
43
34
|
jest.spyOn(configService, 'get').mockReturnValue('invalid');
|
|
44
35
|
expect(() => serviceFactory.create()).toThrowError(`Invalid MODE: invalid`);
|
package/tsconfig.json
CHANGED
package/.env
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
PORT='4001'
|
|
2
|
-
MODE='local'
|
|
3
|
-
LOCAL_PATH ='/home/prasad/git/prasadtalasila/DTaaS/files'
|
|
4
|
-
GITLAB_GROUP ='dtaas'
|
|
5
|
-
GITLAB_URL='https://gitlab.foo.com/api/graphql'
|
|
6
|
-
TOKEN='glpat-xFagGa33EW7bWpsM5q-Z'
|
|
7
|
-
LOG_LEVEL='debug'
|
|
8
|
-
APOLLO_PATH='/lib'
|
|
9
|
-
GRAPHQL_PLAYGROUND='true'
|
package/dist/src/app.module.d.ts
DELETED
package/dist/src/app.module.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
const config_1 = require("@nestjs/config");
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const graphql_1 = require("@nestjs/graphql");
|
|
12
|
-
const apollo_1 = require("@nestjs/apollo");
|
|
13
|
-
const path_1 = require("path");
|
|
14
|
-
const files_module_1 = require("./files/files.module");
|
|
15
|
-
let AppModule = class AppModule {
|
|
16
|
-
};
|
|
17
|
-
AppModule = __decorate([
|
|
18
|
-
(0, common_1.Module)({
|
|
19
|
-
imports: [
|
|
20
|
-
config_1.ConfigModule.forRoot({
|
|
21
|
-
isGlobal: true,
|
|
22
|
-
}),
|
|
23
|
-
graphql_1.GraphQLModule.forRootAsync({
|
|
24
|
-
driver: apollo_1.ApolloDriver,
|
|
25
|
-
useFactory: (configService) => ({
|
|
26
|
-
autoSchemaFile: (0, path_1.join)(process.cwd(), 'src/schema.gql'),
|
|
27
|
-
path: configService.get('APOLLO_PATH'),
|
|
28
|
-
}),
|
|
29
|
-
inject: [config_1.ConfigService],
|
|
30
|
-
}),
|
|
31
|
-
files_module_1.default,
|
|
32
|
-
],
|
|
33
|
-
})
|
|
34
|
-
], AppModule);
|
|
35
|
-
exports.default = AppModule;
|
|
36
|
-
//# sourceMappingURL=app.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;AAAA,2CAA6D;AAC7D,2CAAwC;AACxC,6CAAgD;AAChD,2CAA8C;AAC9C,+BAA4B;AAC5B,uDAA+C;AAkBhC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IAhB7B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,qBAAY,CAAC,OAAO,CAAC;gBACnB,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,uBAAa,CAAC,YAAY,CAAC;gBACzB,MAAM,EAAE,qBAAY;gBACpB,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,CAAC;oBAC7C,cAAc,EAAE,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC;oBACrD,IAAI,EAAE,aAAa,CAAC,GAAG,CAAS,aAAa,CAAC;iBAC/C,CAAC;gBACF,MAAM,EAAE,CAAC,sBAAa,CAAC;aACxB,CAAC;YACF,sBAAW;SACZ;KACF,CAAC;GACmB,SAAS,CAAG;kBAAZ,SAAS"}
|
package/dist/src/bootstrap.d.ts
DELETED
package/dist/src/bootstrap.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const core_1 = require("@nestjs/core");
|
|
4
|
-
const config_1 = require("@nestjs/config");
|
|
5
|
-
const dotenv = require("dotenv");
|
|
6
|
-
const app_module_1 = require("./app.module");
|
|
7
|
-
async function bootstrap(options) {
|
|
8
|
-
const configFile = dotenv.config({
|
|
9
|
-
path: options?.config ?? '.env',
|
|
10
|
-
override: true,
|
|
11
|
-
});
|
|
12
|
-
if (configFile.error) {
|
|
13
|
-
console.error(configFile.error);
|
|
14
|
-
if (options.runHelp) {
|
|
15
|
-
options.runHelp();
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
process.exit(1);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
const app = await core_1.NestFactory.create(app_module_1.default);
|
|
22
|
-
const configService = app.get(config_1.ConfigService);
|
|
23
|
-
const port = configService.get('PORT');
|
|
24
|
-
await app.listen(port);
|
|
25
|
-
}
|
|
26
|
-
exports.default = bootstrap;
|
|
27
|
-
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,2CAA+C;AAC/C,iCAAiC;AACjC,6CAAqC;AAOtB,KAAK,UAAU,SAAS,CAAC,OAA0B;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,MAAM;QAC/B,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,KAAK,EAAE;QAEpB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,OAAO,CAAC,OAAO,EAAE,CAAC;SACnB;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;IACD,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,oBAAS,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,sBAAa,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAS,MAAM,CAAC,CAAC;IAC/C,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAlBD,4BAkBC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
const common_1 = require("@nestjs/common");
|
|
10
|
-
const files_resolver_1 = require("./resolvers/files.resolver");
|
|
11
|
-
const gitlab_files_service_1 = require("./services/gitlab-files.service");
|
|
12
|
-
const files_service_factory_1 = require("./services/files-service.factory");
|
|
13
|
-
const local_files_service_1 = require("./services/local-files.service");
|
|
14
|
-
let FilesModule = class FilesModule {
|
|
15
|
-
};
|
|
16
|
-
FilesModule = __decorate([
|
|
17
|
-
(0, common_1.Module)({
|
|
18
|
-
providers: [
|
|
19
|
-
files_resolver_1.default,
|
|
20
|
-
local_files_service_1.default,
|
|
21
|
-
gitlab_files_service_1.default,
|
|
22
|
-
files_service_factory_1.default,
|
|
23
|
-
],
|
|
24
|
-
})
|
|
25
|
-
], FilesModule);
|
|
26
|
-
exports.default = FilesModule;
|
|
27
|
-
//# sourceMappingURL=files.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"files.module.js","sourceRoot":"","sources":["../../../src/files/files.module.ts"],"names":[],"mappings":";;;;;;;;AAAA,2CAAwC;AACxC,+DAAuD;AACvD,0EAAiE;AACjE,4EAAmE;AACnE,wEAA+D;AAUhD,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IAR/B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,wBAAa;YACb,6BAAiB;YACjB,8BAAkB;YAClB,+BAAmB;SACpB;KACF,CAAC;GACmB,WAAW,CAAG;kBAAd,WAAW"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"files.service.interface.js","sourceRoot":"","sources":["../../../../src/files/interfaces/files.service.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getReadFileQuery = exports.getDirectoryQuery = void 0;
|
|
4
|
-
const getDirectoryQuery = (domain, parsedPath) => `
|
|
5
|
-
query listDirectory {
|
|
6
|
-
project(fullPath: "${domain}") {
|
|
7
|
-
repository {
|
|
8
|
-
tree(path: "${parsedPath}", recursive: false) {
|
|
9
|
-
blobs {
|
|
10
|
-
edges {
|
|
11
|
-
node {
|
|
12
|
-
name
|
|
13
|
-
type
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
trees {
|
|
18
|
-
edges {
|
|
19
|
-
node {
|
|
20
|
-
name
|
|
21
|
-
type
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
`;
|
|
30
|
-
exports.getDirectoryQuery = getDirectoryQuery;
|
|
31
|
-
const getReadFileQuery = (domain, parsedPath) => `
|
|
32
|
-
query readFile {
|
|
33
|
-
project(fullPath: "${domain}") {
|
|
34
|
-
repository {
|
|
35
|
-
blobs(paths: "${parsedPath}") {
|
|
36
|
-
nodes {
|
|
37
|
-
name
|
|
38
|
-
rawBlob
|
|
39
|
-
rawTextBlob
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
`;
|
|
46
|
-
exports.getReadFileQuery = getReadFileQuery;
|
|
47
|
-
//# sourceMappingURL=queries.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/files/queries.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,UAAkB,EAAE,EAAE,CAAC;;yBAEhD,MAAM;;sBAET,UAAU;;;;;;;;;;;;;;;;;;;;;CAqB/B,CAAC;AAzBW,QAAA,iBAAiB,qBAyB5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,UAAkB,EAAE,EAAE,CAAC;;yBAE/C,MAAM;;wBAEP,UAAU;;;;;;;;;;CAUjC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import FilesServiceFactory from '../services/files-service.factory';
|
|
2
|
-
import { Project } from '../../types';
|
|
3
|
-
export default class FilesResolver {
|
|
4
|
-
private readonly filesService;
|
|
5
|
-
constructor(filesServiceFactory: FilesServiceFactory);
|
|
6
|
-
listDirectory(path: string): Promise<Project>;
|
|
7
|
-
readFile(path: string): Promise<Project>;
|
|
8
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const graphql_1 = require("@nestjs/graphql");
|
|
16
|
-
const files_service_factory_1 = require("../services/files-service.factory");
|
|
17
|
-
const types_1 = require("../../types");
|
|
18
|
-
let FilesResolver = class FilesResolver {
|
|
19
|
-
filesService;
|
|
20
|
-
constructor(filesServiceFactory) {
|
|
21
|
-
this.filesService = filesServiceFactory.create();
|
|
22
|
-
}
|
|
23
|
-
async listDirectory(path) {
|
|
24
|
-
return this.filesService.listDirectory(path);
|
|
25
|
-
}
|
|
26
|
-
async readFile(path) {
|
|
27
|
-
return this.filesService.readFile(path);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
__decorate([
|
|
31
|
-
(0, graphql_1.Query)(() => types_1.Project),
|
|
32
|
-
__param(0, (0, graphql_1.Args)('path')),
|
|
33
|
-
__metadata("design:type", Function),
|
|
34
|
-
__metadata("design:paramtypes", [String]),
|
|
35
|
-
__metadata("design:returntype", Promise)
|
|
36
|
-
], FilesResolver.prototype, "listDirectory", null);
|
|
37
|
-
__decorate([
|
|
38
|
-
(0, graphql_1.Query)(() => types_1.Project),
|
|
39
|
-
__param(0, (0, graphql_1.Args)('path')),
|
|
40
|
-
__metadata("design:type", Function),
|
|
41
|
-
__metadata("design:paramtypes", [String]),
|
|
42
|
-
__metadata("design:returntype", Promise)
|
|
43
|
-
], FilesResolver.prototype, "readFile", null);
|
|
44
|
-
FilesResolver = __decorate([
|
|
45
|
-
(0, graphql_1.Resolver)(),
|
|
46
|
-
__metadata("design:paramtypes", [files_service_factory_1.default])
|
|
47
|
-
], FilesResolver);
|
|
48
|
-
exports.default = FilesResolver;
|
|
49
|
-
//# sourceMappingURL=files.resolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"files.resolver.js","sourceRoot":"","sources":["../../../../src/files/resolvers/files.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6CAAwD;AAExD,6EAAoE;AACpE,uCAAsC;AAGvB,IAAM,aAAa,GAAnB,MAAM,aAAa;IACf,YAAY,CAAgB;IAE7C,YAAY,mBAAwC;QAClD,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC;IACnD,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CAAe,IAAY;QAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,CAAe,IAAY;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AARO;IADL,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,eAAO,CAAC;IACA,WAAA,IAAA,cAAI,EAAC,MAAM,CAAC,CAAA;;;;kDAEhC;AAGK;IADL,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,eAAO,CAAC;IACL,WAAA,IAAA,cAAI,EAAC,MAAM,CAAC,CAAA;;;;6CAE3B;AAfkB,aAAa;IADjC,IAAA,kBAAQ,GAAE;qCAIwB,+BAAmB;GAHjC,aAAa,CAgBjC;kBAhBoB,aAAa"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ConfigService } from '@nestjs/config';
|
|
2
|
-
import { IFilesService } from '../interfaces/files.service.interface';
|
|
3
|
-
import GitlabFilesService from './gitlab-files.service';
|
|
4
|
-
import LocalFilesService from './local-files.service';
|
|
5
|
-
export default class FilesServiceFactory {
|
|
6
|
-
private configService;
|
|
7
|
-
private gitlabFilesService;
|
|
8
|
-
private localFilesService;
|
|
9
|
-
constructor(configService: ConfigService, gitlabFilesService: GitlabFilesService, localFilesService: LocalFilesService);
|
|
10
|
-
create(): IFilesService;
|
|
11
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const common_1 = require("@nestjs/common");
|
|
16
|
-
const config_1 = require("@nestjs/config");
|
|
17
|
-
const gitlab_files_service_1 = require("./gitlab-files.service");
|
|
18
|
-
const local_files_service_1 = require("./local-files.service");
|
|
19
|
-
let FilesServiceFactory = class FilesServiceFactory {
|
|
20
|
-
configService;
|
|
21
|
-
gitlabFilesService;
|
|
22
|
-
localFilesService;
|
|
23
|
-
constructor(configService, gitlabFilesService, localFilesService) {
|
|
24
|
-
this.configService = configService;
|
|
25
|
-
this.gitlabFilesService = gitlabFilesService;
|
|
26
|
-
this.localFilesService = localFilesService;
|
|
27
|
-
}
|
|
28
|
-
create() {
|
|
29
|
-
const mode = this.configService.get('MODE');
|
|
30
|
-
if (mode === 'local') {
|
|
31
|
-
return this.localFilesService;
|
|
32
|
-
}
|
|
33
|
-
if (mode === 'gitlab') {
|
|
34
|
-
return this.gitlabFilesService;
|
|
35
|
-
}
|
|
36
|
-
throw new Error(`Invalid MODE: ${mode}`);
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
FilesServiceFactory = __decorate([
|
|
40
|
-
(0, common_1.Injectable)(),
|
|
41
|
-
__param(1, (0, common_1.Inject)(gitlab_files_service_1.default)),
|
|
42
|
-
__param(2, (0, common_1.Inject)(local_files_service_1.default)),
|
|
43
|
-
__metadata("design:paramtypes", [config_1.ConfigService,
|
|
44
|
-
gitlab_files_service_1.default,
|
|
45
|
-
local_files_service_1.default])
|
|
46
|
-
], FilesServiceFactory);
|
|
47
|
-
exports.default = FilesServiceFactory;
|
|
48
|
-
//# sourceMappingURL=files-service.factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"files-service.factory.js","sourceRoot":"","sources":["../../../../src/files/services/files-service.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,2CAA+C;AAE/C,iEAAwD;AACxD,+DAAsD;AAGvC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAG5B;IAC4B;IACD;IAHrC,YACU,aAA4B,EACA,kBAAsC,EACvC,iBAAoC;QAF/D,kBAAa,GAAb,aAAa,CAAe;QACA,uBAAkB,GAAlB,kBAAkB,CAAoB;QACvC,sBAAiB,GAAjB,iBAAiB,CAAmB;IACtE,CAAC;IAGJ,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,MAAM,CAAC,CAAC;QACpD,IAAI,IAAI,KAAK,OAAO,EAAE;YACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC;SAC/B;QACD,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAChC;QACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAnBoB,mBAAmB;IADvC,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,8BAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,eAAM,EAAC,6BAAiB,CAAC,CAAA;qCAFH,sBAAa;QACoB,8BAAkB;QACpB,6BAAiB;GALtD,mBAAmB,CAmBvC;kBAnBoB,mBAAmB"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ConfigService } from '@nestjs/config';
|
|
2
|
-
import { Project } from 'src/types';
|
|
3
|
-
import { IFilesService } from '../interfaces/files.service.interface';
|
|
4
|
-
export default class GitlabFilesService implements IFilesService {
|
|
5
|
-
private configService;
|
|
6
|
-
constructor(configService: ConfigService);
|
|
7
|
-
listDirectory(path: string): Promise<Project>;
|
|
8
|
-
readFile(path: string): Promise<Project>;
|
|
9
|
-
private parseArguments;
|
|
10
|
-
private sendRequest;
|
|
11
|
-
private executeQuery;
|
|
12
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const common_1 = require("@nestjs/common");
|
|
13
|
-
const config_1 = require("@nestjs/config");
|
|
14
|
-
const axios_1 = require("axios");
|
|
15
|
-
const queries_1 = require("../queries");
|
|
16
|
-
let GitlabFilesService = class GitlabFilesService {
|
|
17
|
-
configService;
|
|
18
|
-
constructor(configService) {
|
|
19
|
-
this.configService = configService;
|
|
20
|
-
}
|
|
21
|
-
async listDirectory(path) {
|
|
22
|
-
return this.executeQuery(path, queries_1.getDirectoryQuery);
|
|
23
|
-
}
|
|
24
|
-
async readFile(path) {
|
|
25
|
-
return this.executeQuery(path, queries_1.getReadFileQuery);
|
|
26
|
-
}
|
|
27
|
-
async parseArguments(path) {
|
|
28
|
-
const gitlabGroup = this.configService.get('GITLAB_GROUP');
|
|
29
|
-
const pathParts = path.split('/');
|
|
30
|
-
const project = pathParts[0];
|
|
31
|
-
const domain = project === gitlabGroup ? project : `${gitlabGroup}/${project}`;
|
|
32
|
-
const parsedPath = pathParts.slice(1).join('/');
|
|
33
|
-
return { domain, parsedPath };
|
|
34
|
-
}
|
|
35
|
-
async sendRequest(query) {
|
|
36
|
-
try {
|
|
37
|
-
const response = await (0, axios_1.default)({
|
|
38
|
-
url: 'https://gitlab.com/api/graphql',
|
|
39
|
-
method: 'post',
|
|
40
|
-
headers: {
|
|
41
|
-
'Content-Type': 'application/json',
|
|
42
|
-
Authorization: `Bearer ${this.configService.get('GITLAB_TOKEN')}`,
|
|
43
|
-
},
|
|
44
|
-
data: {
|
|
45
|
-
query,
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
return response.data.data.project;
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
throw new Error('Invalid query');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
async executeQuery(path, getQuery) {
|
|
55
|
-
const { domain, parsedPath } = await this.parseArguments(path);
|
|
56
|
-
const query = getQuery(domain, parsedPath);
|
|
57
|
-
return this.sendRequest(query);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
GitlabFilesService = __decorate([
|
|
61
|
-
(0, common_1.Injectable)(),
|
|
62
|
-
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
63
|
-
], GitlabFilesService);
|
|
64
|
-
exports.default = GitlabFilesService;
|
|
65
|
-
//# sourceMappingURL=gitlab-files.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gitlab-files.service.js","sourceRoot":"","sources":["../../../../src/files/services/gitlab-files.service.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAC/C,iCAA0B;AAG1B,wCAAiE;AAKlD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEjB;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,2BAAiB,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,0BAAgB,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,IAAY;QAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAW,SAAS,CAAC,CAAC,CAAC,CAAC;QAGrC,MAAM,MAAM,GACV,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;QAElE,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAa;QACrC,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;gBAC3B,GAAG,EAAE,gCAAgC;gBACrC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;iBAClE;gBACD,IAAI,EAAE;oBACJ,KAAK;iBACN;aACF,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;SACnC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,IAAY,EACZ,QAAuB;QAEvB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AAtDoB,kBAAkB;IADtC,IAAA,mBAAU,GAAE;qCAGwB,sBAAa;GAF7B,kBAAkB,CAsDtC;kBAtDoB,kBAAkB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ConfigService } from '@nestjs/config';
|
|
2
|
-
import { Project } from 'src/types';
|
|
3
|
-
import { IFilesService } from '../interfaces/files.service.interface';
|
|
4
|
-
export default class LocalFilesService implements IFilesService {
|
|
5
|
-
private configService;
|
|
6
|
-
constructor(configService: ConfigService);
|
|
7
|
-
listDirectory(path: string): Promise<Project>;
|
|
8
|
-
readFile(path: string): Promise<Project>;
|
|
9
|
-
private static getFileStats;
|
|
10
|
-
private static formatResponse;
|
|
11
|
-
}
|