@thangnv-dev/graphql-common 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/relay.d.ts +31 -0
- package/dist/relay.d.ts.map +1 -0
- package/dist/relay.js +12 -0
- package/dist/relay.js.map +1 -0
- package/dist/scalars.d.ts +10 -0
- package/dist/scalars.d.ts.map +1 -0
- package/dist/scalars.js +58 -0
- package/dist/scalars.js.map +1 -0
- package/package.json +42 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,cAAc,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,cAAc,CAAA"}
|
package/dist/relay.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type RelayNode = {
|
|
2
|
+
id: string;
|
|
3
|
+
};
|
|
4
|
+
export type RelayPageInfo = {
|
|
5
|
+
hasNextPage: boolean;
|
|
6
|
+
hasPreviousPage: boolean;
|
|
7
|
+
startCursor?: string;
|
|
8
|
+
endCursor?: string;
|
|
9
|
+
};
|
|
10
|
+
export type RelayEdge<TNode extends RelayNode = RelayNode> = {
|
|
11
|
+
cursor: string;
|
|
12
|
+
node: TNode;
|
|
13
|
+
};
|
|
14
|
+
export type RelayConnection<TEdge extends RelayEdge = RelayEdge> = {
|
|
15
|
+
edges: TEdge[];
|
|
16
|
+
pageInfo: RelayPageInfo;
|
|
17
|
+
totalCount?: number;
|
|
18
|
+
};
|
|
19
|
+
export type RelayConnectionArgs = {
|
|
20
|
+
first?: number;
|
|
21
|
+
after?: string;
|
|
22
|
+
last?: number;
|
|
23
|
+
before?: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function createRelayConnection<TNode extends RelayNode>(input: {
|
|
26
|
+
nodes: TNode[];
|
|
27
|
+
cursorForNode: (node: TNode, index: number) => string;
|
|
28
|
+
pageInfo: RelayPageInfo;
|
|
29
|
+
totalCount?: number;
|
|
30
|
+
}): RelayConnection<RelayEdge<TNode>>;
|
|
31
|
+
//# sourceMappingURL=relay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI;IAC3D,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI;IACjE,KAAK,EAAE,KAAK,EAAE,CAAA;IACd,QAAQ,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,SAAS,EAAE,KAAK,EAAE;IACpE,KAAK,EAAE,KAAK,EAAE,CAAA;IACd,aAAa,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACrD,QAAQ,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAWpC"}
|
package/dist/relay.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function createRelayConnection(input) {
|
|
2
|
+
const edges = input.nodes.map((node, index) => ({
|
|
3
|
+
cursor: input.cursorForNode(node, index),
|
|
4
|
+
node,
|
|
5
|
+
}));
|
|
6
|
+
return {
|
|
7
|
+
edges,
|
|
8
|
+
pageInfo: input.pageInfo,
|
|
9
|
+
totalCount: input.totalCount,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=relay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,qBAAqB,CAA0B,KAK9D;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;QACxC,IAAI;KACL,CAAC,CAAC,CAAA;IAEH,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GraphQLScalarType } from 'graphql';
|
|
2
|
+
export declare const GraphQLInt64: GraphQLScalarType<unknown, unknown>;
|
|
3
|
+
export declare const GraphQLBinary: GraphQLScalarType<unknown, unknown>;
|
|
4
|
+
export declare const GraphQLInstant: GraphQLScalarType<unknown, unknown>;
|
|
5
|
+
export declare const GraphQLPlainDate: GraphQLScalarType<unknown, unknown>;
|
|
6
|
+
export declare const GraphQLPlainDateTime: GraphQLScalarType<unknown, unknown>;
|
|
7
|
+
export declare const GraphQLPlainTime: GraphQLScalarType<unknown, unknown>;
|
|
8
|
+
export declare const GraphQLZonedDateTime: GraphQLScalarType<unknown, unknown>;
|
|
9
|
+
export declare const GraphQLDuration: GraphQLScalarType<unknown, unknown>;
|
|
10
|
+
//# sourceMappingURL=scalars.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../src/scalars.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,SAAS,CAAA;AA4E3D,eAAO,MAAM,YAAY,qCAKxB,CAAA;AAED,eAAO,MAAM,aAAa,qCAKzB,CAAA;AAED,eAAO,MAAM,cAAc,qCAK1B,CAAA;AAED,eAAO,MAAM,gBAAgB,qCAK5B,CAAA;AAED,eAAO,MAAM,oBAAoB,qCAKhC,CAAA;AAED,eAAO,MAAM,gBAAgB,qCAK5B,CAAA;AAED,eAAO,MAAM,oBAAoB,qCAKhC,CAAA;AAED,eAAO,MAAM,eAAe,qCAK3B,CAAA"}
|
package/dist/scalars.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ZodBinary, ZodDuration, ZodInstant, ZodInt64, ZodPlainDate, ZodPlainDateTime, ZodPlainTime, ZodZonedDateTime, } from '@thangnv-dev/data-common';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
const require = createRequire(import.meta.url);
|
|
4
|
+
const { GraphQLScalarType: GraphQLScalarTypeCtor, valueFromASTUntyped, } = require('graphql');
|
|
5
|
+
function toErrorMessage(name, error) {
|
|
6
|
+
const firstIssue = error.issues[0];
|
|
7
|
+
if (!firstIssue) {
|
|
8
|
+
return `${name} cannot represent the provided value`;
|
|
9
|
+
}
|
|
10
|
+
return `${name} cannot represent the provided value: ${firstIssue.message}`;
|
|
11
|
+
}
|
|
12
|
+
function parseWithSchema(name, schema, value) {
|
|
13
|
+
const parsed = schema.safeParse(value);
|
|
14
|
+
if (!parsed.success) {
|
|
15
|
+
throw new TypeError(toErrorMessage(name, parsed.error));
|
|
16
|
+
}
|
|
17
|
+
return parsed.data;
|
|
18
|
+
}
|
|
19
|
+
function createScalar(name, description, schema, serializeValue) {
|
|
20
|
+
return new GraphQLScalarTypeCtor({
|
|
21
|
+
name,
|
|
22
|
+
description,
|
|
23
|
+
parseValue(value) {
|
|
24
|
+
return parseWithSchema(name, schema, value);
|
|
25
|
+
},
|
|
26
|
+
parseLiteral(ast, variables) {
|
|
27
|
+
const value = valueFromASTUntyped(ast, variables);
|
|
28
|
+
return parseWithSchema(name, schema, value);
|
|
29
|
+
},
|
|
30
|
+
serialize(value) {
|
|
31
|
+
const parsed = parseWithSchema(name, schema, value);
|
|
32
|
+
return serializeValue(parsed);
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function encodeBase64(bytes) {
|
|
37
|
+
if (typeof btoa === 'function') {
|
|
38
|
+
let raw = '';
|
|
39
|
+
for (const byte of bytes) {
|
|
40
|
+
raw += String.fromCharCode(byte);
|
|
41
|
+
}
|
|
42
|
+
return btoa(raw);
|
|
43
|
+
}
|
|
44
|
+
const bufferCtor = globalThis.Buffer;
|
|
45
|
+
if (bufferCtor) {
|
|
46
|
+
return bufferCtor.from(bytes).toString('base64');
|
|
47
|
+
}
|
|
48
|
+
throw new TypeError('Base64 encoding is not available in this runtime');
|
|
49
|
+
}
|
|
50
|
+
export const GraphQLInt64 = createScalar('Int64', 'Signed 64-bit integer represented as bigint in resolvers and string in transport.', ZodInt64, (value) => value.toString());
|
|
51
|
+
export const GraphQLBinary = createScalar('Binary', 'Binary data represented as Uint8Array in resolvers and base64 string in transport.', ZodBinary, (value) => encodeBase64(value));
|
|
52
|
+
export const GraphQLInstant = createScalar('Instant', 'Temporal.Instant serialized as ISO-8601 string.', ZodInstant, (value) => value.toString());
|
|
53
|
+
export const GraphQLPlainDate = createScalar('PlainDate', 'Temporal.PlainDate serialized as ISO date string.', ZodPlainDate, (value) => value.toString());
|
|
54
|
+
export const GraphQLPlainDateTime = createScalar('PlainDateTime', 'Temporal.PlainDateTime serialized as ISO date-time string.', ZodPlainDateTime, (value) => value.toString());
|
|
55
|
+
export const GraphQLPlainTime = createScalar('PlainTime', 'Temporal.PlainTime serialized as ISO time string.', ZodPlainTime, (value) => value.toString());
|
|
56
|
+
export const GraphQLZonedDateTime = createScalar('ZonedDateTime', 'Temporal.ZonedDateTime serialized as ISO zoned date-time string.', ZodZonedDateTime, (value) => value.toString());
|
|
57
|
+
export const GraphQLDuration = createScalar('Duration', 'Temporal.Duration serialized as ISO-8601 duration string.', ZodDuration, (value) => value.toString());
|
|
58
|
+
//# sourceMappingURL=scalars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalars.js","sourceRoot":"","sources":["../src/scalars.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@thangnv-dev/graphql-common",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"default": "./dist/index.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc -p tsconfig.build.json",
|
|
22
|
+
"lint": "eslint .",
|
|
23
|
+
"typecheck": "tsc --noEmit",
|
|
24
|
+
"test": "vitest run"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@thangnv-dev/data-common": "workspace:^"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@typescript-eslint/eslint-plugin": "^8.56.0",
|
|
31
|
+
"@typescript-eslint/parser": "^8.56.0",
|
|
32
|
+
"eslint": "^10.0.0",
|
|
33
|
+
"graphql": "^16.12.0",
|
|
34
|
+
"temporal-polyfill": "^0.3.0",
|
|
35
|
+
"typescript": "^5.9.3",
|
|
36
|
+
"vitest": "^4.0.18"
|
|
37
|
+
},
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"graphql": "^16.0.0",
|
|
40
|
+
"temporal-polyfill": "*"
|
|
41
|
+
}
|
|
42
|
+
}
|