mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-09-11 19:47:35 +03:00
feat: use SafeInt
replace Float
(#5613)
This commit is contained in:
parent
b9f20877d0
commit
ee8ec47a4f
@ -63,6 +63,7 @@
|
||||
"file-type": "^19.0.0",
|
||||
"get-stream": "^8.0.1",
|
||||
"graphql": "^16.8.1",
|
||||
"graphql-scalars": "^1.22.4",
|
||||
"graphql-type-json": "^0.3.2",
|
||||
"graphql-upload": "^16.0.2",
|
||||
"ioredis": "^5.3.2",
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { createUnionType, Field, Float, ID, ObjectType } from '@nestjs/graphql';
|
||||
import { createUnionType, Field, ID, ObjectType } from '@nestjs/graphql';
|
||||
import type { User } from '@prisma/client';
|
||||
import { SafeIntResolver } from 'graphql-scalars';
|
||||
|
||||
@ObjectType('UserQuotaHumanReadable')
|
||||
export class UserQuotaHumanReadableType {
|
||||
@ -24,13 +25,13 @@ export class UserQuotaType {
|
||||
@Field({ name: 'name' })
|
||||
name!: string;
|
||||
|
||||
@Field(() => Float, { name: 'blobLimit' })
|
||||
@Field(() => SafeIntResolver, { name: 'blobLimit' })
|
||||
blobLimit!: number;
|
||||
|
||||
@Field(() => Float, { name: 'storageQuota' })
|
||||
@Field(() => SafeIntResolver, { name: 'storageQuota' })
|
||||
storageQuota!: number;
|
||||
|
||||
@Field(() => Float, { name: 'historyPeriod' })
|
||||
@Field(() => SafeIntResolver, { name: 'historyPeriod' })
|
||||
historyPeriod!: number;
|
||||
|
||||
@Field({ name: 'memberLimit' })
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { HttpStatus, Logger, UseGuards } from '@nestjs/common';
|
||||
import {
|
||||
Args,
|
||||
Float,
|
||||
Int,
|
||||
Mutation,
|
||||
Parent,
|
||||
@ -10,6 +9,7 @@ import {
|
||||
Resolver,
|
||||
} from '@nestjs/graphql';
|
||||
import { GraphQLError } from 'graphql';
|
||||
import { SafeIntResolver } from 'graphql-scalars';
|
||||
import GraphQLUpload from 'graphql-upload/GraphQLUpload.mjs';
|
||||
|
||||
import {
|
||||
@ -100,7 +100,7 @@ export class WorkspaceBlobResolver {
|
||||
async checkBlobSize(
|
||||
@CurrentUser() user: UserType,
|
||||
@Args('workspaceId') workspaceId: string,
|
||||
@Args('size', { type: () => Float }) blobSize: number
|
||||
@Args('size', { type: () => SafeIntResolver }) blobSize: number
|
||||
) {
|
||||
const canWrite = await this.permissions.tryCheckWorkspace(
|
||||
workspaceId,
|
||||
|
@ -1,6 +1,5 @@
|
||||
import {
|
||||
Field,
|
||||
Float,
|
||||
ID,
|
||||
InputType,
|
||||
ObjectType,
|
||||
@ -10,6 +9,7 @@ import {
|
||||
registerEnumType,
|
||||
} from '@nestjs/graphql';
|
||||
import type { Workspace } from '@prisma/client';
|
||||
import { SafeIntResolver } from 'graphql-scalars';
|
||||
|
||||
import { UserType } from '../users/types';
|
||||
|
||||
@ -78,7 +78,7 @@ export class InvitationWorkspaceType {
|
||||
|
||||
@ObjectType()
|
||||
export class WorkspaceBlobSizes {
|
||||
@Field(() => Float)
|
||||
@Field(() => SafeIntResolver)
|
||||
size!: number;
|
||||
}
|
||||
|
||||
|
@ -23,13 +23,18 @@ type UserQuotaHumanReadable {
|
||||
|
||||
type UserQuota {
|
||||
name: String!
|
||||
blobLimit: Float!
|
||||
storageQuota: Float!
|
||||
historyPeriod: Float!
|
||||
blobLimit: SafeInt!
|
||||
storageQuota: SafeInt!
|
||||
historyPeriod: SafeInt!
|
||||
memberLimit: Int!
|
||||
humanReadable: UserQuotaHumanReadable!
|
||||
}
|
||||
|
||||
"""
|
||||
The `SafeInt` scalar type represents non-fractional signed whole numeric values that are considered safe as defined by the ECMAScript specification.
|
||||
"""
|
||||
scalar SafeInt @specifiedBy(url: "https://www.ecma-international.org/ecma-262/#sec-number.issafeinteger")
|
||||
|
||||
type UserType {
|
||||
id: ID!
|
||||
|
||||
@ -172,7 +177,7 @@ type InvitationWorkspaceType {
|
||||
}
|
||||
|
||||
type WorkspaceBlobSizes {
|
||||
size: Float!
|
||||
size: SafeInt!
|
||||
}
|
||||
|
||||
type InvitationType {
|
||||
@ -309,7 +314,7 @@ type Query {
|
||||
"""List blobs of workspace"""
|
||||
listBlobs(workspaceId: String!): [String!]! @deprecated(reason: "use `workspace.blobs` instead")
|
||||
collectAllBlobSizes: WorkspaceBlobSizes! @deprecated(reason: "use `user.storageUsage` instead")
|
||||
checkBlobSize(workspaceId: String!, size: Float!): WorkspaceBlobSizes! @deprecated(reason: "no more needed")
|
||||
checkBlobSize(workspaceId: String!, size: SafeInt!): WorkspaceBlobSizes! @deprecated(reason: "no more needed")
|
||||
|
||||
"""Get current user"""
|
||||
currentUser: UserType
|
||||
|
@ -74,7 +74,7 @@ export async function checkBlobSize(
|
||||
.post(gql)
|
||||
.auth(token, { type: 'bearer' })
|
||||
.send({
|
||||
query: `query checkBlobSize($workspaceId: String!, $size: Float!) {
|
||||
query: `query checkBlobSize($workspaceId: String!, $size: SafeInt!) {
|
||||
checkBlobSize(workspaceId: $workspaceId, size: $size) {
|
||||
size
|
||||
}
|
||||
|
@ -16,8 +16,9 @@ config:
|
||||
Decimal: number
|
||||
UUID: string
|
||||
ID: string
|
||||
JSON: any
|
||||
JSON: string
|
||||
Upload: File
|
||||
SafeInt: number
|
||||
overwrite: true
|
||||
schema: ../../backend/server/src/schema.gql
|
||||
documents: ./src/**/*.gql
|
||||
|
@ -1,4 +1,4 @@
|
||||
query checkBlobSizes($workspaceId: String!, $size: Float!) {
|
||||
query checkBlobSizes($workspaceId: String!, $size: SafeInt!) {
|
||||
checkBlobSize(workspaceId: $workspaceId, size: $size) {
|
||||
size
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ export const checkBlobSizesQuery = {
|
||||
definitionName: 'checkBlobSize',
|
||||
containsFile: false,
|
||||
query: `
|
||||
query checkBlobSizes($workspaceId: String!, $size: Float!) {
|
||||
query checkBlobSizes($workspaceId: String!, $size: SafeInt!) {
|
||||
checkBlobSize(workspaceId: $workspaceId, size: $size) {
|
||||
size
|
||||
}
|
||||
|
@ -28,6 +28,8 @@ export interface Scalars {
|
||||
Float: { input: number; output: number };
|
||||
/** A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format. */
|
||||
DateTime: { input: string; output: string };
|
||||
/** The `SafeInt` scalar type represents non-fractional signed whole numeric values that are considered safe as defined by the ECMAScript specification. */
|
||||
SafeInt: { input: number; output: number };
|
||||
/** The `Upload` scalar type represents a file upload. */
|
||||
Upload: { input: File; output: File };
|
||||
}
|
||||
@ -93,7 +95,7 @@ export interface UpdateWorkspaceInput {
|
||||
|
||||
export type CheckBlobSizesQueryVariables = Exact<{
|
||||
workspaceId: Scalars['String']['input'];
|
||||
size: Scalars['Float']['input'];
|
||||
size: Scalars['SafeInt']['input'];
|
||||
}>;
|
||||
|
||||
export type CheckBlobSizesQuery = {
|
||||
|
12
yarn.lock
12
yarn.lock
@ -689,6 +689,7 @@ __metadata:
|
||||
file-type: "npm:^19.0.0"
|
||||
get-stream: "npm:^8.0.1"
|
||||
graphql: "npm:^16.8.1"
|
||||
graphql-scalars: "npm:^1.22.4"
|
||||
graphql-type-json: "npm:^0.3.2"
|
||||
graphql-upload: "npm:^16.0.2"
|
||||
ioredis: "npm:^5.3.2"
|
||||
@ -21878,6 +21879,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"graphql-scalars@npm:^1.22.4":
|
||||
version: 1.22.4
|
||||
resolution: "graphql-scalars@npm:1.22.4"
|
||||
dependencies:
|
||||
tslib: "npm:^2.5.0"
|
||||
peerDependencies:
|
||||
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
|
||||
checksum: 110c1fa29d7564d9967c974de2df08c99d7ed43af98097e5a5729f952c064b21f66a9f5a68143c50eeac6a4ce14f0999aed2ce8f043d02331d133b0c59a9c1ec
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"graphql-tag@npm:2.12.6, graphql-tag@npm:^2.11.0":
|
||||
version: 2.12.6
|
||||
resolution: "graphql-tag@npm:2.12.6"
|
||||
|
Loading…
Reference in New Issue
Block a user