Skip to content

Commit

Permalink
rename Serial types to JSON types
Browse files Browse the repository at this point in the history
  • Loading branch information
tylim88 committed Aug 3, 2023
1 parent c5e9f65 commit 3f1a048
Show file tree
Hide file tree
Showing 8 changed files with 98 additions and 99 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "firelordjs",
"version": "2.6.7",
"version": "2.6.8",
"description": "🔥 High Precision Typescript Wrapper for Firestore Web, Providing Unparalleled Type Safe and Dev Experience",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
10 changes: 5 additions & 5 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ export type {
FirelordRef,
OnSnapshot,
Unsubscribe,
SerialDate as DateSerial,
SerialServerTimestamp as ServerTimestampPersist,
SerialTimestamp as TimestampPersist,
SerialGeoPoint as GeoPointPersist,
SerialDocumentReference as DocumentReferencePersist,
JSONDate as DateJSON,
JSONServerTimestamp as ServerTimestampPersist,
JSONTimestamp as TimestampPersist,
JSONGeoPoint as GeoPointPersist,
JSONDocumentReference as DocumentReferencePersist,
} from './types'
4 changes: 2 additions & 2 deletions src/types/fieldValues.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { OriFieldValue } from './alias'
import { ErrorArrayFieldValueEmpty } from './error'
import { SerialServerTimestamp } from './serial'
import { JSONServerTimestamp } from './serial'

declare const serverTimestampSymbol: unique symbol
declare const deleteFieldSymbol: unique symbol
Expand Down Expand Up @@ -48,4 +48,4 @@ export type FieldValues =
| ServerTimestamp
| UnassignedAbleFieldValue
| Delete
| SerialServerTimestamp
| JSONServerTimestamp
28 changes: 14 additions & 14 deletions src/types/metaTypeCreator/compare.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ import { DeepValue } from '../objectFlatten'
import { DocumentReference } from '../refs'
import { MetaType } from './metaType'
import {
SerialDate,
SerialGeoPoint,
SerialServerTimestamp,
SerialDocumentReference,
SerialTimestamp,
JSONDate,
JSONGeoPoint,
JSONServerTimestamp,
JSONDocumentReference,
JSONTimestamp,
} from '../serial'

type CompareConverterArray<T, BannedTypes> = NoDirectNestedArray<
Expand All @@ -29,11 +29,11 @@ type CompareConverterArray<T, BannedTypes> = NoDirectNestedArray<
? readonly CompareConverterArray<A, BannedTypes>[]
: T extends FieldValues
? ErrorFieldValueInArray
: T extends Date | Timestamp | SerialDate | SerialTimestamp
: T extends Date | Timestamp | JSONDate | JSONTimestamp
? Timestamp | Date
: T extends SerialDocumentReference<infer R>
: T extends JSONDocumentReference<infer R>
? DocumentReference<R>
: T extends SerialGeoPoint
: T extends JSONGeoPoint
? GeoPoint
: T extends DocumentReference<MetaType> | Bytes | GeoPoint
? T
Expand All @@ -54,15 +54,15 @@ export type CompareConverter<T, BannedTypes> = NoDirectNestedArray<
| ServerTimestamp
| Date
| Timestamp
| SerialDate
| SerialTimestamp
| SerialServerTimestamp
| JSONDate
| JSONTimestamp
| JSONServerTimestamp
? Timestamp | Date
: T extends SerialGeoPoint
: T extends JSONGeoPoint
? GeoPoint
: T extends SerialDocumentReference<MetaType>
: T extends JSONDocumentReference<MetaType>
? DocumentReference<MetaType>
: T extends DocumentReference<MetaType> | Bytes | GeoPoint | SerialGeoPoint
: T extends DocumentReference<MetaType> | Bytes | GeoPoint | JSONGeoPoint
? T
: T extends Record<string, unknown>
? {
Expand Down
48 changes: 24 additions & 24 deletions src/types/metaTypeCreator/metaTypeCreator.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ import { IsTrue, IsSame, IsEqual } from '../utils'
import { Parent, User } from '../../utilForTests'
import { __name__Record } from '../fieldPath'
import {
SerialDate,
SerialGeoPoint,
SerialServerTimestamp,
SerialDocumentReference,
SerialTimestamp,
JSONDate,
JSONGeoPoint,
JSONServerTimestamp,
JSONDocumentReference,
JSONTimestamp,
} from '../serial'

describe('test Firelord type', () => {
Expand Down Expand Up @@ -840,16 +840,16 @@ describe('test Firelord type', () => {
it('test persistent type', () => {
type A = MetaTypeCreator<
{
a: SerialTimestamp
b: SerialDate
c: SerialServerTimestamp
d: SerialDocumentReference<MetaType>
e: SerialGeoPoint
f: SerialTimestamp[]
g: SerialDate[]
h: SerialServerTimestamp[]
i: SerialDocumentReference<MetaType>[]
j: SerialGeoPoint[]
a: JSONTimestamp
b: JSONDate
c: JSONServerTimestamp
d: JSONDocumentReference<MetaType>
e: JSONGeoPoint
f: JSONTimestamp[]
g: JSONDate[]
h: JSONServerTimestamp[]
i: JSONDocumentReference<MetaType>[]
j: JSONGeoPoint[]
},
'Persist'
>
Expand All @@ -861,16 +861,16 @@ describe('test Firelord type', () => {
type ExpectCompare = A['compare']

type Read = {
a: SerialTimestamp
b: SerialTimestamp
c: SerialTimestamp
d: SerialDocumentReference<MetaType>
e: SerialGeoPoint
f: SerialTimestamp[]
g: SerialTimestamp[]
a: JSONTimestamp
b: JSONTimestamp
c: JSONTimestamp
d: JSONDocumentReference<MetaType>
e: JSONGeoPoint
f: JSONTimestamp[]
g: JSONTimestamp[]
h: ErrorFieldValueInArray[]
i: SerialDocumentReference<MetaType>[]
j: SerialGeoPoint[]
i: JSONDocumentReference<MetaType>[]
j: JSONGeoPoint[]
}

type Write = {
Expand Down
30 changes: 15 additions & 15 deletions src/types/metaTypeCreator/read.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ import {
import { DocumentReference } from '../refs'
import { MetaType } from './metaType'
import {
SerialDate,
SerialGeoPoint,
SerialServerTimestamp,
SerialDocumentReference,
SerialTimestamp,
JSONDate,
JSONGeoPoint,
JSONServerTimestamp,
JSONDocumentReference,
JSONTimestamp,
} from '../serial'

type ReadConverterArray<
Expand All @@ -46,14 +46,14 @@ type ReadConverterArray<
? ErrorFieldValueInArray
: T extends Date | Timestamp
? Timestamp | U
: T extends SerialDate | SerialTimestamp
? SerialTimestamp | U
: T extends JSONDate | JSONTimestamp
? JSONTimestamp | U
: T extends
| DocumentReference<MetaType>
| Bytes
| GeoPoint
| SerialGeoPoint
| SerialDocumentReference<MetaType>
| JSONGeoPoint
| JSONDocumentReference<MetaType>
? T | U
: T extends Record<string, unknown>
?
Expand Down Expand Up @@ -90,16 +90,16 @@ export type ReadConverter<T, allFieldsPossiblyReadAsUndefined, BannedTypes> =
| allFieldsPossiblyReadAsUndefined
: T extends ServerTimestamp | Date | Timestamp
? Timestamp | allFieldsPossiblyReadAsUndefined
: T extends SerialDate | SerialTimestamp | SerialServerTimestamp
? SerialTimestamp
: T extends JSONDate | JSONTimestamp | JSONServerTimestamp
? JSONTimestamp
: T extends
| DocumentReference<MetaType>
| Bytes
| GeoPoint
| SerialGeoPoint
| SerialDocumentReference<MetaType>
| SerialDate
| SerialTimestamp
| JSONGeoPoint
| JSONDocumentReference<MetaType>
| JSONDate
| JSONTimestamp
? T | allFieldsPossiblyReadAsUndefined
: T extends Record<string, unknown>
?
Expand Down
32 changes: 16 additions & 16 deletions src/types/metaTypeCreator/write.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ import { DeepValue } from '../objectFlatten'
import { DocumentReference } from '../refs'
import { MetaType } from './metaType'
import {
SerialDate,
SerialGeoPoint,
SerialServerTimestamp,
SerialDocumentReference,
SerialTimestamp,
JSONDate,
JSONGeoPoint,
JSONServerTimestamp,
JSONDocumentReference,
JSONTimestamp,
} from '../serial'

type ArrayWriteConverter<T, BannedTypes> = NoDirectNestedArray<
Expand All @@ -31,13 +31,13 @@ type ArrayWriteConverter<T, BannedTypes> = NoDirectNestedArray<
? readonly ArrayWriteConverter<A, BannedTypes>[]
: T extends FieldValues
? ErrorFieldValueInArray
: T extends Timestamp | Date | SerialDate | SerialTimestamp
: T extends Timestamp | Date | JSONDate | JSONTimestamp
? Timestamp | Date
: T extends DocumentReference<MetaType> | Bytes | GeoPoint
? T
: T extends SerialDocumentReference<infer R>
: T extends JSONDocumentReference<infer R>
? DocumentReference<R>
: T extends SerialGeoPoint
: T extends JSONGeoPoint
? GeoPoint
: T extends Record<string, unknown>
? {
Expand All @@ -56,17 +56,17 @@ export type WriteConverter<T, BannedTypes> = NoDirectNestedArray<
| ArrayUnionOrRemove<ArrayWriteConverter<A, BannedTypes>>
: T extends DocumentReference<MetaType> | ServerTimestamp | GeoPoint
? T
: T extends SerialServerTimestamp
: T extends JSONServerTimestamp
? ServerTimestamp
: T extends SerialDocumentReference<infer R>
: T extends JSONDocumentReference<infer R>
? DocumentReference<R>
: T extends SerialGeoPoint
: T extends JSONGeoPoint
? GeoPoint
: T extends number
? number extends T
? T | Increment
: T
: T extends Timestamp | Date | SerialDate | SerialTimestamp
: T extends Timestamp | Date | JSONDate | JSONTimestamp
? Timestamp | Date
: T extends Record<string, unknown>
? {
Expand All @@ -91,17 +91,17 @@ export type WriteUpdateConverter<T, BannedTypes> = NoDirectNestedArray<
| Delete
| GeoPoint
? T
: T extends SerialServerTimestamp
: T extends JSONServerTimestamp
? ServerTimestamp
: T extends SerialDocumentReference<infer R>
: T extends JSONDocumentReference<infer R>
? DocumentReference<R>
: T extends SerialGeoPoint
: T extends JSONGeoPoint
? GeoPoint
: T extends number
? number extends T
? T | Increment
: T
: T extends Timestamp | Date | SerialDate | SerialTimestamp
: T extends Timestamp | Date | JSONDate | JSONTimestamp
? Timestamp | Date
: T extends Record<string, unknown>
? {
Expand Down
43 changes: 21 additions & 22 deletions src/types/serial.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,35 @@ import { DocumentReference } from './refs'
import { MetaType } from './metaTypeCreator'
import { StrictPick } from './utils'

declare const SerialServerTimestampSymbol: unique symbol
declare const SerialTimestampSymbol: unique symbol
declare const SerialDateSymbol: unique symbol
declare const SerialGeoPointSymbol: unique symbol
declare const SerialDocumentReferenceSymbol: unique symbol

type SerialServerTimestampSymbol = typeof SerialServerTimestampSymbol
type SerialTimestampSymbol = typeof SerialTimestampSymbol
type SerialDateSymbol = typeof SerialDateSymbol
type SerialGeoPointSymbol = typeof SerialGeoPointSymbol
type SerialDocumentReferenceSymbol = typeof SerialDocumentReferenceSymbol

declare class Serial<T> {
Firelord_Serial: T
declare const JSONServerTimestampSymbol: unique symbol
declare const JSONTimestampSymbol: unique symbol
declare const JSONDateSymbol: unique symbol
declare const JSONGeoPointSymbol: unique symbol
declare const JSONDocumentReferenceSymbol: unique symbol

type JSONServerTimestampSymbol = typeof JSONServerTimestampSymbol
type JSONTimestampSymbol = typeof JSONTimestampSymbol
type JSONDateSymbol = typeof JSONDateSymbol
type JSONGeoPointSymbol = typeof JSONGeoPointSymbol
type JSONDocumentReferenceSymbol = typeof JSONDocumentReferenceSymbol

declare class JSON<T> {
Firelord_JSON: T
}

export interface SerialServerTimestamp
extends Serial<SerialServerTimestampSymbol> {}
export interface JSONServerTimestamp extends JSON<JSONServerTimestampSymbol> {}

export interface SerialDate extends Serial<SerialDateSymbol> {}
export interface JSONDate extends JSON<JSONDateSymbol> {}

export interface SerialTimestamp
export interface JSONTimestamp
extends StrictPick<Timestamp, 'nanoseconds' | 'seconds'>,
Serial<SerialTimestampSymbol> {}
JSON<JSONTimestampSymbol> {}

export interface SerialGeoPoint extends Serial<SerialGeoPointSymbol> {
export interface JSONGeoPoint extends JSON<JSONGeoPointSymbol> {
latitude: number
longitude: number
}

export interface SerialDocumentReference<T extends MetaType>
export interface JSONDocumentReference<T extends MetaType>
extends StrictPick<DocumentReference<T>, 'type'>,
Serial<SerialDocumentReferenceSymbol> {}
JSON<JSONDocumentReferenceSymbol> {}

0 comments on commit 3f1a048

Please sign in to comment.