mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-09 03:32:54 -05:00
Move remaining .d.ts files to .ts (#5208)
* Update CRDT protobuf generation to create a .ts file * Move remaining .d.ts files to .ts * Fix remaining type errors * Ignore .d.ts files so we don't accidentally use them in the future * Add release notes
This commit is contained in:
committed by
GitHub
parent
c1d70722b8
commit
7b71374e79
3
.gitignore
vendored
3
.gitignore
vendored
@@ -60,3 +60,6 @@ fly.toml
|
||||
|
||||
# TypeScript cache
|
||||
build/
|
||||
|
||||
# .d.ts files aren't type-checked with skipLibCheck set to true
|
||||
*.d.ts
|
||||
|
||||
@@ -18,4 +18,9 @@ protoc --plugin="protoc-gen-ts=../../node_modules/.bin/protoc-gen-ts" \
|
||||
|
||||
../../node_modules/.bin/prettier --write src/proto/*.d.ts
|
||||
|
||||
for file in src/proto/*.d.ts; do
|
||||
{ echo "/* eslint-disable @typescript-eslint/no-namespace */"; sed 's/export class/export declare class/g' "$file"; } > "${file%.d.ts}.ts"
|
||||
rm "$file"
|
||||
done
|
||||
|
||||
echo 'One more step! Find the `var global = ...` declaration in src/proto/sync_pb.js and change it to `var global = globalThis;`'
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"scripts": {
|
||||
"build:node": "tsc --p tsconfig.dist.json",
|
||||
"proto:generate": "./bin/generate-proto",
|
||||
"build": "rm -rf dist && yarn run build:node && cp src/proto/sync_pb.d.ts dist/src/proto/",
|
||||
"build": "rm -rf dist && yarn run build:node",
|
||||
"test": "vitest --globals"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -20,6 +20,8 @@
|
||||
"uuid": "^11.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/google-protobuf": "^3.15.12",
|
||||
"protoc-gen-js": "^3.21.4-4",
|
||||
"ts-protoc-gen": "^0.15.0",
|
||||
"typescript": "^5.8.3",
|
||||
"vitest": "^3.2.4"
|
||||
|
||||
@@ -157,9 +157,9 @@ proto.EncryptedData.prototype.toObject = function(opt_includeInstance) {
|
||||
*/
|
||||
proto.EncryptedData.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
iv: msg.getIv_asB64(),
|
||||
authtag: msg.getAuthtag_asB64(),
|
||||
data: msg.getData_asB64()
|
||||
iv: msg.getIv_asB64(),
|
||||
authtag: msg.getAuthtag_asB64(),
|
||||
data: msg.getData_asB64()
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@@ -419,10 +419,10 @@ proto.Message.prototype.toObject = function(opt_includeInstance) {
|
||||
*/
|
||||
proto.Message.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
dataset: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||
row: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||
column: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
||||
value: jspb.Message.getFieldWithDefault(msg, 4, "")
|
||||
dataset: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||
row: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||
column: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
||||
value: jspb.Message.getFieldWithDefault(msg, 4, "")
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@@ -639,9 +639,9 @@ proto.MessageEnvelope.prototype.toObject = function(opt_includeInstance) {
|
||||
*/
|
||||
proto.MessageEnvelope.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
timestamp: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||
isencrypted: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
|
||||
content: msg.getContent_asB64()
|
||||
timestamp: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||
isencrypted: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
|
||||
content: msg.getContent_asB64()
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@@ -860,12 +860,12 @@ proto.SyncRequest.prototype.toObject = function(opt_includeInstance) {
|
||||
*/
|
||||
proto.SyncRequest.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
messagesList: jspb.Message.toObjectList(msg.getMessagesList(),
|
||||
messagesList: jspb.Message.toObjectList(msg.getMessagesList(),
|
||||
proto.MessageEnvelope.toObject, includeInstance),
|
||||
fileid: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||
groupid: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
||||
keyid: jspb.Message.getFieldWithDefault(msg, 5, ""),
|
||||
since: jspb.Message.getFieldWithDefault(msg, 6, "")
|
||||
fileid: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||
groupid: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
||||
keyid: jspb.Message.getFieldWithDefault(msg, 5, ""),
|
||||
since: jspb.Message.getFieldWithDefault(msg, 6, "")
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@@ -1140,9 +1140,9 @@ proto.SyncResponse.prototype.toObject = function(opt_includeInstance) {
|
||||
*/
|
||||
proto.SyncResponse.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
messagesList: jspb.Message.toObjectList(msg.getMessagesList(),
|
||||
messagesList: jspb.Message.toObjectList(msg.getMessagesList(),
|
||||
proto.MessageEnvelope.toObject, includeInstance),
|
||||
merkle: jspb.Message.getFieldWithDefault(msg, 2, "")
|
||||
merkle: jspb.Message.getFieldWithDefault(msg, 2, "")
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/* eslint-disable @typescript-eslint/no-namespace */
|
||||
// package:
|
||||
// file: sync.proto
|
||||
|
||||
import * as jspb from 'google-protobuf';
|
||||
|
||||
export class EncryptedData extends jspb.Message {
|
||||
export declare class EncryptedData extends jspb.Message {
|
||||
getIv(): Uint8Array | string;
|
||||
getIv_asU8(): Uint8Array;
|
||||
getIv_asB64(): string;
|
||||
@@ -48,7 +49,7 @@ export namespace EncryptedData {
|
||||
};
|
||||
}
|
||||
|
||||
export class Message extends jspb.Message {
|
||||
export declare class Message extends jspb.Message {
|
||||
getDataset(): string;
|
||||
setDataset(value: string): void;
|
||||
|
||||
@@ -88,7 +89,7 @@ export namespace Message {
|
||||
};
|
||||
}
|
||||
|
||||
export class MessageEnvelope extends jspb.Message {
|
||||
export declare class MessageEnvelope extends jspb.Message {
|
||||
getTimestamp(): string;
|
||||
setTimestamp(value: string): void;
|
||||
|
||||
@@ -129,7 +130,7 @@ export namespace MessageEnvelope {
|
||||
};
|
||||
}
|
||||
|
||||
export class SyncRequest extends jspb.Message {
|
||||
export declare class SyncRequest extends jspb.Message {
|
||||
clearMessagesList(): void;
|
||||
getMessagesList(): Array<MessageEnvelope>;
|
||||
setMessagesList(value: Array<MessageEnvelope>): void;
|
||||
@@ -178,7 +179,7 @@ export namespace SyncRequest {
|
||||
};
|
||||
}
|
||||
|
||||
export class SyncResponse extends jspb.Message {
|
||||
export declare class SyncResponse extends jspb.Message {
|
||||
clearMessagesList(): void;
|
||||
getMessagesList(): Array<MessageEnvelope>;
|
||||
setMessagesList(value: Array<MessageEnvelope>): void;
|
||||
19
packages/desktop-client/globals.d.ts
vendored
19
packages/desktop-client/globals.d.ts
vendored
@@ -1,19 +0,0 @@
|
||||
import { type CSSObject } from '@emotion/css/dist/declarations/src/create-instance';
|
||||
|
||||
// Allow images to be imported
|
||||
declare module '*.png';
|
||||
|
||||
declare module 'react' {
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||
interface CSSProperties extends CSSObject {}
|
||||
}
|
||||
|
||||
declare global {
|
||||
function __resetWorld(): void;
|
||||
|
||||
namespace PlaywrightTest {
|
||||
interface Matchers<R> {
|
||||
toMatchThemeScreenshots(): Promise<R>;
|
||||
}
|
||||
}
|
||||
}
|
||||
16
packages/desktop-client/globals.ts
Normal file
16
packages/desktop-client/globals.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import '@playwright/test';
|
||||
|
||||
// Allow images to be imported
|
||||
declare module '*.png';
|
||||
|
||||
declare global {
|
||||
function __resetWorld(): void;
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-namespace
|
||||
namespace PlaywrightTest {
|
||||
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
|
||||
interface Matchers<R> {
|
||||
toMatchThemeScreenshots(): Promise<R>;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
// @ts-strict-ignore
|
||||
import { GlobalPrefsJson } from '../../../../types/prefs';
|
||||
import * as T from '../index.d';
|
||||
import * as T from '../index-types';
|
||||
|
||||
const store: GlobalPrefsJson = {};
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import type { GlobalPrefsJson } from '../../../types/prefs';
|
||||
|
||||
export declare function init(opts?: { persist?: boolean }): void;
|
||||
export type Init = typeof init;
|
||||
|
||||
export declare function getItem<K extends keyof GlobalPrefsJson>(
|
||||
key: K,
|
||||
): Promise<GlobalPrefsJson[K]>;
|
||||
export type GetItem = typeof getItem;
|
||||
|
||||
export declare function setItem<K extends keyof GlobalPrefsJson>(
|
||||
key: K,
|
||||
value: GlobalPrefsJson[K],
|
||||
): Promise<void>;
|
||||
export type SetItem = typeof setItem;
|
||||
|
||||
export declare function removeItem(key: keyof GlobalPrefsJson): Promise<void>;
|
||||
export type RemoveItem = typeof removeItem;
|
||||
|
||||
export declare function multiGet<K extends readonly (keyof GlobalPrefsJson)[]>(
|
||||
keys: K,
|
||||
): Promise<{ [P in K[number]]: GlobalPrefsJson[P] }>;
|
||||
|
||||
export type MultiGet = typeof multiGet;
|
||||
|
||||
export declare function multiSet<K extends keyof GlobalPrefsJson>(
|
||||
keyValues: Array<[K, GlobalPrefsJson[K]]>,
|
||||
): Promise<void>;
|
||||
|
||||
export type MultiSet = typeof multiSet;
|
||||
|
||||
export declare function multiRemove(
|
||||
keys: (keyof GlobalPrefsJson)[],
|
||||
): Promise<void>;
|
||||
export type MultiRemove = typeof multiRemove;
|
||||
@@ -1,35 +0,0 @@
|
||||
import { GlobalPrefs, GlobalPrefsJson } from '../../../types/prefs';
|
||||
|
||||
export function init(opts?: { persist?: boolean }): void;
|
||||
export type Init = typeof init;
|
||||
|
||||
type InferType<K extends keyof GlobalPrefsJson> = GlobalPrefs[K];
|
||||
|
||||
export function getItem<K extends keyof GlobalPrefsJson>(
|
||||
key: K,
|
||||
): Promise<GlobalPrefsJson[K]>;
|
||||
export type GetItem = typeof getItem;
|
||||
|
||||
export function setItem<K extends keyof GlobalPrefsJson>(
|
||||
key: K,
|
||||
value: GlobalPrefsJson[K],
|
||||
): Promise<void>;
|
||||
export type SetItem = typeof setItem;
|
||||
|
||||
export function removeItem(key: keyof GlobalPrefsJson): Promise<void>;
|
||||
export type RemoveItem = typeof removeItem;
|
||||
|
||||
export function multiGet<K extends readonly (keyof GlobalPrefsJson)[]>(
|
||||
keys: K,
|
||||
): Promise<{ [P in K[number]]: GlobalPrefsJson[P] }>;
|
||||
|
||||
export type MultiGet = typeof multiGet;
|
||||
|
||||
export function multiSet<K extends keyof GlobalPrefsJson>(
|
||||
keyValues: Array<[K, GlobalPrefsJson[K]]>,
|
||||
): Promise<void>;
|
||||
|
||||
export type MultiSet = typeof multiSet;
|
||||
|
||||
export function multiRemove(keys: (keyof GlobalPrefsJson)[]): Promise<void>;
|
||||
export type MultiRemove = typeof multiRemove;
|
||||
@@ -5,7 +5,7 @@ import { join } from 'path';
|
||||
import { GlobalPrefsJson } from '../../../types/prefs';
|
||||
import * as lootFs from '../fs';
|
||||
|
||||
import * as T from './index.d';
|
||||
import * as T from './index-types';
|
||||
|
||||
const getStorePath = () => join(lootFs.getDataDir(), 'global-store.json');
|
||||
let store: GlobalPrefsJson;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import { GlobalPrefsJson } from '../../../types/prefs';
|
||||
import { getDatabase } from '../indexeddb';
|
||||
|
||||
import * as T from './index.d';
|
||||
import * as T from './index-types';
|
||||
|
||||
export const init: T.Init = function () {};
|
||||
|
||||
|
||||
6
upcoming-release-notes/5208.md
Normal file
6
upcoming-release-notes/5208.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
category: Maintenance
|
||||
authors: [jfdoming]
|
||||
---
|
||||
|
||||
Move remaining .d.ts files to .ts
|
||||
27
yarn.lock
27
yarn.lock
@@ -67,8 +67,10 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@actual-app/crdt@workspace:packages/crdt"
|
||||
dependencies:
|
||||
"@types/google-protobuf": "npm:^3.15.12"
|
||||
google-protobuf: "npm:^3.21.4"
|
||||
murmurhash: "npm:^2.0.1"
|
||||
protoc-gen-js: "npm:^3.21.4-4"
|
||||
ts-protoc-gen: "npm:^0.15.0"
|
||||
typescript: "npm:^5.8.3"
|
||||
uuid: "npm:^11.1.0"
|
||||
@@ -6550,6 +6552,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/google-protobuf@npm:^3.15.12":
|
||||
version: 3.15.12
|
||||
resolution: "@types/google-protobuf@npm:3.15.12"
|
||||
checksum: 10/a5c5f09a3fc4bc6a9339df29f4a32daf77c37f2bce6e8aa7b949fae19829a87c351786b7401eb45ea643dfa98d5155ffd9dd637c3ec61f69a30979bd67f6954e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/hast@npm:^3.0.0":
|
||||
version: 3.0.4
|
||||
resolution: "@types/hast@npm:3.0.4"
|
||||
@@ -7633,6 +7642,13 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"adm-zip@npm:0.5.10":
|
||||
version: 0.5.10
|
||||
resolution: "adm-zip@npm:0.5.10"
|
||||
checksum: 10/c5ab79b77114d8277f0cbfd6cca830198d6c7ee4971f6960f48e08cd2375953b11dc71729b7f396abd51d2d6cce8c862fad185ea90cb2c84ab5161c37ed1b099
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"adm-zip@npm:0.5.16":
|
||||
version: 0.5.16
|
||||
resolution: "adm-zip@npm:0.5.16"
|
||||
@@ -16523,6 +16539,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"protoc-gen-js@npm:^3.21.4-4":
|
||||
version: 3.21.4-4
|
||||
resolution: "protoc-gen-js@npm:3.21.4-4"
|
||||
dependencies:
|
||||
adm-zip: "npm:0.5.10"
|
||||
bin:
|
||||
protoc-gen-js: cli.js
|
||||
checksum: 10/43d5469195fb28ecbb6e2f387601c22d7a032aaffd5eadee10e02ca4a6b6361bfb54e83fe220b6eef36a27011421f3a0ef86e163116273d71ab9158d31980c3b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"proxy-addr@npm:^2.0.7":
|
||||
version: 2.0.7
|
||||
resolution: "proxy-addr@npm:2.0.7"
|
||||
|
||||
Reference in New Issue
Block a user