From eb7a50c61006282d1e93c8e78b741fb885b295d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Po=C5=9Bpiech?= Date: Fri, 9 Sep 2022 14:04:11 +0200 Subject: [PATCH 1/3] Add types for fetch package --- packages/fetch/fetch.d.ts | 4 ++++ packages/fetch/package-types.json | 3 +++ packages/fetch/package.js | 1 + 3 files changed, 8 insertions(+) create mode 100644 packages/fetch/fetch.d.ts create mode 100644 packages/fetch/package-types.json diff --git a/packages/fetch/fetch.d.ts b/packages/fetch/fetch.d.ts new file mode 100644 index 0000000000..8d6eb289ad --- /dev/null +++ b/packages/fetch/fetch.d.ts @@ -0,0 +1,4 @@ +export declare function fetch(): typeof globalThis.fetch; +export declare var Headers: typeof globalThis.Headers; +export declare var Request: typeof globalThis.Request; +export declare var Response: typeof globalThis.Response; diff --git a/packages/fetch/package-types.json b/packages/fetch/package-types.json new file mode 100644 index 0000000000..3fcb42c31a --- /dev/null +++ b/packages/fetch/package-types.json @@ -0,0 +1,3 @@ +{ + "typesEntry": "fetch.d.ts" +} diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 9c3969ff7b..53830c6a2c 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -19,6 +19,7 @@ Package.onUse(function(api) { api.mainModule("legacy.js", "legacy"); api.mainModule("server.js", "server"); + api.addAssets("fetch.d.ts", ["client", "server"]); // The other exports (Headers, Request, Response) can be imported // explicitly from the "meteor/fetch" package. api.export("fetch"); From 559a1c622f40dc06711408c640d5ded73c8d384a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Po=C5=9Bpiech?= Date: Fri, 9 Sep 2022 14:04:37 +0200 Subject: [PATCH 2/3] Add types for ejson package --- packages/ejson/ejson.d.ts | 71 +++++++++++++++++++++++++++++++ packages/ejson/package-types.json | 3 ++ packages/ejson/package.js | 1 + 3 files changed, 75 insertions(+) create mode 100644 packages/ejson/ejson.d.ts create mode 100644 packages/ejson/package-types.json diff --git a/packages/ejson/ejson.d.ts b/packages/ejson/ejson.d.ts new file mode 100644 index 0000000000..61c3a7674c --- /dev/null +++ b/packages/ejson/ejson.d.ts @@ -0,0 +1,71 @@ +export interface EJSONableCustomType { + clone?(): EJSONableCustomType; + equals?(other: Object): boolean; + toJSONValue(): JSONable; + typeName(): string; +} + +export type EJSONableProperty = + | number + | string + | boolean + | Object + | number[] + | string[] + | Object[] + | Date + | Uint8Array + | EJSONableCustomType + | undefined + | null; + +export interface EJSONable { + [key: string]: EJSONableProperty; +} + +export interface JSONable { + [key: string]: + | number + | string + | boolean + | Object + | number[] + | string[] + | Object[] + | undefined + | null; +} + +export interface EJSON extends EJSONable {} + +export namespace EJSON { + function addType( + name: string, + factory: (val: JSONable) => EJSONableCustomType + ): void; + + function clone(val: T): T; + + function equals( + a: EJSON, + b: EJSON, + options?: { keyOrderSensitive?: boolean | undefined } + ): boolean; + + function fromJSONValue(val: JSONable): any; + + function isBinary(x: Object): x is Uint8Array; + function newBinary(size: number): Uint8Array; + + function parse(str: string): EJSON; + + function stringify( + val: EJSON, + options?: { + indent?: boolean | number | string | undefined; + canonical?: boolean | undefined; + } + ): string; + + function toJSONValue(val: EJSON): JSONable; +} diff --git a/packages/ejson/package-types.json b/packages/ejson/package-types.json new file mode 100644 index 0000000000..3f2149b4c0 --- /dev/null +++ b/packages/ejson/package-types.json @@ -0,0 +1,3 @@ +{ + "typesEntry": "ejson.d.ts" +} diff --git a/packages/ejson/package.js b/packages/ejson/package.js index 2a10d49443..7ed5099790 100644 --- a/packages/ejson/package.js +++ b/packages/ejson/package.js @@ -5,6 +5,7 @@ Package.describe({ Package.onUse(function onUse(api) { api.use(['ecmascript', 'base64']); + api.addAssets('ejson.d.ts', ['client', 'server']); api.mainModule('ejson.js'); api.export('EJSON'); }); From 55690f7328938f1e6d4cba2d253b77f8b97e8dd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Po=C5=9Bpiech?= Date: Wed, 5 Oct 2022 14:55:55 +0200 Subject: [PATCH 3/3] updated adding assets --- packages/ejson/package.js | 2 +- packages/fetch/package.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ejson/package.js b/packages/ejson/package.js index 7ed5099790..654f16c568 100644 --- a/packages/ejson/package.js +++ b/packages/ejson/package.js @@ -5,7 +5,7 @@ Package.describe({ Package.onUse(function onUse(api) { api.use(['ecmascript', 'base64']); - api.addAssets('ejson.d.ts', ['client', 'server']); + api.addAssets('ejson.d.ts', 'server'); api.mainModule('ejson.js'); api.export('EJSON'); }); diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 53830c6a2c..dcba22f913 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -19,7 +19,7 @@ Package.onUse(function(api) { api.mainModule("legacy.js", "legacy"); api.mainModule("server.js", "server"); - api.addAssets("fetch.d.ts", ["client", "server"]); + api.addAssets("fetch.d.ts", "server"); // The other exports (Headers, Request, Response) can be imported // explicitly from the "meteor/fetch" package. api.export("fetch");