Skip to content

Commit a8f75c0

Browse files
committed
T-257 minifying of field constants
1 parent a5d099b commit a8f75c0

File tree

8 files changed

+2598
-3530
lines changed

8 files changed

+2598
-3530
lines changed

generateFields.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,24 @@ const { format } = require('prettier');
22

33
const getBaseType = type => (type.ofType ? getBaseType(type.ofType) : type);
44

5+
const nameMap = {};
6+
7+
const getName = name => {
8+
const mappedName =
9+
Object.keys(nameMap).find(key => nameMap[key] === name) ||
10+
Object.keys(nameMap).length;
11+
nameMap[mappedName] = name;
12+
return mappedName;
13+
};
14+
515
const generateFields = ({ type, maxDepth }, fields, parents = []) =>
616
Object.values(fields)
717
.map(field => {
818
const nextFields = getBaseType(field.type)._fields;
9-
const value =
10-
parents.map(parent => `${parent} {`).join('') +
11-
field.name +
12-
parents.map(_parent => '}').join('');
13-
1419
if (!nextFields) {
20+
const value = [...parents, field.name]
21+
.map(name => getName(name))
22+
.join(',');
1523
return `${field.name}: ${type ? 'string' : `'${value}'`}`;
1624
}
1725
if (parents.length > maxDepth) {
@@ -29,7 +37,7 @@ const generateFields = ({ type, maxDepth }, fields, parents = []) =>
2937
module.exports = {
3038
plugin: (schema, _documents, { maxDepth, baseTypes }) => {
3139
const typeMap = schema.getTypeMap();
32-
const final = Object.values(typeMap)
40+
let final = Object.values(typeMap)
3341
.filter(type => baseTypes.includes(type.name))
3442
.map(
3543
type => `export type ${type.name}Fields = {
@@ -41,6 +49,8 @@ module.exports = {
4149
)
4250
.join('');
4351

52+
final += `export const nameMap = ${JSON.stringify(nameMap)}`;
53+
4454
return format(final, {
4555
parser: 'typescript',
4656
trailingComma: 'all',

index.node.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

index.web.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/generated/fields.d.ts

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3684,3 +3684,86 @@ export declare type TokenFields = {
36843684
};
36853685
};
36863686
export declare const TokenFields: TokenFields;
3687+
export declare const nameMap: {
3688+
'0': string;
3689+
'1': string;
3690+
'2': string;
3691+
'3': string;
3692+
'4': string;
3693+
'5': string;
3694+
'6': string;
3695+
'7': string;
3696+
'8': string;
3697+
'9': string;
3698+
'10': string;
3699+
'11': string;
3700+
'12': string;
3701+
'13': string;
3702+
'14': string;
3703+
'15': string;
3704+
'16': string;
3705+
'17': string;
3706+
'18': string;
3707+
'19': string;
3708+
'20': string;
3709+
'21': string;
3710+
'22': string;
3711+
'23': string;
3712+
'24': string;
3713+
'25': string;
3714+
'26': string;
3715+
'27': string;
3716+
'28': string;
3717+
'29': string;
3718+
'30': string;
3719+
'31': string;
3720+
'32': string;
3721+
'33': string;
3722+
'34': string;
3723+
'35': string;
3724+
'36': string;
3725+
'37': string;
3726+
'38': string;
3727+
'39': string;
3728+
'40': string;
3729+
'41': string;
3730+
'42': string;
3731+
'43': string;
3732+
'44': string;
3733+
'45': string;
3734+
'46': string;
3735+
'47': string;
3736+
'48': string;
3737+
'49': string;
3738+
'50': string;
3739+
'51': string;
3740+
'52': string;
3741+
'53': string;
3742+
'54': string;
3743+
'55': string;
3744+
'56': string;
3745+
'57': string;
3746+
'58': string;
3747+
'59': string;
3748+
'60': string;
3749+
'61': string;
3750+
'62': string;
3751+
'63': string;
3752+
'64': string;
3753+
'65': string;
3754+
'66': string;
3755+
'67': string;
3756+
'68': string;
3757+
'69': string;
3758+
'70': string;
3759+
'71': string;
3760+
'72': string;
3761+
'73': string;
3762+
'74': string;
3763+
'75': string;
3764+
'76': string;
3765+
'77': string;
3766+
'78': string;
3767+
'79': string;
3768+
'80': string;
3769+
};

0 commit comments

Comments
 (0)