-
Notifications
You must be signed in to change notification settings - Fork 330
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
enable ts strict in node #2450
enable ts strict in node #2450
Conversation
Coverage report for
|
St.❔ |
Category | Percentage | Covered / Total |
---|---|---|---|
🟡 | Statements | 66.56% (-3.55% 🔻) |
19312/29014 |
🟡 | Branches | 79.23% (+0.94% 🔼) |
2468/3115 |
🟡 | Functions | 67.97% (+5.47% 🔼) |
1076/1583 |
🟡 | Lines | 66.56% (-3.55% 🔻) |
19312/29014 |
Show new covered files 🐣
St.❔ |
File | Statements | Branches | Functions | Lines |
---|---|---|---|---|---|
🟢 | ... / migrate.ts |
85.09% | 18.18% | 100% | 85.09% |
🟢 | ... / migrate-abis.controller.ts |
95% | 87.5% | 100% | 95% |
🟢 | ... / constants.ts |
100% | 100% | 100% | 100% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🟢 | ... / ethereum.ts |
82.05% | 83.33% | 100% | 82.05% |
🟢 | ... / migrate-manifest.controller.ts |
88% | 73.33% | 88.89% | 88% |
🟢 | ... / migrate-mapping.controller.ts |
100% | 100% | 100% | 100% |
🟢 | ... / migrate-controller.ts |
92.31% | 84.62% | 100% | 92.31% |
🟢 | ... / migrate.fixtures.ts |
100% | 100% | 100% | 100% |
🟢 | ... / migrate-schema.controller.ts |
100% | 100% | 100% | 100% |
🔴 | ... / types.ts |
0% | 0% | 0% | 0% |
🟢 | ... / createProject.fixtures.ts |
94.64% | 75% | 100% | 94.64% |
🟢 | ... / networkFamily.ts |
92.59% | 88.89% | 100% | 92.59% |
🟢 | ... / admin.controller.ts |
98.62% | 96.55% | 92.86% | 98.62% |
🟢 | ... / blockRange.ts |
100% | 100% | 100% | 100% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🟢 | ... / dictionary.fixtures.ts |
100% | 100% | 100% | 100% |
🟡 | ... / monitor.service.ts |
69.61% | 86.9% | 94.12% | 69.61% |
🔴 | ... / sandbox.service.ts |
33.33% | 50% | 25% | 33.33% |
🔴 | ... / worker.monitor.service.ts |
41.46% | 100% | 0% | 41.46% |
🔴 | ... / process.ts |
50% | 66.67% | 40% | 50% |
🔴 | ... / foreceClean.init.ts |
47.62% | 100% | 0% | 47.62% |
🔴 | ... / reindex.init.ts |
34.48% | 100% | 0% | 34.48% |
🟢 | ... / string.ts |
100% | 100% | 100% | 100% |
🔴 | ... / admin.module.ts |
0% | 0% | 0% | 0% |
🔴 | ... / datasourceProcessors.ts |
0% | 0% | 0% | 0% |
🔴 | ... / index.ts |
0% | 0% | 0% | 0% |
🔴 | ... / types.ts |
0% | 0% | 0% | 0% |
Show files with reduced coverage 🔻
St.❔ |
File | Statements | Branches | Functions | Lines |
---|---|---|---|---|---|
🔴 | ... / deploy.ts |
19.21% (-1.93% 🔻) |
100% | 50% (+50% 🔼) |
19.21% (-1.93% 🔻) |
🔴 | ... / publish.ts |
44% (-45.33% 🔻) |
40% (-17.14% 🔻) |
100% | 44% (-45.33% 🔻) |
🔴 | ... / deploy-controller.ts |
32.49% (-4.98% 🔻) |
100% (+22.22% 🔼) |
12.5% (-12.5% 🔻) |
32.49% (-4.98% 🔻) |
🟢 | ... / generate-controller.ts |
97.65% | 93.85% (-0.18% 🔻) |
100% | 97.65% |
🟡 | ... / init-controller.ts |
72.89% (+2.4% 🔼) |
54.55% (-13.45% 🔻) |
61.11% (+7.78% 🔼) |
72.89% (+2.4% 🔼) |
🔴 | ... / project-controller.ts |
17.81% (-79.45% 🔻) |
100% (+40% 🔼) |
0% (-100% 🔻) |
17.81% (-79.45% 🔻) |
🟡 | ... / publish-controller.ts |
60.98% (-19.27% 🔻) |
71.88% (+0.76% 🔼) |
50% (-50% 🔻) |
60.98% (-19.27% 🔻) |
🟢 | ... / models.ts |
96.11% (-3.33% 🔻) |
96% (+3.69% 🔼) |
92.31% (-7.69% 🔻) |
96.11% (-3.33% 🔻) |
🔴 | ... / utils.ts |
55.93% (-3.68% 🔻) |
100% | 28.57% (-4.76% 🔻) |
55.93% (-3.68% 🔻) |
🟢 | ... / ProjectManifestVersioned.ts |
82.19% (-2.74% 🔻) |
88.89% (-11.11% 🔻) |
61.54% (+3.21% 🔼) |
82.19% (-2.74% 🔻) |
🟢 | ... / model.ts |
95.43% (-2.29% 🔻) |
100% | 80% (+8.57% 🔼) |
95.43% (-2.29% 🔻) |
🔴 | ... / models.ts |
47.06% (-52.94% 🔻) |
100% | 0% (-100% 🔻) |
47.06% (-52.94% 🔻) |
🔴 | ... / load.ts |
59.18% | 50% (-5.56% 🔻) |
66.67% | 59.18% |
🟡 | ... / github-reader.ts |
65.52% (-23.77% 🔻) |
85.71% (+10.71% 🔼) |
71.43% (-11.9% 🔻) |
65.52% (-23.77% 🔻) |
🟢 | ... / reader.ts |
81.58% (-7.89% 🔻) |
57.14% (-17.86% 🔻) |
100% | 81.58% (-7.89% 🔻) |
🟡 | ... / utils.ts |
67.91% (+5.21% 🔼) |
69.77% (-3.4% 🔻) |
60% (+4% 🔼) |
67.91% (+5.21% 🔼) |
🟢 | ... / base.ts |
95.33% (-2.67% 🔻) |
92.31% (-7.69% 🔻) |
90% (+10% 🔼) |
95.33% (-2.67% 🔻) |
🔴 | ... / models.ts |
49.37% (-50.63% 🔻) |
100% | 37.5% (-62.5% 🔻) |
49.37% (-50.63% 🔻) |
🟢 | ... / NodeConfig.ts |
88.48% (-0.12% 🔻) |
77.59% (-2.04% 🔻) |
86.96% (+0.91% 🔼) |
88.48% (-0.12% 🔻) |
🟡 | ... / ProjectUpgrade.service.ts |
73.91% (-13.16% 🔻) |
93.59% (+2.23% 🔼) |
84% (-7.3% 🔻) |
73.91% (-13.16% 🔻) |
🟢 | ... / db.module.ts |
89.06% (+0.78% 🔼) |
62.5% (-20.83% 🔻) |
80% | 89.06% (+0.78% 🔼) |
🟡 | ... / migration-helpers.ts |
75.28% (-0.74% 🔻) |
88.24% (+7.64% 🔼) |
90.91% | 75.28% (-0.74% 🔻) |
🟡 | ... / sequelizeUtil.ts |
79.46% (-11.61% 🔻) |
65.38% (-4.99% 🔻) |
62.5% | 79.46% (-11.61% 🔻) |
🟢 | ... / sync-helper.ts |
85.42% (-2.96% 🔻) |
88.04% | 73.77% (-1.23% 🔻) |
85.42% (-2.96% 🔻) |
🟡 | ... / StoreOperations.ts |
72.94% (-19.37% 🔻) |
86.36% (+1.36% 🔼) |
87.5% (-12.5% 🔻) |
72.94% (-19.37% 🔻) |
🔴 | ... / benchmark.service.ts |
43.36% (-11.89% 🔻) |
66.67% | 36.36% (-3.64% 🔻) |
43.36% (-11.89% 🔻) |
🔴 | ... / base-block-dispatcher.ts |
19% (-28.35% 🔻) |
100% | 4.35% (-5.65% 🔻) |
19% (-28.35% 🔻) |
🔴 | ... / block-dispatcher.ts |
26.98% (-14.01% 🔻) |
66.67% | 25% (-3.57% 🔻) |
26.98% (-14.01% 🔻) |
🔴 | ... / worker-block-dispatcher.ts |
36.17% (-14.04% 🔻) |
100% | 25% (-2.27% 🔻) |
36.17% (-14.04% 🔻) |
🔴 | ... / coreDictionary.ts |
45.33% (-54.67% 🔻) |
87.5% (-6.94% 🔻) |
77.78% (-22.22% 🔻) |
45.33% (-54.67% 🔻) |
🟡 | ... / dictionary.service.ts |
67% (-18.15% 🔻) |
80% (-5.71% 🔻) |
83.33% (-7.58% 🔻) |
67% (-18.15% 🔻) |
🟡 | ... / dictionaryV1.ts |
71.43% (-21.8% 🔻) |
73.81% (-4.45% 🔻) |
91.67% (-8.33% 🔻) |
71.43% (-21.8% 🔻) |
🟡 | ... / dictionaryV2.ts |
67.37% (-14.31% 🔻) |
68% (+2.78% 🔼) |
88.89% (-11.11% 🔻) |
67.37% (-14.31% 🔻) |
🔴 | ... / ds-processor.service.ts |
39.37% (-22.72% 🔻) |
75% | 58.33% (-29.17% 🔻) |
39.37% (-22.72% 🔻) |
🔴 | ... / dynamic-ds.service.ts |
59.84% (-30.35% 🔻) |
65% (-1.67% 🔻) |
80% (-5.71% 🔻) |
59.84% (-30.35% 🔻) |
🟢 | ... / inMemoryCache.service.ts |
86.21% (-13.79% 🔻) |
100% | 75% (-25% 🔻) |
86.21% (-13.79% 🔻) |
🔴 | ... / indexer.manager.ts |
16.13% (-17.08% 🔻) |
100% | 10% (-2.5% 🔻) |
16.13% (-17.08% 🔻) |
🟢 | ... / PoiBlock.ts |
83.87% (-14.52% 🔻) |
96.55% | 75% (-25% 🔻) |
83.87% (-14.52% 🔻) |
🔴 | ... / poi.service.ts |
56.64% (+32.71% 🔼) |
55.56% (-44.44% 🔻) |
80% (+51.43% 🔼) |
56.64% (+32.71% 🔼) |
🔴 | ... / poiModel.ts |
40% (-23.64% 🔻) |
71.43% | 44.44% (-12.7% 🔻) |
40% (-23.64% 🔻) |
🔴 | ... / poiSync.service.ts |
55.88% (-31% 🔻) |
77.61% (+1.05% 🔼) |
88.89% (-3.42% 🔻) |
55.88% (-31% 🔻) |
🟡 | ... / project.service.ts |
66.45% (-13.55% 🔻) |
71.93% (+1.75% 🔼) |
80.77% (-3.23% 🔻) |
66.45% (-13.55% 🔻) |
🟡 | ... / sandbox.ts |
61.24% (-6.74% 🔻) |
57.14% | 57.14% (-4.4% 🔻) |
61.24% (-6.74% 🔻) |
🔴 | ... / smartBatch.service.ts |
10.43% (-13.91% 🔻) |
100% | 12.5% (-1.79% 🔻) |
10.43% (-13.91% 🔻) |
🔴 | ... / entity.ts |
19.23% (-42.31% 🔻) |
100% | 0% | 19.23% (-42.31% 🔻) |
🔴 | ... / store.ts |
13.11% (-19.09% 🔻) |
100% | 0% | 13.11% (-19.09% 🔻) |
🟡 | ... / cacheModel.ts |
68.89% (-16.18% 🔻) |
85.92% (+7.6% 🔼) |
71.43% (-4.76% 🔻) |
68.89% (-16.18% 🔻) |
🟡 | ... / cachePoi.ts |
75.53% (-18.09% 🔻) |
88.89% | 71.43% (-11.9% 🔻) |
75.53% (-18.09% 🔻) |
🟢 | ... / cacheable.ts |
89.66% (-0.97% 🔻) |
75% | 100% | 89.66% (-0.97% 🔻) |
🟡 | ... / csvStore.service.ts |
76.92% (-14.1% 🔻) |
80% | 80% (-20% 🔻) |
76.92% (-14.1% 🔻) |
🟢 | ... / test.runner.ts |
94.9% (-4.43% 🔻) |
77.78% (+4.44% 🔼) |
75% (-25% 🔻) |
94.9% (-4.43% 🔻) |
🔴 | ... / testing.service.ts |
12% (-16.57% 🔻) |
100% | 0% | 12% (-16.57% 🔻) |
🔴 | ... / worker.builder.ts |
59.83% (-19.36% 🔻) |
65.38% | 80% | 59.83% (-19.36% 🔻) |
🔴 | ... / worker.cache.service.ts |
48.78% (-9.76% 🔻) |
100% | 0% | 48.78% (-9.76% 🔻) |
🔴 | ... / worker.connectionPoolState.manager.ts |
38.21% (-22.76% 🔻) |
100% | 0% | 38.21% (-22.76% 🔻) |
🔴 | ... / worker.dynamic-ds.service.ts |
44.44% (-17.78% 🔻) |
100% | 0% | 44.44% (-17.78% 🔻) |
🔴 | ... / worker.service.ts |
20.35% (-24.29% 🔻) |
100% | 0% | 20.35% (-24.29% 🔻) |
🟢 | ... / worker.store.service.ts |
80% (-2.61% 🔻) |
100% | 50% | 80% (-2.61% 🔻) |
🔴 | ... / worker.ts |
41.82% (-0.63% 🔻) |
100% | 0% | 41.82% (-0.63% 🔻) |
🔴 | ... / worker.unfinalizedBlocks.service.ts |
33.33% (-66.67% 🔻) |
100% | 0% (-100% 🔻) |
33.33% (-66.67% 🔻) |
🔴 | ... / logger.ts |
44.74% (-19.74% 🔻) |
33.33% | 40% (+20% 🔼) |
44.74% (-19.74% 🔻) |
🟡 | ... / meta.service.ts |
68.57% (-0.95% 🔻) |
100% (+20% 🔼) |
36.36% (-3.64% 🔻) |
68.57% (-0.95% 🔻) |
🔴 | ... / forceClean.service.ts |
22.08% (-4.24% 🔻) |
100% | 0% | 22.08% (-4.24% 🔻) |
🔴 | ... / reindex.service.ts |
14.73% (-18.6% 🔻) |
100% | 0% | 14.73% (-18.6% 🔻) |
🟡 | ... / autoQueue.ts |
60.3% (-28.09% 🔻) |
85.11% | 73.08% (-6.09% 🔻) |
60.3% (-28.09% 🔻) |
🟡 | ... / blocks.ts |
77.78% (-22.22% 🔻) |
88.89% | 66.67% (-33.33% 🔻) |
77.78% (-22.22% 🔻) |
🟢 | ... / promise.ts |
86.44% (-5.32% 🔻) |
100% (+13.64% 🔼) |
71.43% (-14.29% 🔻) |
86.44% (-5.32% 🔻) |
🔴 | ... / yargs.ts |
44.38% (-1.11% 🔻) |
100% | 14.29% | 44.38% (-1.11% 🔻) |
🟡 | ... / apiPromise.connection.ts |
76.19% (+7.11% 🔼) |
50% (-30% 🔻) |
62.5% (+19.64% 🔼) |
76.19% (+7.11% 🔼) |
🟡 | ... / block-dispatcher.service.ts |
66.35% (-2.52% 🔻) |
100% | 33.33% (+8.33% 🔼) |
66.35% (-2.52% 🔻) |
🔴 | ... / worker-block-dispatcher.service.ts |
23.65% (-13.31% 🔻) |
100% | 0% | 23.65% (-13.31% 🔻) |
🟢 | ... / substrateDictionary.service.ts |
93.4% (+2.83% 🔼) |
38.46% (-34.27% 🔻) |
100% (+20% 🔼) |
93.4% (+2.83% 🔼) |
🟢 | ... / substrateDictionaryV1.ts |
85.19% (-0.3% 🔻) |
78.26% (+8.49% 🔼) |
84.62% (+1.28% 🔼) |
85.19% (-0.3% 🔻) |
🟡 | ... / substrateDictionaryV2.ts |
70.79% (-4.72% 🔻) |
50% (-25% 🔻) |
33.33% | 70.79% (-4.72% 🔻) |
🟢 | ... / fetch.module.ts |
90% (-1.88% 🔻) |
50% (-25% 🔻) |
100% | 90% (-1.88% 🔻) |
🔴 | ... / indexer.manager.ts |
56.35% (-1.2% 🔻) |
100% | 20% (+10.91% 🔼) |
56.35% (-1.2% 🔻) |
🟡 | ... / base-runtime.service.ts |
68.5% (-3.82% 🔻) |
76.92% (+1.92% 🔼) |
63.64% (-11.36% 🔻) |
68.5% (-3.82% 🔻) |
🟢 | ... / runtimeService.ts |
94.52% (+2.31% 🔼) |
81.82% (-7.07% 🔻) |
100% (+20% 🔼) |
94.52% (+2.31% 🔼) |
🔴 | ... / http.ts |
49.03% (-30.89% 🔻) |
40% | 28.57% (-2.2% 🔻) |
49.03% (-30.89% 🔻) |
🟢 | ... / project.ts |
88.73% (-0.16% 🔻) |
68.18% | 87.5% | 88.73% (-0.16% 🔻) |
🟢 | ... / buffer.ts |
95.12% (-4.88% 🔻) |
95.65% (-4.35% 🔻) |
85.71% (+1.5% 🔼) |
95.12% (-4.88% 🔻) |
🟢 | ... / builder.ts |
92.77% | 82.14% (-0.62% 🔻) |
100% | 92.77% |
🟢 | ... / entities.ts |
85.4% (-2.92% 🔻) |
74.77% (-11.31% 🔻) |
100% | 85.4% (-2.92% 🔻) |
🟡 | ... / logger.ts |
69.01% (-0.59% 🔻) |
50% (-5% 🔻) |
78.57% (+3.57% 🔼) |
69.01% (-0.59% 🔻) |
Test suite run failed
Failed tests: 6/558. Failed suites: 3/98.
● Codegen can generate schema › Should dedupe enums
ENOENT: no such file or directory, open '/home/runner/work/subql/subql/packages/cli/test/schemaTest/src/types/models/foo.ts'
● Cli publish › should upload appropriate project to IPFS
Publish project to default IPFS failed
172 | const results = ipfsWrite.addAll(contents, {pin: true, cidVersion: 0, wrapWithDirectory: isMultichain});
173 | for await (const result of results) {
> 174 | fileCidMap.set(result.path, result.cid.toString());
| ^
175 |
176 | await ipfsWrite.pin.remote.add(result.cid, {service: PIN_SERVICE}).catch((e) => {
177 | console.warn(
at packages/cli/src/controller/publish-controller.ts:174:15
at async Promise.all (index 0)
at async uploadFile (packages/cli/src/controller/publish-controller.ts:177:30)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:100:26)
at async /home/runner/work/subql/subql/packages/cli/src/controller/publish-controller.ts:105:26
at async Promise.all (index 3)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:103:9)
at async Promise.all (index 0)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:91:17)
at async /home/runner/work/subql/subql/packages/cli/src/controller/publish-controller.ts:105:26
at async Promise.all (index 5)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:103:9)
at async uploadToIpfs (packages/cli/src/controller/publish-controller.ts:70:28)
at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:38:21)
Cause:
HTTPError: <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>
175 |
176 | await ipfsWrite.pin.remote.add(result.cid, {service: PIN_SERVICE}).catch((e) => {
> 177 | console.warn(
| ^
178 | `Failed to pin file ${result.path}. There might be problems with this file being accessible later. ${e}`
179 | );
180 | });
at Object.errorHandler [as handleError] (node_modules/ipfs-http-client/cjs/src/lib/core.js:84:15)
at async Client.fetch (node_modules/ipfs-http-client/node_modules/ipfs-utils/src/http.js:161:9)
at async addAll (node_modules/ipfs-http-client/cjs/src/add-all.js:21:17)
at async Object.last [as default] (node_modules/it-last/index.js:13:20)
at async Object.add (node_modules/ipfs-http-client/cjs/src/add.js:18:14)
at async Promise.all (index 0)
at async uploadFile (packages/cli/src/controller/publish-controller.ts:177:30)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:100:26)
at async /home/runner/work/subql/subql/packages/cli/src/controller/publish-controller.ts:105:26
at async Promise.all (index 3)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:103:9)
at async Promise.all (index 0)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:91:17)
at async /home/runner/work/subql/subql/packages/cli/src/controller/publish-controller.ts:105:26
at async Promise.all (index 5)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:103:9)
at async uploadToIpfs (packages/cli/src/controller/publish-controller.ts:70:28)
at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:38:21)
● Cli publish › Get directory CID from multi-chain project
Publish project to default IPFS failed
172 | const results = ipfsWrite.addAll(contents, {pin: true, cidVersion: 0, wrapWithDirectory: isMultichain});
173 | for await (const result of results) {
> 174 | fileCidMap.set(result.path, result.cid.toString());
| ^
175 |
176 | await ipfsWrite.pin.remote.add(result.cid, {service: PIN_SERVICE}).catch((e) => {
177 | console.warn(
at packages/cli/src/controller/publish-controller.ts:174:15
at async Promise.all (index 0)
at async uploadFile (packages/cli/src/controller/publish-controller.ts:177:30)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:100:26)
at async /home/runner/work/subql/subql/packages/cli/src/controller/publish-controller.ts:105:26
at async Promise.all (index 1)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:103:9)
at async uploadToIpfs (packages/cli/src/controller/publish-controller.ts:70:28)
at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:66:24)
Cause:
HTTPError: <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>
175 |
176 | await ipfsWrite.pin.remote.add(result.cid, {service: PIN_SERVICE}).catch((e) => {
> 177 | console.warn(
| ^
178 | `Failed to pin file ${result.path}. There might be problems with this file being accessible later. ${e}`
179 | );
180 | });
at Object.errorHandler [as handleError] (node_modules/ipfs-http-client/cjs/src/lib/core.js:84:15)
at async Client.fetch (node_modules/ipfs-http-client/node_modules/ipfs-utils/src/http.js:161:9)
at async addAll (node_modules/ipfs-http-client/cjs/src/add-all.js:21:17)
at async Object.last [as default] (node_modules/it-last/index.js:13:20)
at async Object.add (node_modules/ipfs-http-client/cjs/src/add.js:18:14)
at async Promise.all (index 0)
at async uploadFile (packages/cli/src/controller/publish-controller.ts:177:30)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:100:26)
at async /home/runner/work/subql/subql/packages/cli/src/controller/publish-controller.ts:105:26
at async Promise.all (index 1)
at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:103:9)
at async uploadToIpfs (packages/cli/src/controller/publish-controller.ts:70:28)
at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:66:24)
● Intergration test - Publish › overwrites any exisiting CID files
thrown: "Exceeded timeout of 300000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
28 | it('overwrites any exisiting CID files', async () => {
29 | const initCID = 'QmWLxg7xV7ZWUyc7ZxZ8XuQQ7NmH8WQGXzg7VZ3QQNqF-testing';
> 30 | const cidFilePath = path.resolve(projectDir, '.project-cid');
| ^
31 | await fs.promises.writeFile(cidFilePath, initCID);
32 | await Publish.run(['-f', projectDir, '-o']);
33 | const cidValue = await fs.promises.readFile(cidFilePath, 'utf8');
at packages/cli/src/commands/publish.test.ts:30:5
at Object.<anonymous> (packages/cli/src/commands/publish.test.ts:15:1)
● Intergration test - Publish › create ipfsCID file stored in local with dictiory path
thrown: "Exceeded timeout of 300000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
36 |
37 | it('create ipfsCID file stored in local with dictiory path', async () => {
> 38 | await Publish.run(['-f', projectDir]);
| ^
39 | const cidFile = path.resolve(projectDir, '.project-cid');
40 | const fileExists = fs.existsSync(cidFile);
41 | const IPFScontent = await fs.promises.readFile(cidFile, 'utf8');
at packages/cli/src/commands/publish.test.ts:38:5
at Object.<anonymous> (packages/cli/src/commands/publish.test.ts:15:1)
● Intergration test - Publish › file name consistent with manfiest file name, if -f <manifest path> is used
thrown: "Exceeded timeout of 300000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
45 |
46 | // Run this last because it modifies the project
> 47 | it('file name consistent with manfiest file name, if -f <manifest path> is used', async () => {
| ^
48 | const manifestPath = path.resolve(projectDir, 'project.yaml');
49 | const testManifestPath = path.resolve(projectDir, 'test.yaml');
50 | fs.renameSync(manifestPath, testManifestPath);
at packages/cli/src/commands/publish.test.ts:47:5
at Object.<anonymous> (packages/cli/src/commands/publish.test.ts:15:1)
Report generated by 🧪jest coverage report action from 7fe76c7
let schemaString: string | undefined; | ||
try { | ||
schemaString = await reader.getFile(projectManifest.schema.file); | ||
} catch (e) { | ||
throw new Error( | ||
`unable to fetch the schema from ${projectManifest.schema.file}`, | ||
); | ||
} | ||
assert(schemaString, 'Schema file is empty'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs better formatting but i think this is a cleaner way to write this.
let schemaString: string | undefined; | |
try { | |
schemaString = await reader.getFile(projectManifest.schema.file); | |
} catch (e) { | |
throw new Error( | |
`unable to fetch the schema from ${projectManifest.schema.file}`, | |
); | |
} | |
assert(schemaString, 'Schema file is empty'); | |
const schemaString = await reader.getFile(projectManifest.schema.file) | |
.catch(e => { | |
throw new Error( | |
`unable to fetch the schema from ${projectManifest.schema.file}`, | |
); | |
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here, we need to merge the common PR first and then make adjustments.
@@ -171,7 +172,7 @@ async function loadProjectFromManifestBase( | |||
projectManifest.templates, | |||
root, | |||
reader, | |||
isCustomDs, | |||
isCustomDs, // Note: ts-strict change --- Not sure it should be modified |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Im not sure what the comment is here for, there are no changes?
private fetchBlocksFunction!: FetchFunc; | ||
private fetchBlocksBatches: GetFetchFunc = () => this.fetchBlocksFunction; | ||
private currentBlockHash: string; | ||
private currentBlockNumber: number; | ||
private currentBlockHash!: string; | ||
private currentBlockNumber!: number; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use getter/setter pattern here
connection: IApiConnectionSpecific< | ||
ApiPromise, | ||
ApiAt, | ||
IBlock<BlockContent>[] | IBlock<LightBlockContent>[] | ||
>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the 4th generic for BaseApiService needs to be set to ApiPromiseConnection
rather than this change
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fix
assert(isFullBlock(block.block), 'Block must be a full block'); | ||
const runtimeVersion = await this.runtimeService.getRuntimeVersion( | ||
block.block.block, | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a change in behaviour, if its a light block then this will no longer work.
@@ -221,7 +223,7 @@ export class SubstrateDictionaryV1 extends DictionaryV1<SubstrateDataSource> { | |||
return buildDictionaryV1QueryEntries(dataSources, this.getDsProcessor); | |||
} | |||
|
|||
parseSpecVersions(raw: SpecVersionDictionary): SpecVersion[] { | |||
parseSpecVersions(raw: SpecVersionDictionary | undefined): SpecVersion[] { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should prefer optional instead of | undefined
where possible. Applies to other places
parseSpecVersions(raw: SpecVersionDictionary | undefined): SpecVersion[] { | |
parseSpecVersions(raw?: SpecVersionDictionary): SpecVersion[] { |
@@ -24,7 +25,7 @@ const specVersions: SpecVersion[] = [ | |||
{ id: '12', start: 443964, end: 528470 }, | |||
{ id: '13', start: 528471, end: 687751 }, | |||
{ id: '14', start: 687752, end: 746085 }, | |||
{ id: '15', start: 746086, end: null }, | |||
{ id: '15', start: 746086, end: 99999999 }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
End should be able to be null, i think the types need to be fixed rather than the test changed
assert(isFullBlock(block.block), 'Block should be Full block'); | ||
const runtimeVersion = await this.workerRuntimeService.getRuntimeVersion( | ||
block.block.block, | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is also a change in behaviour
packages/node/src/utils/project.ts
Outdated
} else { | ||
// If it is stored in ipfs or other resources, we will use the corresponding reader to read the file | ||
// Because ipfs not provide extension of the file, it is difficult to determine its format | ||
// We will use yaml.load to try to load the script and parse them to supported chain types | ||
// if it failed, we will give it another another attempt, and assume the script written in js | ||
// we will download it to a temp folder, and load them within sandbox | ||
const res = await reader.getFile(file); | ||
assert(res, `File ${file} not found`); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think getFile
should be updated to throw rather than return undefined
packages/node/src/utils/substrate.ts
Outdated
let parentSpecVersion: number | undefined; | ||
if (overallSpecVer !== undefined) { | ||
parentSpecVersion = overallSpecVer; | ||
} else { | ||
parentSpecVersion = runtimeVersions | ||
? runtimeVersions[idx].specVersion.toNumber() | ||
: undefined; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this could be reverted and optional chaining added.
let parentSpecVersion: number | undefined; | |
if (overallSpecVer !== undefined) { | |
parentSpecVersion = overallSpecVer; | |
} else { | |
parentSpecVersion = runtimeVersions | |
? runtimeVersions[idx].specVersion.toNumber() | |
: undefined; | |
} | |
const parentSpecVersion = | |
overallSpecVer !== undefined | |
? overallSpecVer | |
: runtimeVersions?.[idx].specVersion.toNumber(); |
@@ -17,7 +17,7 @@ import {exitWithError} from '../process'; | |||
|
|||
const logger = getLogger('Project-Utils'); | |||
|
|||
export async function getValidPort(argvPort: number): Promise<number> { | |||
export async function getValidPort(argvPort: number | undefined): Promise<number> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
export async function getValidPort(argvPort: number | undefined): Promise<number> { | |
export async function getValidPort(argvPort?: number): Promise<number> { |
@@ -58,11 +58,11 @@ describe('SchemaMigration integration tests', () => { | |||
await apiService.init(); | |||
await projectService.init(1); | |||
|
|||
const dbResults = await sequelize.query( | |||
const dbResults: string[][] = await sequelize.query( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use generics wtih sequelize.query?
@@ -72,7 +72,7 @@ export class SubqueryProject implements ISubqueryProject { | |||
this.#dataSources = await insertBlockFiltersCronSchedules( | |||
this.dataSources, | |||
getTimestamp, | |||
isRuntimeDs, | |||
isRuntimeDs, // Note: ts-strict change --- Not sure it should be modified |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Theres no change here, can we remove this comment?
@@ -171,7 +167,7 @@ async function loadProjectFromManifestBase( | |||
projectManifest.templates, | |||
root, | |||
reader, | |||
isCustomDs, | |||
isCustomDs as any, // TODO: There is no good way to temporarily |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to fix this type issue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
type Big = { a: string, b: number }
type Smail = Big & { c: boolean }
type TypeGuard<T> = (x: any) => x is T;
let F1: TypeGuard<Big> = (x: Big | Smail): x is Big => {
return true
}
let F2: TypeGuard<Smail> = (x: Big | Smail): x is Smail => {
return true
}
F2 = F1; // Type 'Big' is not assignable to type 'Smail'.
F1 = F2;
This change is like assigning a large set to a smaller set, which should be impossible to achieve.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unless we define all our common-<network> isCustomDs
as smaller sets. In that case, we would need to modify all common-<network> isCustomDs
.
private set fetchBlocksFunction(value: FetchFunc) { | ||
this._fetchBlocksFunction = value; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If these setters are only done once, I think the init function can just set the private var directly
@@ -59,7 +59,7 @@ export class SubstrateDictionaryService extends DictionaryService< | |||
this.nodeConfig, | |||
this.dsProcessorService.getDsProcessor.bind( | |||
this.dsProcessorService, | |||
), | |||
) as any, // TODO: There is no good way to temporarily |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to resolve this
} else { | ||
filterList = [handler.filter]; | ||
if (handler.filter) filterList = [handler.filter]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could become an else if
@@ -33,7 +33,7 @@ import { WorkerService } from './worker.service'; | |||
|
|||
const logger = getLogger(`worker #${threadId}`); | |||
|
|||
async function initWorker(startHeight: number): Promise<void> { | |||
async function initWorker(startHeight?: number): Promise<void> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How come this is now optional? I think its required
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
packages/node/src/utils/project.ts
Outdated
@@ -43,14 +44,17 @@ export async function getChainTypes( | |||
// If the project is load from local, we will direct load them | |||
let raw: unknown; | |||
if (reader instanceof LocalReader) { | |||
raw = loadChainTypes(file, root); | |||
return loadChainTypes(file, root) as ChainTypes; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you please rebase, there was a fix to this code recently
@@ -4,7 +4,8 @@ | |||
"sourceMap": true, | |||
"tsBuildInfoFile": "dist/.tsbuildinfo", | |||
"rootDir": "src", | |||
"outDir": "./dist" | |||
"outDir": "./dist", | |||
"strict": true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because this is the last package in the repo to enable strict, we can set it on the base tsconfig and remove the explicit option on each of the packages
@@ -58,7 +58,7 @@ export class ApiPromiseConnection | |||
fetchBlocksBatches: GetFetchFunc, | |||
args: { chainTypes: RegisteredTypes }, | |||
): Promise<ApiPromiseConnection> { | |||
let provider: ProviderInterface; | |||
let provider: ProviderInterface | undefined; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this could be improved.
Provider is required, but we currently don't throw if there is an unsupported protocol. I think this can be updated to throw
@@ -101,3 +104,26 @@ export class SubstrateDictionaryService extends DictionaryService< | |||
return dict.getSpecVersions(); | |||
} | |||
} | |||
|
|||
function convertGetDsProcessor( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a functional change and should have a test.
I think we will end up implementing this over for each SDK which isn't ideal.
Could this not be fixed by improvements to the dictionary types? E.g. doing something like typeof DsProcessorService["getDsProcessor"]
|
||
return Promise.resolve({ | ||
specVersion: { | ||
toNumber: () => parseInt(id), | ||
toNumber: () => parseInt(specVersion.id), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not related to the PR but this can lead to issues if not provided. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt#radix
toNumber: () => parseInt(specVersion.id), | |
toNumber: () => parseInt(specVersion.id, 10), |
packages/types/src/interfaces.ts
Outdated
@@ -8,7 +8,7 @@ import {IEvent} from '@polkadot/types/types'; | |||
|
|||
export interface SubstrateBlock extends SignedBlock { | |||
// parent block's spec version, can be used to decide the correct metadata that should be used for this block. | |||
specVersion: number; | |||
specVersion?: number; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is required. @jiqiang90 can you confirm
@@ -77,8 +77,8 @@ describe('Store service integration test', () => { | |||
replacements: { schema: schemaName }, | |||
}, | |||
); | |||
const expectedTables = result.map( | |||
(t: { table_name: string }) => t.table_name, | |||
const expectedTables = (result as { table_name: string }[]).map( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think its better to use generics on sequelize.query
@@ -278,7 +278,7 @@ WHERE | |||
|
|||
tempDir = (projectService as any).project.root; | |||
|
|||
const result = await sequelize.query( | |||
const result: { enum_type: string }[] = await sequelize.query( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here for generics
packages/node/src/utils/project.ts
Outdated
@@ -51,6 +52,7 @@ export async function getChainTypes( | |||
// if it failed, we will give it another attempt, and assume the script written in js | |||
// we will download it to a temp folder, and load them within sandbox | |||
const res = await reader.getFile(file); | |||
let raw: unknown; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Raw is already defined on line 45
@@ -64,7 +64,7 @@ describe('Store service integration test', () => { | |||
|
|||
tempDir = (projectService as any).project.root; | |||
|
|||
const [result] = await sequelize.query( | |||
const result = await sequelize.query<{ table_name: string }>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this right? I thought it would be
const result = await sequelize.query<{ table_name: string }>( | |
const [result] = await sequelize.query<[{ table_name: string }]>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
type: QueryTypes.SELECT
That’s correct because a type parameter was added to the second argument.
packages/node/src/utils/project.ts
Outdated
@@ -1,6 +1,7 @@ | |||
// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors | |||
// SPDX-License-Identifier: GPL-3.0 | |||
|
|||
import assert from 'assert'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Enable ts strict in node
Type of change
Please delete options that are not relevant.
Checklist