alessandro trinca tornidor commited on
Commit
6efe519
·
1 Parent(s): a05c9de

test: add playwright e2e test cases

Browse files
Files changed (25) hide show
  1. static/package.json +19 -0
  2. static/playwright.config.ts +100 -0
  3. static/pnpm-lock.yaml +76 -0
  4. static/template.env +1 -0
  5. static/tests/test-helper.ts +29 -0
  6. static/tests/test-word-frequency-1-table0-aria-snapshot.txt +21 -0
  7. static/tests/test-word-frequency-1-table13-aria-snapshot.txt +13 -0
  8. static/tests/test-word-frequency-1.spec.ts +53 -0
  9. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-1-chromium-linux.png +3 -0
  10. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-10-chromium-linux.png +3 -0
  11. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-11-chromium-linux.png +3 -0
  12. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-2-chromium-linux.png +3 -0
  13. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-3-chromium-linux.png +3 -0
  14. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-4-chromium-linux.png +3 -0
  15. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-5-chromium-linux.png +3 -0
  16. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-6-chromium-linux.png +3 -0
  17. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-7-chromium-linux.png +3 -0
  18. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-8-chromium-linux.png +3 -0
  19. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-9-chromium-linux.png +3 -0
  20. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-1-chromium-linux.png +3 -0
  21. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-1.aria.yml +20 -0
  22. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-2-chromium-linux.png +3 -0
  23. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-3-chromium-linux.png +3 -0
  24. static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-4-chromium-linux.png +3 -0
  25. static/tsconfig.json +10 -0
static/package.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "static",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "type": "module",
10
+ "keywords": [],
11
+ "author": "",
12
+ "license": "ISC",
13
+ "packageManager": "[email protected]",
14
+ "devDependencies": {
15
+ "@playwright/test": "^1.52.0",
16
+ "@types/node": "^22.14.1",
17
+ "dotenv": "^16.5.0"
18
+ }
19
+ }
static/playwright.config.ts ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import 'dotenv/config'
2
+ import { defineConfig, devices } from '@playwright/test';
3
+
4
+ /**
5
+ * Read environment variables from file.
6
+ * https://github.com/motdotla/dotenv
7
+ */
8
+ // require('dotenv').config();
9
+
10
+ /**
11
+ * See https://playwright.dev/docs/test-configuration.
12
+ */
13
+ export default defineConfig({
14
+ timeout: 24 * 1000,
15
+ testDir: './tests',
16
+ /* Run tests in files in parallel */
17
+ fullyParallel: true,
18
+ /* Fail the build on CI if you accidentally left test.only in the source code. */
19
+ forbidOnly: !!process.env.CI,
20
+ /* Retry on CI only */
21
+ retries: process.env.CI ? 2 : 0,
22
+ /* Opt out of parallel tests on CI. */
23
+ workers: process.env.CI ? 1 : undefined,
24
+ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
25
+ reporter: [ ['html', { open: 'never' }] ],
26
+ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
27
+ use: {
28
+ /* Base URL to use in actions like `await page.goto('/')`. */
29
+ baseURL: 'http://localhost:3000',
30
+ browserName: "chromium",
31
+ viewport: { width: 1600, height: 1200 },
32
+ ignoreHTTPSErrors: true,
33
+ permissions: ['microphone'],
34
+ screenshot: 'only-on-failure',
35
+ trace: 'on-first-retry',
36
+ video: 'retain-on-failure',
37
+ launchOptions: {
38
+ ignoreDefaultArgs: ['--mute-audio'],
39
+ args: [
40
+ "--use-fake-device-for-media-stream",
41
+ "--use-fake-ui-for-media-stream",
42
+ ],
43
+ }
44
+ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
45
+ },
46
+
47
+ /* Configure projects for major browsers */
48
+ projects: [
49
+ {
50
+ name: 'chromium',
51
+ // grepInvert: /mobile/,
52
+ use: {
53
+ ...devices['Desktop Chrome'],
54
+ viewport: { width: 1600, height: 1200 },
55
+ },
56
+ },
57
+
58
+ {
59
+ name: 'firefox',
60
+ // grepInvert: /mobile/,
61
+ use: { ...devices['Desktop Firefox'] },
62
+ },
63
+
64
+ {
65
+ name: 'webkit',
66
+ // grepInvert: /mobile/,
67
+ use: { ...devices['Desktop Safari'] },
68
+ },
69
+
70
+ // Test against mobile viewports.
71
+ {
72
+ name: 'MobileChrome',
73
+ // grep: /mobile/,
74
+ use: { ...devices['Pixel 5'] },
75
+ },
76
+ {
77
+ name: 'MobileSafari',
78
+ // grep: /mobile/,
79
+ use: { ...devices['iPhone 12'] },
80
+ },
81
+
82
+ /*
83
+ // Test against branded browsers.
84
+ {
85
+ name: 'Microsoft Edge',
86
+ use: { ...devices['Desktop Edge'], channel: 'msedge' },
87
+ },
88
+ {
89
+ name: 'Google Chrome',
90
+ use: { ...devices['Desktop Chrome'], channel: 'chrome' },
91
+ }*/
92
+ ],
93
+
94
+ /* Run your local dev server before starting the tests */
95
+ // webServer: {
96
+ // command: 'npm run start',
97
+ // url: 'http://127.0.0.1:3000',
98
+ // reuseExistingServer: !process.env.CI,
99
+ // },
100
+ });
static/pnpm-lock.yaml ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ lockfileVersion: '9.0'
2
+
3
+ settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+ importers:
8
+
9
+ .:
10
+ devDependencies:
11
+ '@playwright/test':
12
+ specifier: ^1.52.0
13
+ version: 1.52.0
14
+ '@types/node':
15
+ specifier: ^22.14.1
16
+ version: 22.14.1
17
+ dotenv:
18
+ specifier: ^16.5.0
19
+ version: 16.5.0
20
+
21
+ packages:
22
+
23
+ '@playwright/[email protected]':
24
+ resolution: {integrity: sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==}
25
+ engines: {node: '>=18'}
26
+ hasBin: true
27
+
28
+ '@types/[email protected]':
29
+ resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==}
30
+
31
32
+ resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==}
33
+ engines: {node: '>=12'}
34
+
35
36
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
37
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
38
+ os: [darwin]
39
+
40
41
+ resolution: {integrity: sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==}
42
+ engines: {node: '>=18'}
43
+ hasBin: true
44
+
45
46
+ resolution: {integrity: sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==}
47
+ engines: {node: '>=18'}
48
+ hasBin: true
49
+
50
51
+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
52
+
53
+ snapshots:
54
+
55
+ '@playwright/[email protected]':
56
+ dependencies:
57
+ playwright: 1.52.0
58
+
59
+ '@types/[email protected]':
60
+ dependencies:
61
+ undici-types: 6.21.0
62
+
63
64
+
65
66
+ optional: true
67
+
68
69
+
70
71
+ dependencies:
72
+ playwright-core: 1.52.0
73
+ optionalDependencies:
74
+ fsevents: 2.3.2
75
+
76
static/template.env ADDED
@@ -0,0 +1 @@
 
 
1
+ DOMAIN=http://localhost:7860
static/tests/test-helper.ts ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fs from 'node:fs'
2
+ import { Page, expect } from '@playwright/test';
3
+
4
+ interface CellObject {
5
+ table: number
6
+ row: number
7
+ }
8
+
9
+ export const fileReader = async (filePath: string) => {
10
+ try {
11
+ const data = fs.readFileSync(filePath, { encoding: 'utf8' });
12
+ console.log("data length:", data.length, "#");
13
+ return data
14
+ } catch (err) {
15
+ console.error(err);
16
+ throw err
17
+ }
18
+ }
19
+
20
+ export const loopOverTablesAndClickOnUrls = async (page: Page, cellObj: CellObject, timeout=50) => {
21
+ let cellLabel = `id-table-${cellObj["table"]}-row-${cellObj["row"]}-nth`
22
+ console.log(`current aria-label:${cellLabel}...`)
23
+ console.log(`current cell content: '${cellLabel}'...`)
24
+ let currentCellElement = page.getByLabel(cellLabel).locator('a')
25
+ console.log("currentCellElement:", currentCellElement, "#")
26
+ await currentCellElement.click();
27
+ await page.waitForTimeout(timeout)
28
+ await expect(page.getByLabel('editor')).toHaveScreenshot(/** {stylePath: `${import.meta.dirname}/../index.css`} */);
29
+ }
static/tests/test-word-frequency-1-table0-aria-snapshot.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ - table "id-table-0-nth":
3
+ - caption
4
+ - rowgroup:
5
+ - row "word row nth offsets":
6
+ - cell "word"
7
+ - cell "row nth"
8
+ - cell "offsets"
9
+ - rowgroup:
10
+ - row "id-table-0-row-0-nth":
11
+ - cell "there"
12
+ - cell "0"
13
+ - cell "3,8"
14
+ - row "id-table-0-row-1-nth":
15
+ - cell "There"
16
+ - cell "0"
17
+ - cell "23,28"
18
+ - row "id-table-0-row-2-nth":
19
+ - cell "there"
20
+ - cell "0"
21
+ - cell "107,112"
static/tests/test-word-frequency-1-table13-aria-snapshot.txt ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ - table "id-table-13-nth":
3
+ - caption
4
+ - rowgroup:
5
+ - row "word row nth offsets":
6
+ - cell "word"
7
+ - cell "row nth"
8
+ - cell "offsets"
9
+ - rowgroup:
10
+ - row "id-table-13-row-0-nth":
11
+ - cell "table"
12
+ - cell "0"
13
+ - cell "101,106"
static/tests/test-word-frequency-1.spec.ts ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import 'dotenv/config'
2
+ import { test, expect } from '@playwright/test';
3
+ import { fileReader, loopOverTablesAndClickOnUrls } from './test-helper'
4
+
5
+ test(`test: word frequency (short text input)`, async ({ page }) => {
6
+ const wordFreqTable0AriaSnapshot1FilePath = `${import.meta.dirname}/test-word-frequency-1-table0-aria-snapshot.txt`
7
+ const wordFreqTable13AriaSnapshot1FilePath = `${import.meta.dirname}/test-word-frequency-1-table13-aria-snapshot.txt`
8
+ await page.goto(process.env.DOMAIN ?? "http://localhost:7860/");
9
+ console.log(page.url())
10
+
11
+ await page.getByRole('button', { name: 'btn4-getWordFrequency' }).click();
12
+ let table0 = page.getByRole('table', { name: 'id-table-0-nth' })
13
+ let dataTable0 = await fileReader(wordFreqTable0AriaSnapshot1FilePath)
14
+ let table13 = page.getByRole('table', { name: 'id-table-13-nth' })
15
+ let dataTableLast = await fileReader(wordFreqTable13AriaSnapshot1FilePath)
16
+ await expect(table0).toMatchAriaSnapshot(dataTable0)
17
+ await expect(table13).toMatchAriaSnapshot(dataTableLast)
18
+
19
+ let cellArray1 = [{ table: 0, row: 0 }, { table: 0, row: 1 }, { table: 5, row: 0 }, { table: 13, row: 0 }]
20
+ for (let idx in cellArray1) {
21
+ await loopOverTablesAndClickOnUrls(page, cellArray1[idx], 0)
22
+ }
23
+ console.log("end!")
24
+ });
25
+
26
+ test(`test: word frequency (long, multi line text input)`, async ({ page }) => {
27
+ const testLLMTextFilePath = `${import.meta.dirname}/../../tests/events/llm_generated_story_1.txt`
28
+ await page.goto(process.env.DOMAIN ?? "http://localhost:7860/");
29
+ console.log(page.url())
30
+
31
+ console.log("Let's try with a much longer, multiline text while scrolling the conteditable div on click")
32
+ console.log("first upload a new, longer, multiline text then populate again the words frequency tables and re-try again the word links")
33
+
34
+ const fileChooserPromise = page.waitForEvent('filechooser');
35
+ await page.getByRole('button', { name: 'id-input-file-selector' }).click();
36
+ await page.waitForTimeout(200)
37
+ const fileChooser = await fileChooserPromise;
38
+ await fileChooser.setFiles(testLLMTextFilePath);
39
+ await page.waitForTimeout(200)
40
+
41
+ await page.getByRole('button', { name: 'btn4-getWordFrequency' }).click();
42
+
43
+ console.log("try with a new array of tables/rows...")
44
+ let cellArray2 = [
45
+ { table: 1, row: 1 }, { table: 1, row: 2 }, { table: 1, row: 3 }, { table: 2, row: 0 }, { table: 2, row: 1 },
46
+ { table: 2, row: 2 }, { table: 0, row: 1 }, { table: 8, row: 1 }, { table: 8, row: 4 }, { table: 737, row: 1 },
47
+ { table: 737, row: 3 }
48
+ ]
49
+ for (let idx in cellArray2) {
50
+ await loopOverTablesAndClickOnUrls(page, cellArray2[idx], 100)
51
+ }
52
+ console.log("end!")
53
+ });
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-1-chromium-linux.png ADDED

Git LFS Details

  • SHA256: 620944d5ecf8ea650afefc685e8e7f756b5c9665e02a55c6622450ea7e972282
  • Pointer size: 131 Bytes
  • Size of remote file: 300 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-10-chromium-linux.png ADDED

Git LFS Details

  • SHA256: 154db581a80bc5fcb7a7070d89d41753aaf099c39b6cbad267f9ff42816ffd2a
  • Pointer size: 131 Bytes
  • Size of remote file: 316 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-11-chromium-linux.png ADDED

Git LFS Details

  • SHA256: b21d70f9dd9ad7e7c2d03c3dfc71baf09963926df09001ab2ea471bb1d04da3d
  • Pointer size: 131 Bytes
  • Size of remote file: 316 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-2-chromium-linux.png ADDED

Git LFS Details

  • SHA256: 5cda65c5e8eecf91cde4db32436d16bc9b71749bc19ba42b171137cb3ae2420b
  • Pointer size: 131 Bytes
  • Size of remote file: 306 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-3-chromium-linux.png ADDED

Git LFS Details

  • SHA256: 86d016e37c7626f117df69b3566adfa7cbd2d1591f15a3e824a5457f432498e5
  • Pointer size: 131 Bytes
  • Size of remote file: 321 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-4-chromium-linux.png ADDED

Git LFS Details

  • SHA256: d960cee3e0055fa14b18ac9c36794a2bba905408299b78dd373cb99844cbbd35
  • Pointer size: 131 Bytes
  • Size of remote file: 303 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-5-chromium-linux.png ADDED

Git LFS Details

  • SHA256: 6c8fc676f846d7de6144fc40bf3ab310eeb48d0d4487ab65d77374cc79c36b3a
  • Pointer size: 131 Bytes
  • Size of remote file: 309 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-6-chromium-linux.png ADDED

Git LFS Details

  • SHA256: 0eecedb7fcbf3ff97f14ce378d4bcc0c2bf61f7b4e100d918affa1a66fcf31f1
  • Pointer size: 131 Bytes
  • Size of remote file: 316 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-7-chromium-linux.png ADDED

Git LFS Details

  • SHA256: c348930c460cfa7119f4a6f3c28b19692553d6eb53dabe18066475413bf475de
  • Pointer size: 131 Bytes
  • Size of remote file: 296 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-8-chromium-linux.png ADDED

Git LFS Details

  • SHA256: e420a41b6e20cc0da7f8b0beacb8be3fd1d15b1af8b8bf13a539e687bca3716b
  • Pointer size: 131 Bytes
  • Size of remote file: 303 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-long-multi-line-text-input-9-chromium-linux.png ADDED

Git LFS Details

  • SHA256: 2f22face1847fd8c39d4a33aabf391ea548fc2ddd5753f5acabc2cf5c3013c04
  • Pointer size: 131 Bytes
  • Size of remote file: 316 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-1-chromium-linux.png ADDED

Git LFS Details

  • SHA256: f4670a2543d0c895b6cd572ecd2209cbfee4f3642f61049105b376787e5997c6
  • Pointer size: 129 Bytes
  • Size of remote file: 7.12 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-1.aria.yml ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - table "id-table-0-nth":
2
+ - caption
3
+ - rowgroup:
4
+ - row "word row nth offsets":
5
+ - cell "word"
6
+ - cell "row nth"
7
+ - cell "offsets"
8
+ - rowgroup:
9
+ - row "id-table-0-row-0-nth":
10
+ - cell "there"
11
+ - cell "0"
12
+ - cell /\d+,\d+/
13
+ - row "id-table-0-row-1-nth":
14
+ - cell "There"
15
+ - cell "0"
16
+ - cell /\d+,\d+/
17
+ - row "id-table-0-row-2-nth":
18
+ - cell "there"
19
+ - cell "0"
20
+ - cell /\d+,\d+/
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-2-chromium-linux.png ADDED

Git LFS Details

  • SHA256: a44cd93d5679e603ef1ff3f6fd075037062b1273e249ea581076e068f2b33abd
  • Pointer size: 129 Bytes
  • Size of remote file: 7.23 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-3-chromium-linux.png ADDED

Git LFS Details

  • SHA256: 844c141c1c36b62bdb7b7d5cc535ad145db57cd1722300bceae537c25094f772
  • Pointer size: 129 Bytes
  • Size of remote file: 7.28 kB
static/tests/test-word-frequency-1.spec.ts-snapshots/test-word-frequency-short-text-input-4-chromium-linux.png ADDED

Git LFS Details

  • SHA256: b5718eddc786f39073ac5976facaf47e79c8d1f7ab177715b16386df21cc4d9d
  • Pointer size: 129 Bytes
  • Size of remote file: 7.12 kB
static/tsconfig.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2016",
4
+ "module": "commonjs",
5
+ "esModuleInterop": true,
6
+ "forceConsistentCasingInFileNames": true,
7
+ "strict": true,
8
+ "skipLibCheck": true
9
+ }
10
+ }