@atproto/lex-cli 0.9.5 → 0.9.7

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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @atproto/lex-cli
2
2
 
3
+ ## 0.9.7
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies []:
8
+ - @atproto/lexicon@0.5.2
9
+
10
+ ## 0.9.6
11
+
12
+ ### Patch Changes
13
+
14
+ - [#4294](https://github.com/bluesky-social/atproto/pull/4294) [`ac1d29ec0`](https://github.com/bluesky-social/atproto/commit/ac1d29ec0f105b4579491f563e2abd73f36c1df3) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Export record types using the `Main` identifier
15
+
3
16
  ## 0.9.5
4
17
 
5
18
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/codegen/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/codegen/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n IndentationText,\n Project,\n SourceFile,\n VariableDeclarationKind,\n} from 'ts-morph'\nimport { type LexRecord, type LexiconDoc, Lexicons } from '@atproto/lexicon'\nimport { NSID } from '@atproto/syntax'\nimport { type GeneratedAPI } from '../types'\nimport { gen, lexiconsTs, utilTs } from './common'\nimport {\n genCommonImports,\n genImports,\n genRecord,\n genUserType,\n genXrpcInput,\n genXrpcOutput,\n genXrpcParams,\n} from './lex-gen'\nimport {\n type DefTreeNode,\n lexiconsToDefTree,\n schemasToNsidTokens,\n toCamelCase,\n toScreamingSnakeCase,\n toTitleCase,\n} from './util'\n\nconst ATP_METHODS = {\n list: 'com.atproto.repo.listRecords',\n get: 'com.atproto.repo.getRecord',\n create: 'com.atproto.repo.createRecord',\n put: 'com.atproto.repo.putRecord',\n delete: 'com.atproto.repo.deleteRecord',\n}\n\nexport async function genClientApi(\n lexiconDocs: LexiconDoc[],\n): Promise<GeneratedAPI> {\n const project = new Project({\n useInMemoryFileSystem: true,\n manipulationSettings: { indentationText: IndentationText.TwoSpaces },\n })\n const api: GeneratedAPI = { files: [] }\n const lexicons = new Lexicons(lexiconDocs)\n const nsidTree = lexiconsToDefTree(lexiconDocs)\n const nsidTokens = schemasToNsidTokens(lexiconDocs)\n for (const lexiconDoc of lexiconDocs) {\n api.files.push(await lexiconTs(project, lexicons, lexiconDoc))\n }\n api.files.push(await utilTs(project))\n api.files.push(await lexiconsTs(project, lexiconDocs))\n api.files.push(await indexTs(project, lexiconDocs, nsidTree, nsidTokens))\n return api\n}\n\nconst indexTs = (\n project: Project,\n lexiconDocs: LexiconDoc[],\n nsidTree: DefTreeNode[],\n nsidTokens: Record<string, string[]>,\n) =>\n gen(project, '/index.ts', async (file) => {\n //= import { XrpcClient, type FetchHandler, type FetchHandlerOptions } from '@atproto/xrpc'\n const xrpcImport = file.addImportDeclaration({\n moduleSpecifier: '@atproto/xrpc',\n })\n xrpcImport.addNamedImports([\n { name: 'XrpcClient' },\n { name: 'FetchHandler', isTypeOnly: true },\n { name: 'FetchHandlerOptions', isTypeOnly: true },\n ])\n //= import {schemas} from './lexicons.js'\n file\n .addImportDeclaration({ moduleSpecifier: './lexicons.js' })\n .addNamedImports([{ name: 'schemas' }])\n //= import {CID} from 'multiformats/cid'\n file\n .addImportDeclaration({\n moduleSpecifier: 'multiformats/cid',\n })\n .addNamedImports([{ name: 'CID' }])\n\n //= import { type OmitKey, type Un$Typed } from './util.js'\n file\n .addImportDeclaration({ moduleSpecifier: `./util.js` })\n .addNamedImports([\n { name: 'OmitKey', isTypeOnly: true },\n { name: 'Un$Typed', isTypeOnly: true },\n ])\n\n // generate type imports and re-exports\n for (const lexicon of lexiconDocs) {\n const moduleSpecifier = `./types/${lexicon.id.split('.').join('/')}.js`\n file\n .addImportDeclaration({ moduleSpecifier })\n .setNamespaceImport(toTitleCase(lexicon.id))\n file\n .addExportDeclaration({ moduleSpecifier })\n .setNamespaceExport(toTitleCase(lexicon.id))\n }\n\n // generate token enums\n for (const nsidAuthority in nsidTokens) {\n // export const {THE_AUTHORITY} = {\n // {Name}: \"{authority.the.name}\"\n // }\n file.addVariableStatement({\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [\n {\n name: toScreamingSnakeCase(nsidAuthority),\n initializer: [\n '{',\n ...nsidTokens[nsidAuthority].map(\n (nsidName) =>\n `${toTitleCase(nsidName)}: \"${nsidAuthority}.${nsidName}\",`,\n ),\n '}',\n ].join('\\n'),\n },\n ],\n })\n }\n\n //= export class AtpBaseClient {...}\n const clientCls = file.addClass({\n name: 'AtpBaseClient',\n isExported: true,\n extends: 'XrpcClient',\n })\n\n for (const ns of nsidTree) {\n //= ns: NS\n clientCls.addProperty({\n name: ns.propName,\n type: ns.className,\n })\n }\n\n //= constructor (options: FetchHandler | FetchHandlerOptions) {\n //= super(options, schemas)\n //= {namespace declarations}\n //= }\n clientCls.addConstructor({\n parameters: [\n { name: 'options', type: 'FetchHandler | FetchHandlerOptions' },\n ],\n statements: [\n 'super(options, schemas)',\n ...nsidTree.map(\n (ns) => `this.${ns.propName} = new ${ns.className}(this)`,\n ),\n ],\n })\n\n //= /** @deprecated use `this` instead */\n //= get xrpc(): XrpcClient {\n //= return this\n //= }\n clientCls\n .addGetAccessor({\n name: 'xrpc',\n returnType: 'XrpcClient',\n statements: ['return this'],\n })\n .addJsDoc('@deprecated use `this` instead')\n\n // generate classes for the schemas\n for (const ns of nsidTree) {\n genNamespaceCls(file, ns)\n }\n })\n\nfunction genNamespaceCls(file: SourceFile, ns: DefTreeNode) {\n //= export class {ns}NS {...}\n const cls = file.addClass({\n name: ns.className,\n isExported: true,\n })\n //= _client: XrpcClient\n cls.addProperty({\n name: '_client',\n type: 'XrpcClient',\n })\n\n for (const userType of ns.userTypes) {\n if (userType.def.type !== 'record') {\n continue\n }\n //= type: TypeRecord\n const name = NSID.parse(userType.nsid).name || ''\n cls.addProperty({\n name: toCamelCase(name),\n type: `${toTitleCase(userType.nsid)}Record`,\n })\n }\n\n for (const child of ns.children) {\n //= child: ChildNS\n cls.addProperty({\n name: child.propName,\n type: child.className,\n })\n\n // recurse\n genNamespaceCls(file, child)\n }\n\n //= constructor(public client: XrpcClient) {\n //= this._client = client\n //= {child namespace prop declarations}\n //= {record prop declarations}\n //= }\n cls.addConstructor({\n parameters: [\n {\n name: 'client',\n type: 'XrpcClient',\n },\n ],\n statements: [\n `this._client = client`,\n ...ns.children.map(\n (ns) => `this.${ns.propName} = new ${ns.className}(client)`,\n ),\n ...ns.userTypes\n .filter((ut) => ut.def.type === 'record')\n .map((ut) => {\n const name = NSID.parse(ut.nsid).name || ''\n return `this.${toCamelCase(name)} = new ${toTitleCase(\n ut.nsid,\n )}Record(client)`\n }),\n ],\n })\n\n // methods\n for (const userType of ns.userTypes) {\n if (userType.def.type !== 'query' && userType.def.type !== 'procedure') {\n continue\n }\n const isGetReq = userType.def.type === 'query'\n const moduleName = toTitleCase(userType.nsid)\n const name = toCamelCase(NSID.parse(userType.nsid).name || '')\n const method = cls.addMethod({\n name,\n returnType: `Promise<${moduleName}.Response>`,\n })\n if (isGetReq) {\n method.addParameter({\n name: 'params?',\n type: `${moduleName}.QueryParams`,\n })\n } else if (userType.def.type === 'procedure') {\n method.addParameter({\n name: 'data?',\n type: `${moduleName}.InputSchema`,\n })\n }\n method.addParameter({\n name: 'opts?',\n type: `${moduleName}.CallOptions`,\n })\n method.setBodyText(\n [\n `return this._client`,\n isGetReq\n ? `.call('${userType.nsid}', params, undefined, opts)`\n : `.call('${userType.nsid}', opts?.qp, data, opts)`,\n userType.def.errors?.length\n ? // Only add a catch block if there are custom errors\n ` .catch((e) => { throw ${moduleName}.toKnownErr(e) })`\n : '',\n ].join('\\n'),\n )\n }\n\n // record api classes\n for (const userType of ns.userTypes) {\n if (userType.def.type !== 'record') {\n continue\n }\n genRecordCls(file, userType.nsid, userType.def)\n }\n}\n\nfunction genRecordCls(file: SourceFile, nsid: string, lexRecord: LexRecord) {\n //= export class {type}Record {...}\n const cls = file.addClass({\n name: `${toTitleCase(nsid)}Record`,\n isExported: true,\n })\n //= _client: XrpcClient\n cls.addProperty({\n name: '_client',\n type: 'XrpcClient',\n })\n\n //= constructor(client: XrpcClient) {\n //= this._client = client\n //= }\n const cons = cls.addConstructor()\n cons.addParameter({\n name: 'client',\n type: 'XrpcClient',\n })\n cons.setBodyText(`this._client = client`)\n\n // methods\n const typeModule = toTitleCase(nsid)\n {\n //= list()\n const method = cls.addMethod({\n isAsync: true,\n name: 'list',\n returnType: `Promise<{cursor?: string, records: ({uri: string, value: ${typeModule}.Record})[]}>`,\n })\n method.addParameter({\n name: 'params',\n type: `OmitKey<${toTitleCase(ATP_METHODS.list)}.QueryParams, \"collection\">`,\n })\n method.setBodyText(\n [\n `const res = await this._client.call('${ATP_METHODS.list}', { collection: '${nsid}', ...params })`,\n `return res.data`,\n ].join('\\n'),\n )\n }\n {\n //= get()\n const method = cls.addMethod({\n isAsync: true,\n name: 'get',\n returnType: `Promise<{uri: string, cid: string, value: ${typeModule}.Record}>`,\n })\n method.addParameter({\n name: 'params',\n type: `OmitKey<${toTitleCase(ATP_METHODS.get)}.QueryParams, \"collection\">`,\n })\n method.setBodyText(\n [\n `const res = await this._client.call('${ATP_METHODS.get}', { collection: '${nsid}', ...params })`,\n `return res.data`,\n ].join('\\n'),\n )\n }\n {\n //= create()\n const method = cls.addMethod({\n isAsync: true,\n name: 'create',\n returnType: 'Promise<{uri: string, cid: string}>',\n })\n method.addParameter({\n name: 'params',\n type: `OmitKey<${toTitleCase(\n ATP_METHODS.create,\n )}.InputSchema, \"collection\" | \"record\">`,\n })\n method.addParameter({\n name: 'record',\n type: `Un$Typed<${typeModule}.Record>`,\n })\n method.addParameter({\n name: 'headers?',\n type: `Record<string, string>`,\n })\n const maybeRkeyPart = lexRecord.key?.startsWith('literal:')\n ? `rkey: '${lexRecord.key.replace('literal:', '')}', `\n : ''\n method.setBodyText(\n [\n `const collection = '${nsid}'`,\n `const res = await this._client.call('${ATP_METHODS.create}', undefined, { collection, ${maybeRkeyPart}...params, record: { ...record, $type: collection } }, { encoding: 'application/json', headers })`,\n `return res.data`,\n ].join('\\n'),\n )\n }\n {\n //= put()\n const method = cls.addMethod({\n isAsync: true,\n name: 'put',\n returnType: 'Promise<{uri: string, cid: string}>',\n })\n method.addParameter({\n name: 'params',\n type: `OmitKey<${toTitleCase(ATP_METHODS.put)}.InputSchema, \"collection\" | \"record\">`,\n })\n method.addParameter({\n name: 'record',\n type: `Un$Typed<${typeModule}.Record>`,\n })\n method.addParameter({\n name: 'headers?',\n type: `Record<string, string>`,\n })\n method.setBodyText(\n [\n `const collection = '${nsid}'`,\n `const res = await this._client.call('${ATP_METHODS.put}', undefined, { collection, ...params, record: { ...record, $type: collection } }, { encoding: 'application/json', headers })`,\n `return res.data`,\n ].join('\\n'),\n )\n }\n {\n //= delete()\n const method = cls.addMethod({\n isAsync: true,\n name: 'delete',\n returnType: 'Promise<void>',\n })\n method.addParameter({\n name: 'params',\n type: `OmitKey<${toTitleCase(\n ATP_METHODS.delete,\n )}.InputSchema, \"collection\">`,\n })\n method.addParameter({\n name: 'headers?',\n type: `Record<string, string>`,\n })\n\n method.setBodyText(\n [\n `await this._client.call('${ATP_METHODS.delete}', undefined, { collection: '${nsid}', ...params }, { headers })`,\n ].join('\\n'),\n )\n }\n}\n\nconst lexiconTs = (project, lexicons: Lexicons, lexiconDoc: LexiconDoc) =>\n gen(\n project,\n `/types/${lexiconDoc.id.split('.').join('/')}.ts`,\n async (file) => {\n const main = lexiconDoc.defs.main\n if (\n main?.type === 'query' ||\n main?.type === 'subscription' ||\n main?.type === 'procedure'\n ) {\n //= import {HeadersMap, XRPCError} from '@atproto/xrpc'\n const xrpcImport = file.addImportDeclaration({\n moduleSpecifier: '@atproto/xrpc',\n })\n xrpcImport.addNamedImports([\n { name: 'HeadersMap' },\n { name: 'XRPCError' },\n ])\n }\n\n genCommonImports(file, lexiconDoc.id)\n\n const imports: Set<string> = new Set()\n for (const defId in lexiconDoc.defs) {\n const def = lexiconDoc.defs[defId]\n const lexUri = `${lexiconDoc.id}#${defId}`\n if (defId === 'main') {\n if (def.type === 'query' || def.type === 'procedure') {\n genXrpcParams(file, lexicons, lexUri, false)\n genXrpcInput(file, imports, lexicons, lexUri, false)\n genXrpcOutput(file, imports, lexicons, lexUri)\n genClientXrpcCommon(file, lexicons, lexUri)\n } else if (def.type === 'subscription') {\n continue\n } else if (def.type === 'record') {\n genRecord(file, imports, lexicons, lexUri)\n } else {\n genUserType(file, imports, lexicons, lexUri)\n }\n } else {\n genUserType(file, imports, lexicons, lexUri)\n }\n }\n genImports(file, imports, lexiconDoc.id)\n },\n )\n\nfunction genClientXrpcCommon(\n file: SourceFile,\n lexicons: Lexicons,\n lexUri: string,\n) {\n const def = lexicons.getDefOrThrow(lexUri, ['query', 'procedure'])\n\n //= export interface CallOptions {...}\n const opts = file.addInterface({\n name: 'CallOptions',\n isExported: true,\n })\n opts.addProperty({ name: 'signal?', type: 'AbortSignal' })\n opts.addProperty({ name: 'headers?', type: 'HeadersMap' })\n if (def.type === 'procedure') {\n opts.addProperty({ name: 'qp?', type: 'QueryParams' })\n }\n if (def.type === 'procedure' && def.input) {\n let encodingType = 'string'\n if (def.input.encoding !== '*/*') {\n encodingType = def.input.encoding\n .split(',')\n .map((v) => `'${v.trim()}'`)\n .join(' | ')\n }\n opts.addProperty({\n name: 'encoding?',\n type: encodingType,\n })\n }\n\n // export interface Response {...}\n const res = file.addInterface({\n name: 'Response',\n isExported: true,\n })\n res.addProperty({ name: 'success', type: 'boolean' })\n res.addProperty({ name: 'headers', type: 'HeadersMap' })\n if (def.output?.schema) {\n if (def.output.encoding?.includes(',')) {\n res.addProperty({ name: 'data', type: 'OutputSchema | Uint8Array' })\n } else {\n res.addProperty({ name: 'data', type: 'OutputSchema' })\n }\n } else if (def.output?.encoding) {\n res.addProperty({ name: 'data', type: 'Uint8Array' })\n }\n\n // export class {errcode}Error {...}\n const customErrors: { name: string; cls: string }[] = []\n for (const error of def.errors || []) {\n let name = toTitleCase(error.name)\n if (!name.endsWith('Error')) name += 'Error'\n const errCls = file.addClass({\n name,\n extends: 'XRPCError',\n isExported: true,\n })\n errCls.addConstructor({\n parameters: [{ name: 'src', type: 'XRPCError' }],\n statements: [\n 'super(src.status, src.error, src.message, src.headers, { cause: src })',\n ],\n })\n\n customErrors.push({ name: error.name, cls: name })\n }\n\n // export function toKnownErr(err: any) {...}\n file.addFunction({\n name: 'toKnownErr',\n isExported: true,\n parameters: [{ name: 'e', type: 'any' }],\n statements: customErrors.length\n ? [\n 'if (e instanceof XRPCError) {',\n ...customErrors.map(\n (err) => `if (e.error === '${err.name}') return new ${err.cls}(e)`,\n ),\n '}',\n 'return e',\n ]\n : ['return e'],\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/codegen/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/codegen/common.ts"],"names":[],"mappings":"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","sourcesContent":["import { Options as PrettierOptions, format } from 'prettier'\nimport { Project, SourceFile, VariableDeclarationKind } from 'ts-morph'\nimport { type LexiconDoc } from '@atproto/lexicon'\nimport { type GeneratedFile } from '../types'\nimport { toTitleCase } from './util'\n\nconst PRETTIER_OPTS: PrettierOptions = {\n parser: 'typescript',\n tabWidth: 2,\n semi: false,\n singleQuote: true,\n trailingComma: 'all',\n}\n\nexport const utilTs = (project) =>\n gen(project, '/util.ts', async (file) => {\n file.replaceWithText(`\nimport { type ValidationResult } from '@atproto/lexicon'\n\nexport type OmitKey<T, K extends keyof T> = {\n [K2 in keyof T as K2 extends K ? never : K2]: T[K2]\n}\n\nexport type $Typed<V, T extends string = string> = V & { $type: T }\nexport type Un$Typed<V extends { $type?: string }> = OmitKey<V, '$type'>\n\nexport type $Type<Id extends string, Hash extends string> = Hash extends 'main'\n ? Id\n : \\`\\${Id}#\\${Hash}\\`\n\nfunction isObject<V>(v: V): v is V & object {\n return v != null && typeof v === 'object'\n}\n\nfunction is$type<Id extends string, Hash extends string>(\n $type: unknown,\n id: Id,\n hash: Hash,\n): $type is $Type<Id, Hash> {\n return hash === 'main'\n ? $type === id\n : // $type === \\`\\${id}#\\${hash}\\`\n typeof $type === 'string' &&\n $type.length === id.length + 1 + hash.length &&\n $type.charCodeAt(id.length) === 35 /* '#' */ &&\n $type.startsWith(id) &&\n $type.endsWith(hash)\n}\n${\n /**\n * The construct below allows to properly distinguish open unions. Consider\n * the following example:\n *\n * ```ts\n * type Foo = { $type?: $Type<'foo', 'main'>; foo: string }\n * type Bar = { $type?: $Type<'bar', 'main'>; bar: string }\n * type OpenFooBarUnion = $Typed<Foo> | $Typed<Bar> | { $type: string }\n * ```\n *\n * In the context of lexicons, when there is a open union as shown above, the\n * if `$type` if either `foo` or `bar`, then the object IS of type `Foo` or\n * `Bar`.\n *\n * ```ts\n * declare const obj1: OpenFooBarUnion\n * if (is$typed(obj1, 'foo', 'main')) {\n * obj1.$type // $Type<'foo', 'main'>\n * obj1.foo // string\n * }\n * ```\n *\n * Similarly, if an object is of type `unknown`, then the `is$typed` function\n * should only return assurance about the `$type` property, which is what it\n * actually checks:\n *\n * ```ts\n * declare const obj2: unknown\n * if (is$typed(obj2, 'foo', 'main')) {\n * obj2.$type // $Type<'foo', 'main'>\n * // @ts-expect-error\n * obj2.foo\n * }\n * ```\n *\n * The construct bellow is what makes these two scenarios possible.\n */\n ''\n}\nexport type $TypedObject<V, Id extends string, Hash extends string> = V extends {\n $type: $Type<Id, Hash>\n}\n ? V\n : V extends { $type?: string }\n ? V extends { $type?: infer T extends $Type<Id, Hash> }\n ? V & { $type: T }\n : never\n : V & { $type: $Type<Id, Hash> }\n\nexport function is$typed<V, Id extends string, Hash extends string>(\n v: V,\n id: Id,\n hash: Hash,\n): v is $TypedObject<V, Id, Hash> {\n return isObject(v) && '$type' in v && is$type(v.$type, id, hash)\n}\n\nexport function maybe$typed<V, Id extends string, Hash extends string>(\n v: V,\n id: Id,\n hash: Hash,\n): v is V & object & { $type?: $Type<Id, Hash> } {\n return (\n isObject(v) &&\n ('$type' in v\n ? v.$type === undefined || is$type(v.$type, id, hash)\n : true)\n )\n}\n\nexport type Validator<R = unknown> = (v: unknown) => ValidationResult<R>\nexport type ValidatorParam<V extends Validator> =\n V extends Validator<infer R> ? R : never\n\n/**\n * Utility function that allows to convert a \"validate*\" utility function into a\n * type predicate.\n */\nexport function asPredicate<V extends Validator>(validate: V) {\n return function <T>(v: T): v is T & ValidatorParam<V> {\n return validate(v).success\n }\n}\n`)\n })\n\nexport const lexiconsTs = (project, lexicons: LexiconDoc[]) =>\n gen(project, '/lexicons.ts', async (file) => {\n //= import { type LexiconDoc, Lexicons } from '@atproto/lexicon'\n file\n .addImportDeclaration({\n moduleSpecifier: '@atproto/lexicon',\n })\n .addNamedImports([\n { name: 'LexiconDoc', isTypeOnly: true },\n { name: 'Lexicons' },\n { name: 'ValidationError' },\n { name: 'ValidationResult', isTypeOnly: true },\n ])\n\n //= import { is$typed, maybe$typed, type $Typed } from './util'\n file\n .addImportDeclaration({\n moduleSpecifier: './util.js',\n })\n .addNamedImports([\n { name: '$Typed', isTypeOnly: true },\n { name: 'is$typed' },\n { name: 'maybe$typed' },\n ])\n\n //= export const schemaDict = {...} as const satisfies Record<string, LexiconDoc>\n file.addVariableStatement({\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [\n {\n name: 'schemaDict',\n initializer:\n JSON.stringify(\n lexicons.reduce(\n (acc, cur) => ({\n ...acc,\n [toTitleCase(cur.id)]: cur,\n }),\n {},\n ),\n null,\n 2,\n ) + ' as const satisfies Record<string, LexiconDoc>',\n },\n ],\n })\n\n //= export const schemas = Object.values(schemaDict) satisfies LexiconDoc[]\n file.addVariableStatement({\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [\n {\n name: 'schemas',\n initializer: 'Object.values(schemaDict) satisfies LexiconDoc[]',\n },\n ],\n })\n\n //= export const lexicons: Lexicons = new Lexicons(schemas)\n file.addVariableStatement({\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [\n {\n name: 'lexicons',\n type: 'Lexicons',\n initializer: 'new Lexicons(schemas)',\n },\n ],\n })\n\n file.addFunction({\n isExported: true,\n name: 'validate',\n overloads: [\n {\n typeParameters: ['T extends { $type: string }'],\n parameters: [\n { name: 'v', type: 'unknown' },\n { name: 'id', type: 'string' },\n { name: 'hash', type: 'string' },\n { name: 'requiredType', type: 'true' },\n ],\n returnType: 'ValidationResult<T>',\n },\n {\n typeParameters: ['T extends { $type?: string }'],\n parameters: [\n { name: 'v', type: 'unknown' },\n { name: 'id', type: 'string' },\n { name: 'hash', type: 'string' },\n { name: 'requiredType', type: 'false', hasQuestionToken: true },\n ],\n returnType: 'ValidationResult<T>',\n },\n ],\n parameters: [\n { name: 'v', type: 'unknown' },\n { name: 'id', type: 'string' },\n { name: 'hash', type: 'string' },\n { name: 'requiredType', type: 'boolean', hasQuestionToken: true },\n ],\n statements: [\n // If $type is present, make sure it is valid before validating the rest of the object\n 'return (requiredType ? is$typed : maybe$typed)(v, id, hash) ? lexicons.validate(`${id}#${hash}`, v) : { success: false, error: new ValidationError(`Must be an object with \"${hash === \\'main\\' ? id : `${id}#${hash}`}\" $type property`) }',\n ],\n returnType: 'ValidationResult',\n })\n\n //= export const ids = {...}\n file.addVariableStatement({\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [\n {\n name: 'ids',\n initializer: `{${lexicons\n .map(\n (lex) => `\\n ${toTitleCase(lex.id)}: ${JSON.stringify(lex.id)},`,\n )\n .join('')}\\n} as const`,\n },\n ],\n })\n })\n\nexport async function gen(\n project: Project,\n path: string,\n gen: (file: SourceFile) => Promise<void>,\n): Promise<GeneratedFile> {\n const file = project.createSourceFile(path)\n await gen(file)\n await file.save() // Save in the \"in memory\" file system\n const src = `${banner()}${file.getFullText()}`\n const content = await format(src, PRETTIER_OPTS)\n\n return { path, content }\n}\n\nfunction banner() {\n return `/**\n * GENERATED CODE - DO NOT MODIFY\n */\n`\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"lex-gen.d.ts","sourceRoot":"","sources":["../../src/codegen/lex-gen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAA;AACrE,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAEhB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,QAAQ,EACT,MAAM,kBAAkB,CAAA;AAGzB,UAAU,WAAW;IACnB,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAA;CAC9D;AACD,wBAAgB,UAAU,CAAC,CAAC,SAAS,WAAW,EAC9C,WAAW,EAAE,CAAC,EACd,GAAG,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,CAAC,CAKH;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QA8DlE;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,MAAM,QAgBjB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,QAoCf;AAqID,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,QAgBvE;AAED,wBAAgB,QAAQ,CACtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,QAAQ,QAkCd;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,GAAG,OAAO,GAAG,WAAW,QAU1C;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAO,QAuD1B;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAO,QAkD1B;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAO,QAgC1B;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,QAef;AAiDD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,wBAKpD;AA+BD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GACxC,MAAM,CAWR;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAiCzD"}
1
+ {"version":3,"file":"lex-gen.d.ts","sourceRoot":"","sources":["../../src/codegen/lex-gen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAA;AACrE,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAEhB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,QAAQ,EACT,MAAM,kBAAkB,CAAA;AAGzB,UAAU,WAAW;IACnB,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAA;CAC9D;AACD,wBAAgB,UAAU,CAAC,CAAC,SAAS,WAAW,EAC9C,WAAW,EAAE,CAAC,EACd,GAAG,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,CAAC,CAKH;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QA8DlE;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,MAAM,QAgBjB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,QAoCf;AAqID,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,QAgBvE;AAED,wBAAgB,QAAQ,CACtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,QAAQ,QAkCd;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,GAAG,OAAO,GAAG,WAAW,QAU1C;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAO,QAuD1B;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAO,QAkD1B;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAO,QAgC1B;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,QAyCf;AAiDD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,wBAKpD;AA+BD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GACxC,MAAM,CAWR;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAiCzD"}
@@ -402,17 +402,41 @@ function genXrpcOutput(file, imports, lexicons, lexUri, defaultsArePresent = tru
402
402
  }
403
403
  }
404
404
  function genRecord(file, imports, lexicons, lexUri) {
405
+ const hash = getHash(lexUri);
406
+ const ifaceName = (0, util_1.toTitleCase)(hash);
405
407
  const def = lexicons.getDefOrThrow(lexUri, ['record']);
406
- //= export interface Record {...}
407
- genObject(file, imports, lexUri, def.record, 'Record', {
408
+ //= export interface {X} {...}
409
+ genObject(file, imports, lexUri, def.record, ifaceName, {
408
410
  defaultsArePresent: true,
409
411
  allowUnknownProperties: true,
410
412
  typeProperty: 'required',
411
413
  });
412
- //= export function isRecord(v: unknown): v is Record {...}
413
- genObjHelpers(file, lexUri, 'Record', {
414
+ //= export function is{X}(v: unknown): v is {X} {...}
415
+ genObjHelpers(file, lexUri, ifaceName, {
414
416
  requireTypeProperty: true,
415
417
  });
418
+ // For convenience, we re-export the type and the type guard under the generic
419
+ // names "Record", "isRecord" and "validateRecord".
420
+ // @NOTE This does not account for potential name clashes with a potential
421
+ // "#record" def.
422
+ //= export { {X} as Record, is{X} as isRecord }
423
+ file.addExportDeclaration({
424
+ namedExports: [
425
+ {
426
+ isTypeOnly: true,
427
+ name: ifaceName,
428
+ alias: 'Record',
429
+ },
430
+ {
431
+ name: `is${ifaceName}`,
432
+ alias: 'isRecord',
433
+ },
434
+ {
435
+ name: `validate${ifaceName}`,
436
+ alias: 'validateRecord',
437
+ },
438
+ ],
439
+ });
416
440
  }
417
441
  function genObjHelpers(file, lexUri, ifaceName, { requireTypeProperty, }) {
418
442
  const hash = getHash(lexUri);
@@ -1 +1 @@
1
- {"version":3,"file":"lex-gen.js","sourceRoot":"","sources":["../../src/codegen/lex-gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lex-gen.js","sourceRoot":"","sources":["../../src/codegen/lex-gen.ts"],"names":[],"mappings":"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","sourcesContent":["import { relative as getRelativePath } from 'node:path/posix'\nimport { JSDoc, SourceFile, VariableDeclarationKind } from 'ts-morph'\nimport {\n type LexArray,\n type LexBlob,\n type LexBytes,\n type LexCidLink,\n type LexIpldType,\n type LexObject,\n type LexPrimitive,\n type LexToken,\n Lexicons,\n} from '@atproto/lexicon'\nimport { toCamelCase, toScreamingSnakeCase, toTitleCase } from './util'\n\ninterface Commentable {\n addJsDoc: ({ description }: { description: string }) => JSDoc\n}\nexport function genComment<T extends Commentable>(\n commentable: T,\n def: { description?: string },\n): T {\n if (def.description) {\n commentable.addJsDoc({ description: def.description })\n }\n return commentable\n}\n\nexport function genCommonImports(file: SourceFile, baseNsid: string) {\n //= import {ValidationResult, BlobRef} from '@atproto/lexicon'\n file\n .addImportDeclaration({\n moduleSpecifier: '@atproto/lexicon',\n })\n .addNamedImports([\n { name: 'ValidationResult', isTypeOnly: true },\n { name: 'BlobRef' },\n ])\n\n //= import {CID} from 'multiformats/cid'\n file\n .addImportDeclaration({\n moduleSpecifier: 'multiformats/cid',\n })\n .addNamedImports([{ name: 'CID' }])\n\n //= import { validate as _validate } from '../../lexicons.ts'\n file\n .addImportDeclaration({\n moduleSpecifier: `${baseNsid\n .split('.')\n .map((_str) => '..')\n .join('/')}/lexicons`,\n })\n .addNamedImports([{ name: 'validate', alias: '_validate' }])\n\n //= import { type $Typed, is$typed as _is$typed, type OmitKey } from '../[...]/util.ts'\n file\n .addImportDeclaration({\n moduleSpecifier: `${baseNsid\n .split('.')\n .map((_str) => '..')\n .join('/')}/util`,\n })\n .addNamedImports([\n { name: '$Typed', isTypeOnly: true },\n { name: 'is$typed', alias: '_is$typed' },\n { name: 'OmitKey', isTypeOnly: true },\n ])\n\n // tsc adds protection against circular imports, which hurts bundle size.\n // Since we know that lexicon.ts and util.ts do not depend on the file being\n // generated, we can safely bypass this protection.\n // Note that we are not using `import * as util from '../../util'` because\n // typescript will emit is own helpers for the import, which we want to avoid.\n file.addVariableStatement({\n isExported: false,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [\n { name: 'is$typed', initializer: '_is$typed' },\n { name: 'validate', initializer: '_validate' },\n ],\n })\n\n //= const id = \"{baseNsid}\"\n file.addVariableStatement({\n isExported: false, // Do not export to allow tree-shaking\n declarationKind: VariableDeclarationKind.Const,\n declarations: [{ name: 'id', initializer: JSON.stringify(baseNsid) }],\n })\n}\n\nexport function genImports(\n file: SourceFile,\n imports: Set<string>,\n baseNsid: string,\n) {\n const startPath = '/' + baseNsid.split('.').slice(0, -1).join('/')\n\n for (const nsid of imports) {\n const targetPath = '/' + nsid.split('.').join('/') + '.js'\n let resolvedPath = getRelativePath(startPath, targetPath)\n if (!resolvedPath.startsWith('.')) {\n resolvedPath = `./${resolvedPath}`\n }\n file.addImportDeclaration({\n isTypeOnly: true,\n moduleSpecifier: resolvedPath,\n namespaceImport: toTitleCase(nsid),\n })\n }\n}\n\nexport function genUserType(\n file: SourceFile,\n imports: Set<string>,\n lexicons: Lexicons,\n lexUri: string,\n) {\n const def = lexicons.getDefOrThrow(lexUri)\n switch (def.type) {\n case 'array':\n genArray(file, imports, lexUri, def)\n break\n case 'token':\n genToken(file, lexUri, def)\n break\n case 'object': {\n const ifaceName: string = toTitleCase(getHash(lexUri))\n genObject(file, imports, lexUri, def, ifaceName, {\n typeProperty: true,\n })\n genObjHelpers(file, lexUri, ifaceName, {\n requireTypeProperty: false,\n })\n break\n }\n\n case 'blob':\n case 'bytes':\n case 'cid-link':\n case 'boolean':\n case 'integer':\n case 'string':\n case 'unknown':\n genPrimitiveOrBlob(file, lexUri, def)\n break\n\n default:\n throw new Error(\n `genLexUserType() called with wrong definition type (${def.type}) in ${lexUri}`,\n )\n }\n}\n\nfunction genObject(\n file: SourceFile,\n imports: Set<string>,\n lexUri: string,\n def: LexObject,\n ifaceName: string,\n {\n defaultsArePresent = true,\n allowUnknownProperties = false,\n typeProperty = false,\n }: {\n defaultsArePresent?: boolean\n allowUnknownProperties?: boolean\n typeProperty?: boolean | 'required'\n } = {},\n) {\n const iface = file.addInterface({\n name: ifaceName,\n isExported: true,\n })\n genComment(iface, def)\n\n if (typeProperty) {\n const hash = getHash(lexUri)\n const baseNsid = stripScheme(stripHash(lexUri))\n\n //= $type?: <uri>\n iface.addProperty({\n name: typeProperty === 'required' ? `$type` : `$type?`,\n type:\n // Not using $Type here because it is less readable than a plain string\n // `$Type<${JSON.stringify(baseNsid)}, ${JSON.stringify(hash)}>`\n hash === 'main'\n ? JSON.stringify(`${baseNsid}`)\n : JSON.stringify(`${baseNsid}#${hash}`),\n })\n }\n\n const nullableProps = new Set(def.nullable)\n if (def.properties) {\n for (const propKey in def.properties) {\n const propDef = def.properties[propKey]\n const propNullable = nullableProps.has(propKey)\n const req =\n def.required?.includes(propKey) ||\n (defaultsArePresent &&\n 'default' in propDef &&\n propDef.default !== undefined)\n if (propDef.type === 'ref' || propDef.type === 'union') {\n //= propName: External|External\n const types =\n propDef.type === 'union'\n ? propDef.refs.map((ref) => refToUnionType(ref, lexUri, imports))\n : [refToType(propDef.ref, stripScheme(stripHash(lexUri)), imports)]\n if (propDef.type === 'union' && !propDef.closed) {\n types.push('{ $type: string }')\n }\n iface.addProperty({\n name: `${propKey}${req ? '' : '?'}`,\n type: makeType(types, { nullable: propNullable }),\n })\n continue\n } else {\n if (propDef.type === 'array') {\n //= propName: type[]\n let propAst\n if (propDef.items.type === 'ref') {\n propAst = iface.addProperty({\n name: `${propKey}${req ? '' : '?'}`,\n type: makeType(\n refToType(\n propDef.items.ref,\n stripScheme(stripHash(lexUri)),\n imports,\n ),\n {\n nullable: propNullable,\n array: true,\n },\n ),\n })\n } else if (propDef.items.type === 'union') {\n const types = propDef.items.refs.map((ref) =>\n refToUnionType(ref, lexUri, imports),\n )\n if (!propDef.items.closed) {\n types.push('{ $type: string }')\n }\n propAst = iface.addProperty({\n name: `${propKey}${req ? '' : '?'}`,\n type: makeType(types, {\n nullable: propNullable,\n array: true,\n }),\n })\n } else {\n propAst = iface.addProperty({\n name: `${propKey}${req ? '' : '?'}`,\n type: makeType(primitiveOrBlobToType(propDef.items), {\n nullable: propNullable,\n array: true,\n }),\n })\n }\n genComment(propAst, propDef)\n } else {\n //= propName: type\n genComment(\n iface.addProperty({\n name: `${propKey}${req ? '' : '?'}`,\n type: makeType(primitiveOrBlobToType(propDef), {\n nullable: propNullable,\n }),\n }),\n propDef,\n )\n }\n }\n }\n\n if (allowUnknownProperties) {\n //= [k: string]: unknown\n iface.addIndexSignature({\n keyName: 'k',\n keyType: 'string',\n returnType: 'unknown',\n })\n }\n }\n}\n\nexport function genToken(file: SourceFile, lexUri: string, def: LexToken) {\n //= /** <comment> */\n //= export const <TOKEN> = `${id}#<token>`\n genComment(\n file.addVariableStatement({\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [\n {\n name: toScreamingSnakeCase(getHash(lexUri)),\n initializer: `\\`\\${id}#${getHash(lexUri)}\\``,\n },\n ],\n }),\n def,\n )\n}\n\nexport function genArray(\n file: SourceFile,\n imports: Set<string>,\n lexUri: string,\n def: LexArray,\n) {\n if (def.items.type === 'ref') {\n file.addTypeAlias({\n name: toTitleCase(getHash(lexUri)),\n type: `${refToType(\n def.items.ref,\n stripScheme(stripHash(lexUri)),\n imports,\n )}[]`,\n isExported: true,\n })\n } else if (def.items.type === 'union') {\n const types = def.items.refs.map((ref) =>\n refToUnionType(ref, lexUri, imports),\n )\n if (!def.items.closed) {\n types.push('{ $type: string }')\n }\n file.addTypeAlias({\n name: toTitleCase(getHash(lexUri)),\n type: `(${types.join('|')})[]`,\n isExported: true,\n })\n } else {\n genComment(\n file.addTypeAlias({\n name: toTitleCase(getHash(lexUri)),\n type: `${primitiveOrBlobToType(def.items)}[]`,\n isExported: true,\n }),\n def,\n )\n }\n}\n\nexport function genPrimitiveOrBlob(\n file: SourceFile,\n lexUri: string,\n def: LexPrimitive | LexBlob | LexIpldType,\n) {\n genComment(\n file.addTypeAlias({\n name: toTitleCase(getHash(lexUri)),\n type: primitiveOrBlobToType(def),\n isExported: true,\n }),\n def,\n )\n}\n\nexport function genXrpcParams(\n file: SourceFile,\n lexicons: Lexicons,\n lexUri: string,\n defaultsArePresent = true,\n) {\n const def = lexicons.getDefOrThrow(lexUri, [\n 'query',\n 'subscription',\n 'procedure',\n ])\n\n // @NOTE We need to use a `type` here instead of an `interface` because we\n // need the generated type to be used as generic type parameter like this:\n //\n // type QueryParams = {} // Generated by this function\n //\n // type MyUtil<P extends xrpcServer.QueryParam> = (...)\n // type NsType = MyUtil<NS.QueryParams> // ERROR if `NS.QueryParams` is an `interface`\n //\n // Second line will fail if `NS.QueryParams` is an `interface` that does\n // not explicitly extend `xrpcServer.QueryParam`, or have a string index\n // signature that encompasses `xrpcServer.QueryParam`.\n\n //= export type QueryParams = {...}\n if (def.parameters) {\n genComment(\n file.addTypeAlias({\n name: 'QueryParams',\n isExported: true,\n type: `{\n ${Object.entries(def.parameters.properties)\n .map(([paramKey, paramDef]) => {\n const req =\n def.parameters!.required?.includes(paramKey) ||\n (defaultsArePresent &&\n 'default' in paramDef &&\n paramDef.default !== undefined)\n const jsDoc = paramDef.description\n ? `/** ${paramDef.description} */\\n`\n : ''\n return `${jsDoc}${paramKey}${req ? '' : '?'}: ${\n paramDef.type === 'array'\n ? primitiveToType(paramDef.items) + '[]'\n : primitiveToType(paramDef)\n }`\n })\n .join('\\n')}\n }`,\n }),\n def.parameters,\n )\n } else {\n file.addTypeAlias({\n name: 'QueryParams',\n isExported: true,\n type: '{}',\n })\n }\n}\n\nexport function genXrpcInput(\n file: SourceFile,\n imports: Set<string>,\n lexicons: Lexicons,\n lexUri: string,\n defaultsArePresent = true,\n) {\n const def = lexicons.getDefOrThrow(lexUri, ['query', 'procedure'])\n\n if (def.type === 'procedure' && def.input?.schema) {\n if (def.input.schema.type === 'ref' || def.input.schema.type === 'union') {\n //= export type InputSchema = ...\n\n const types =\n def.input.schema.type === 'union'\n ? def.input.schema.refs.map((ref) =>\n refToUnionType(ref, lexUri, imports),\n )\n : [\n refToType(\n def.input.schema.ref,\n stripScheme(stripHash(lexUri)),\n imports,\n ),\n ]\n\n if (def.input.schema.type === 'union' && !def.input.schema.closed) {\n types.push('{ $type: string }')\n }\n file.addTypeAlias({\n name: 'InputSchema',\n type: types.join('|'),\n isExported: true,\n })\n } else {\n //= export interface InputSchema {...}\n genObject(file, imports, lexUri, def.input.schema, `InputSchema`, {\n defaultsArePresent,\n })\n }\n } else if (def.type === 'procedure' && def.input?.encoding) {\n //= export type InputSchema = string | Uint8Array | Blob\n file.addTypeAlias({\n isExported: true,\n name: 'InputSchema',\n type: 'string | Uint8Array | Blob',\n })\n } else {\n //= export type InputSchema = undefined\n file.addTypeAlias({\n isExported: true,\n name: 'InputSchema',\n type: 'undefined',\n })\n }\n}\n\nexport function genXrpcOutput(\n file: SourceFile,\n imports: Set<string>,\n lexicons: Lexicons,\n lexUri: string,\n defaultsArePresent = true,\n) {\n const def = lexicons.getDefOrThrow(lexUri, [\n 'query',\n 'subscription',\n 'procedure',\n ])\n\n const schema =\n def.type === 'subscription' ? def.message?.schema : def.output?.schema\n if (schema) {\n if (schema.type === 'ref' || schema.type === 'union') {\n //= export type OutputSchema = ...\n const types =\n schema.type === 'union'\n ? schema.refs.map((ref) => refToUnionType(ref, lexUri, imports))\n : [refToType(schema.ref, stripScheme(stripHash(lexUri)), imports)]\n if (schema.type === 'union' && !schema.closed) {\n types.push('{ $type: string }')\n }\n file.addTypeAlias({\n name: 'OutputSchema',\n type: types.join('|'),\n isExported: true,\n })\n } else {\n //= export interface OutputSchema {...}\n genObject(file, imports, lexUri, schema, `OutputSchema`, {\n defaultsArePresent,\n })\n }\n }\n}\n\nexport function genRecord(\n file: SourceFile,\n imports: Set<string>,\n lexicons: Lexicons,\n lexUri: string,\n) {\n const hash = getHash(lexUri)\n const ifaceName: string = toTitleCase(hash)\n const def = lexicons.getDefOrThrow(lexUri, ['record'])\n\n //= export interface {X} {...}\n genObject(file, imports, lexUri, def.record, ifaceName, {\n defaultsArePresent: true,\n allowUnknownProperties: true,\n typeProperty: 'required',\n })\n\n //= export function is{X}(v: unknown): v is {X} {...}\n genObjHelpers(file, lexUri, ifaceName, {\n requireTypeProperty: true,\n })\n\n // For convenience, we re-export the type and the type guard under the generic\n // names \"Record\", \"isRecord\" and \"validateRecord\".\n // @NOTE This does not account for potential name clashes with a potential\n // \"#record\" def.\n\n //= export { {X} as Record, is{X} as isRecord }\n file.addExportDeclaration({\n namedExports: [\n {\n isTypeOnly: true,\n name: ifaceName,\n alias: 'Record',\n },\n {\n name: `is${ifaceName}`,\n alias: 'isRecord',\n },\n {\n name: `validate${ifaceName}`,\n alias: 'validateRecord',\n },\n ],\n })\n}\n\nfunction genObjHelpers(\n file: SourceFile,\n lexUri: string,\n ifaceName: string,\n {\n requireTypeProperty,\n }: {\n requireTypeProperty: boolean\n },\n) {\n const hash = getHash(lexUri)\n\n const hashVar = `hash${ifaceName}`\n\n file.addVariableStatement({\n isExported: false,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [{ name: hashVar, initializer: JSON.stringify(hash) }],\n })\n\n const isX = toCamelCase(`is-${ifaceName}`)\n\n //= export function is{X}<V>(v: V) {...}\n file\n .addFunction({\n name: isX,\n typeParameters: [{ name: `V` }],\n parameters: [{ name: `v`, type: `V` }],\n isExported: true,\n })\n .setBodyText(`return is$typed(v, id, ${hashVar})`)\n\n const validateX = toCamelCase(`validate-${ifaceName}`)\n\n //= export function validate{X}(v: unknown) {...}\n file\n .addFunction({\n name: validateX,\n typeParameters: [{ name: `V` }],\n parameters: [{ name: `v`, type: `V` }],\n isExported: true,\n })\n .setBodyText(\n `return validate<${ifaceName} & V>(v, id, ${hashVar}${requireTypeProperty ? ', true' : ''})`,\n )\n}\n\nexport function stripScheme(uri: string): string {\n if (uri.startsWith('lex:')) return uri.slice(4)\n return uri\n}\n\nexport function stripHash(uri: string): string {\n return uri.split('#')[0] || ''\n}\n\nexport function getHash(uri: string): string {\n return uri.split('#').pop() || ''\n}\n\nexport function ipldToType(def: LexCidLink | LexBytes) {\n if (def.type === 'bytes') {\n return 'Uint8Array'\n }\n return 'CID'\n}\n\nfunction refToUnionType(\n ref: string,\n lexUri: string,\n imports: Set<string>,\n): string {\n const baseNsid = stripScheme(stripHash(lexUri))\n return `$Typed<${refToType(ref, baseNsid, imports)}>`\n}\n\nfunction refToType(\n ref: string,\n baseNsid: string,\n imports: Set<string>,\n): string {\n // TODO: import external types!\n let [refBase, refHash] = ref.split('#')\n refBase = stripScheme(refBase)\n if (!refHash) refHash = 'main'\n\n // internal\n if (!refBase || baseNsid === refBase) {\n return toTitleCase(refHash)\n }\n\n // external\n imports.add(refBase)\n return `${toTitleCase(refBase)}.${toTitleCase(refHash)}`\n}\n\nexport function primitiveOrBlobToType(\n def: LexBlob | LexPrimitive | LexIpldType,\n): string {\n switch (def.type) {\n case 'blob':\n return 'BlobRef'\n case 'bytes':\n return 'Uint8Array'\n case 'cid-link':\n return 'CID'\n default:\n return primitiveToType(def)\n }\n}\n\nexport function primitiveToType(def: LexPrimitive): string {\n switch (def.type) {\n case 'string':\n if (def.knownValues?.length) {\n return `${def.knownValues\n .map((v) => JSON.stringify(v))\n .join(' | ')} | (string & {})`\n } else if (def.enum) {\n return def.enum.map((v) => JSON.stringify(v)).join(' | ')\n } else if (def.const) {\n return JSON.stringify(def.const)\n }\n return 'string'\n case 'integer':\n if (def.enum) {\n return def.enum.map((v) => JSON.stringify(v)).join(' | ')\n } else if (def.const) {\n return JSON.stringify(def.const)\n }\n return 'number'\n case 'boolean':\n if (def.const) {\n return JSON.stringify(def.const)\n }\n return 'boolean'\n case 'unknown':\n // @TODO Should we use \"object\" here ?\n // the \"Record\" identifier from typescript get overwritten by the Record\n // interface created by lex-cli.\n return '{ [_ in string]: unknown }' // Record<string, unknown>\n default:\n throw new Error(`Unexpected primitive type: ${JSON.stringify(def)}`)\n }\n}\n\nfunction makeType(\n _types: string | string[],\n opts?: { array?: boolean; nullable?: boolean },\n) {\n const types = ([] as string[]).concat(_types)\n if (opts?.nullable) types.push('null')\n const arr = opts?.array ? '[]' : ''\n if (types.length === 1) return `(${types[0]})${arr}`\n if (arr) return `(${types.join(' | ')})${arr}`\n return types.join(' | ')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/codegen/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/codegen/server.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n IndentationText,\n Project,\n SourceFile,\n VariableDeclarationKind,\n} from 'ts-morph'\nimport { type LexiconDoc, Lexicons } from '@atproto/lexicon'\nimport { NSID } from '@atproto/syntax'\nimport { type GeneratedAPI } from '../types'\nimport { gen, lexiconsTs, utilTs } from './common'\nimport {\n genCommonImports,\n genImports,\n genRecord,\n genUserType,\n genXrpcInput,\n genXrpcOutput,\n genXrpcParams,\n} from './lex-gen'\nimport {\n type DefTreeNode,\n lexiconsToDefTree,\n schemasToNsidTokens,\n toCamelCase,\n toScreamingSnakeCase,\n toTitleCase,\n} from './util'\n\nexport async function genServerApi(\n lexiconDocs: LexiconDoc[],\n): Promise<GeneratedAPI> {\n const project = new Project({\n useInMemoryFileSystem: true,\n manipulationSettings: { indentationText: IndentationText.TwoSpaces },\n })\n const api: GeneratedAPI = { files: [] }\n const lexicons = new Lexicons(lexiconDocs)\n const nsidTree = lexiconsToDefTree(lexiconDocs)\n const nsidTokens = schemasToNsidTokens(lexiconDocs)\n for (const lexiconDoc of lexiconDocs) {\n api.files.push(await lexiconTs(project, lexicons, lexiconDoc))\n }\n api.files.push(await utilTs(project))\n api.files.push(await lexiconsTs(project, lexiconDocs))\n api.files.push(await indexTs(project, lexiconDocs, nsidTree, nsidTokens))\n return api\n}\n\nconst indexTs = (\n project: Project,\n lexiconDocs: LexiconDoc[],\n nsidTree: DefTreeNode[],\n nsidTokens: Record<string, string[]>,\n) =>\n gen(project, '/index.ts', async (file) => {\n //= import {createServer as createXrpcServer, Server as XrpcServer} from '@atproto/xrpc-server'\n file.addImportDeclaration({\n moduleSpecifier: '@atproto/xrpc-server',\n namedImports: [\n { name: 'Auth', isTypeOnly: true },\n { name: 'Options', alias: 'XrpcOptions', isTypeOnly: true },\n { name: 'Server', alias: 'XrpcServer' },\n { name: 'StreamConfigOrHandler', isTypeOnly: true },\n { name: 'MethodConfigOrHandler', isTypeOnly: true },\n { name: 'createServer', alias: 'createXrpcServer' },\n ],\n })\n //= import {schemas} from './lexicons.js'\n file\n .addImportDeclaration({\n moduleSpecifier: './lexicons.js',\n })\n .addNamedImport({\n name: 'schemas',\n })\n\n // generate type imports\n for (const lexiconDoc of lexiconDocs) {\n if (\n lexiconDoc.defs.main?.type !== 'query' &&\n lexiconDoc.defs.main?.type !== 'subscription' &&\n lexiconDoc.defs.main?.type !== 'procedure'\n ) {\n continue\n }\n file\n .addImportDeclaration({\n moduleSpecifier: `./types/${lexiconDoc.id.split('.').join('/')}.js`,\n })\n .setNamespaceImport(toTitleCase(lexiconDoc.id))\n }\n\n // generate token enums\n for (const nsidAuthority in nsidTokens) {\n // export const {THE_AUTHORITY} = {\n // {Name}: \"{authority.the.name}\"\n // }\n file.addVariableStatement({\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [\n {\n name: toScreamingSnakeCase(nsidAuthority),\n initializer: [\n '{',\n ...nsidTokens[nsidAuthority].map(\n (nsidName) =>\n `${toTitleCase(nsidName)}: \"${nsidAuthority}.${nsidName}\",`,\n ),\n '}',\n ].join('\\n'),\n },\n ],\n })\n }\n\n //= export function createServer(options?: XrpcOptions) { ... }\n const createServerFn = file.addFunction({\n name: 'createServer',\n returnType: 'Server',\n parameters: [\n { name: 'options', type: 'XrpcOptions', hasQuestionToken: true },\n ],\n isExported: true,\n })\n createServerFn.setBodyText(`return new Server(options)`)\n\n //= export class Server {...}\n const serverCls = file.addClass({\n name: 'Server',\n isExported: true,\n })\n //= xrpc: XrpcServer = createXrpcServer(methodSchemas)\n serverCls.addProperty({\n name: 'xrpc',\n type: 'XrpcServer',\n })\n\n // generate classes for the schemas\n for (const ns of nsidTree) {\n //= ns: NS\n serverCls.addProperty({\n name: ns.propName,\n type: ns.className,\n })\n\n // class...\n genNamespaceCls(file, ns)\n }\n\n //= constructor (options?: XrpcOptions) {\n //= this.xrpc = createXrpcServer(schemas, options)\n //= {namespace declarations}\n //= }\n serverCls\n .addConstructor({\n parameters: [\n { name: 'options', type: 'XrpcOptions', hasQuestionToken: true },\n ],\n })\n .setBodyText(\n [\n 'this.xrpc = createXrpcServer(schemas, options)',\n ...nsidTree.map(\n (ns) => `this.${ns.propName} = new ${ns.className}(this)`,\n ),\n ].join('\\n'),\n )\n })\n\nfunction genNamespaceCls(file: SourceFile, ns: DefTreeNode) {\n //= export class {ns}NS {...}\n const cls = file.addClass({\n name: ns.className,\n isExported: true,\n })\n //= _server: Server\n cls.addProperty({\n name: '_server',\n type: 'Server',\n })\n\n for (const child of ns.children) {\n //= child: ChildNS\n cls.addProperty({\n name: child.propName,\n type: child.className,\n })\n\n // recurse\n genNamespaceCls(file, child)\n }\n\n //= constructor(server: Server) {\n //= this._server = server\n //= {child namespace declarations}\n //= }\n const cons = cls.addConstructor()\n cons.addParameter({\n name: 'server',\n type: 'Server',\n })\n cons.setBodyText(\n [\n `this._server = server`,\n ...ns.children.map(\n (ns) => `this.${ns.propName} = new ${ns.className}(server)`,\n ),\n ].join('\\n'),\n )\n\n // methods\n for (const userType of ns.userTypes) {\n if (\n userType.def.type !== 'query' &&\n userType.def.type !== 'subscription' &&\n userType.def.type !== 'procedure'\n ) {\n continue\n }\n const moduleName = toTitleCase(userType.nsid)\n const name = toCamelCase(NSID.parse(userType.nsid).name || '')\n const isSubscription = userType.def.type === 'subscription'\n const method = cls.addMethod({\n name,\n typeParameters: [\n {\n name: 'A',\n constraint: 'Auth',\n default: 'void',\n },\n ],\n })\n method.addParameter({\n name: 'cfg',\n type: isSubscription\n ? `StreamConfigOrHandler<\n A,\n ${moduleName}.QueryParams,\n ${moduleName}.HandlerOutput,\n >`\n : `MethodConfigOrHandler<\n A,\n ${moduleName}.QueryParams,\n ${moduleName}.HandlerInput,\n ${moduleName}.HandlerOutput,\n >`,\n })\n const methodType = isSubscription ? 'streamMethod' : 'method'\n method.setBodyText(\n [\n // Placing schema on separate line, since the following one was being formatted\n // into multiple lines and causing the ts-ignore to ignore the wrong line.\n `const nsid = '${userType.nsid}' // @ts-ignore`,\n `return this._server.xrpc.${methodType}(nsid, cfg)`,\n ].join('\\n'),\n )\n }\n}\n\nconst lexiconTs = (project, lexicons: Lexicons, lexiconDoc: LexiconDoc) =>\n gen(\n project,\n `/types/${lexiconDoc.id.split('.').join('/')}.ts`,\n async (file) => {\n const main = lexiconDoc.defs.main\n if (main?.type === 'query' || main?.type === 'procedure') {\n const streamingInput =\n main?.type === 'procedure' &&\n main.input?.encoding &&\n !main.input.schema\n const streamingOutput = main.output?.encoding && !main.output.schema\n if (streamingInput || streamingOutput) {\n //= import stream from 'node:stream'\n file.addImportDeclaration({\n moduleSpecifier: 'node:stream',\n defaultImport: 'stream',\n })\n }\n }\n\n genCommonImports(file, lexiconDoc.id)\n\n const imports: Set<string> = new Set()\n for (const defId in lexiconDoc.defs) {\n const def = lexiconDoc.defs[defId]\n const lexUri = `${lexiconDoc.id}#${defId}`\n if (defId === 'main') {\n if (def.type === 'query' || def.type === 'procedure') {\n genXrpcParams(file, lexicons, lexUri)\n genXrpcInput(file, imports, lexicons, lexUri)\n genXrpcOutput(file, imports, lexicons, lexUri, false)\n genServerXrpcMethod(file, lexicons, lexUri)\n } else if (def.type === 'subscription') {\n genXrpcParams(file, lexicons, lexUri)\n genXrpcOutput(file, imports, lexicons, lexUri, false)\n genServerXrpcStreaming(file, lexicons, lexUri)\n } else if (def.type === 'record') {\n genRecord(file, imports, lexicons, lexUri)\n } else {\n genUserType(file, imports, lexicons, lexUri)\n }\n } else {\n genUserType(file, imports, lexicons, lexUri)\n }\n }\n genImports(file, imports, lexiconDoc.id)\n },\n )\n\nfunction genServerXrpcMethod(\n file: SourceFile,\n lexicons: Lexicons,\n lexUri: string,\n) {\n const def = lexicons.getDefOrThrow(lexUri, ['query', 'procedure'])\n\n //= export interface HandlerInput {...}\n if (def.type === 'procedure' && def.input?.encoding) {\n const handlerInput = file.addInterface({\n name: 'HandlerInput',\n isExported: true,\n })\n\n handlerInput.addProperty({\n name: 'encoding',\n type: def.input.encoding\n .split(',')\n .map((v) => `'${v.trim()}'`)\n .join(' | '),\n })\n handlerInput.addProperty({\n name: 'body',\n type: def.input.schema\n ? def.input.encoding.includes(',')\n ? 'InputSchema | stream.Readable'\n : 'InputSchema'\n : 'stream.Readable',\n })\n } else {\n file.addTypeAlias({\n isExported: true,\n name: 'HandlerInput',\n type: 'void',\n })\n }\n\n // export interface HandlerSuccess {...}\n let hasHandlerSuccess = false\n if (def.output?.schema || def.output?.encoding) {\n hasHandlerSuccess = true\n const handlerSuccess = file.addInterface({\n name: 'HandlerSuccess',\n isExported: true,\n })\n\n if (def.output.encoding) {\n handlerSuccess.addProperty({\n name: 'encoding',\n type: def.output.encoding\n .split(',')\n .map((v) => `'${v.trim()}'`)\n .join(' | '),\n })\n }\n if (def.output?.schema) {\n if (def.output.encoding.includes(',')) {\n handlerSuccess.addProperty({\n name: 'body',\n type: 'OutputSchema | Uint8Array | stream.Readable',\n })\n } else {\n handlerSuccess.addProperty({ name: 'body', type: 'OutputSchema' })\n }\n } else if (def.output?.encoding) {\n handlerSuccess.addProperty({\n name: 'body',\n type: 'Uint8Array | stream.Readable',\n })\n }\n handlerSuccess.addProperty({\n name: 'headers?',\n type: '{ [key: string]: string }',\n })\n }\n\n // export interface HandlerError {...}\n const handlerError = file.addInterface({\n name: 'HandlerError',\n isExported: true,\n })\n handlerError.addProperties([\n { name: 'status', type: 'number' },\n { name: 'message?', type: 'string' },\n ])\n if (def.errors?.length) {\n handlerError.addProperty({\n name: 'error?',\n type: def.errors.map((err) => `'${err.name}'`).join(' | '),\n })\n }\n\n // export type HandlerOutput = ...\n file.addTypeAlias({\n isExported: true,\n name: 'HandlerOutput',\n type: `HandlerError | ${hasHandlerSuccess ? 'HandlerSuccess' : 'void'}`,\n })\n}\n\nfunction genServerXrpcStreaming(\n file: SourceFile,\n lexicons: Lexicons,\n lexUri: string,\n) {\n const def = lexicons.getDefOrThrow(lexUri, ['subscription'])\n\n file.addImportDeclaration({\n moduleSpecifier: '@atproto/xrpc-server',\n namedImports: [{ name: 'ErrorFrame' }],\n })\n\n file.addImportDeclaration({\n moduleSpecifier: 'node:http',\n namedImports: [{ name: 'IncomingMessage' }],\n })\n\n // export type HandlerError = ...\n file.addTypeAlias({\n name: 'HandlerError',\n isExported: true,\n type: `ErrorFrame<${arrayToUnion(def.errors?.map((e) => e.name))}>`,\n })\n\n // export type HandlerOutput = ...\n file.addTypeAlias({\n isExported: true,\n name: 'HandlerOutput',\n type: `HandlerError | ${def.message?.schema ? 'OutputSchema' : 'void'}`,\n })\n}\n\nfunction arrayToUnion(arr?: string[]) {\n if (!arr?.length) {\n return 'never'\n }\n return arr.map((item) => `'${item}'`).join(' | ')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/codegen/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/codegen/util.ts"],"names":[],"mappings":"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","sourcesContent":["import { type LexUserType, type LexiconDoc } from '@atproto/lexicon'\nimport { NSID } from '@atproto/syntax'\n\nexport interface DefTreeNodeUserType {\n nsid: string\n def: LexUserType\n}\n\nexport interface DefTreeNode {\n name: string\n className: string\n propName: string\n children: DefTreeNode[]\n userTypes: DefTreeNodeUserType[]\n}\n\nexport function lexiconsToDefTree(lexicons: LexiconDoc[]): DefTreeNode[] {\n const tree: DefTreeNode[] = []\n for (const lexicon of lexicons) {\n if (!lexicon.defs.main) {\n continue\n }\n const node = getOrCreateNode(tree, lexicon.id.split('.').slice(0, -1))\n node.userTypes.push({ nsid: lexicon.id, def: lexicon.defs.main })\n }\n return tree\n}\n\nfunction getOrCreateNode(tree: DefTreeNode[], path: string[]): DefTreeNode {\n let node: DefTreeNode | undefined\n for (let i = 0; i < path.length; i++) {\n const segment = path[i]\n node = tree.find((v) => v.name === segment)\n if (!node) {\n node = {\n name: segment,\n className: `${toTitleCase(path.slice(0, i + 1).join('-'))}NS`,\n propName: toCamelCase(segment),\n children: [],\n userTypes: [],\n } as DefTreeNode\n tree.push(node)\n }\n tree = node.children\n }\n if (!node) throw new Error(`Invalid schema path: ${path.join('.')}`)\n return node\n}\n\nexport function schemasToNsidTokens(\n lexiconDocs: LexiconDoc[],\n): Record<string, string[]> {\n const nsidTokens: Record<string, string[]> = {}\n for (const lexiconDoc of lexiconDocs) {\n const nsidp = NSID.parse(lexiconDoc.id)\n if (!nsidp.name) continue\n for (const defId in lexiconDoc.defs) {\n const def = lexiconDoc.defs[defId]\n if (def.type !== 'token') continue\n const authority = nsidp.segments.slice(0, -1).join('.')\n nsidTokens[authority] ??= []\n nsidTokens[authority].push(\n nsidp.name + (defId === 'main' ? '' : `#${defId}`),\n )\n }\n }\n return nsidTokens\n}\n\nexport function toTitleCase(v: string): string {\n v = v.replace(/^([a-z])/gi, (_, g) => g.toUpperCase()) // upper-case first letter\n v = v.replace(/[.#-]([a-z])/gi, (_, g) => g.toUpperCase()) // uppercase any dash, dot, or hash segments\n return v.replace(/[.-]/g, '') // remove lefover dashes or dots\n}\n\nexport function toCamelCase(v: string): string {\n v = v.replace(/[.#-]([a-z])/gi, (_, g) => g.toUpperCase()) // uppercase any dash, dot, or hash segments\n return v.replace(/[.-]/g, '') // remove lefover dashes or dots\n}\n\nexport function toScreamingSnakeCase(v: string): string {\n v = v.replace(/[.#-]+/gi, '_') // convert dashes, dots, and hashes into underscores\n return v.toUpperCase() // and scream!\n}\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n\nimport path from 'node:path'\nimport { Command } from 'commander'\nimport yesno from 'yesno'\nimport { genClientApi } from './codegen/client'\nimport { genServerApi } from './codegen/server'\nimport * as mdGen from './mdgen'\nimport {\n applyFileDiff,\n genFileDiff,\n genTsObj,\n printFileDiff,\n readAllLexicons,\n} from './util'\n\nconst program = new Command()\nprogram.name('lex').description('Lexicon CLI').version('0.0.0')\n\nprogram\n .command('gen-md')\n .description('Generate markdown documentation')\n .option('--yes', 'skip confirmation')\n .argument('<outfile>', 'path of the file to write to', toPath)\n .argument('<lexicons...>', 'paths of the lexicon files to include', toPaths)\n .action(\n async (outFile: string, lexiconPaths: string[], o: { yes?: true }) => {\n if (!outFile.endsWith('.md')) {\n console.error(\n 'Must supply the path to a .md file as the first parameter',\n )\n process.exit(1)\n }\n if (!o?.yes) await confirmOrExit()\n console.log('Writing', outFile)\n const lexicons = readAllLexicons(lexiconPaths)\n await mdGen.process(outFile, lexicons)\n },\n )\n\nprogram\n .command('gen-ts-obj')\n .description('Generate a TS file that exports an array of lexicons')\n .argument('<lexicons...>', 'paths of the lexicon files to include', toPaths)\n .action((lexiconPaths: string[]) => {\n const lexicons = readAllLexicons(lexiconPaths)\n console.log(genTsObj(lexicons))\n })\n\nprogram\n .command('gen-api')\n .description('Generate a TS client API')\n .option('--yes', 'skip confirmation')\n .argument('<outdir>', 'path of the directory to write to', toPath)\n .argument('<lexicons...>', 'paths of the lexicon files to include', toPaths)\n .action(async (outDir: string, lexiconPaths: string[], o: { yes?: true }) => {\n const lexicons = readAllLexicons(lexiconPaths)\n const api = await genClientApi(lexicons)\n const diff = genFileDiff(outDir, api)\n console.log('This will write the following files:')\n printFileDiff(diff)\n if (!o?.yes) await confirmOrExit()\n applyFileDiff(diff)\n console.log('API generated.')\n })\n\nprogram\n .command('gen-server')\n .description('Generate a TS server API')\n .option('--yes', 'skip confirmation')\n .argument('<outdir>', 'path of the directory to write to', toPath)\n .argument('<lexicons...>', 'paths of the lexicon files to include', toPaths)\n .action(async (outDir: string, lexiconPaths: string[], o: { yes?: true }) => {\n const lexicons = readAllLexicons(lexiconPaths)\n const api = await genServerApi(lexicons)\n const diff = genFileDiff(outDir, api)\n console.log('This will write the following files:')\n printFileDiff(diff)\n if (!o?.yes) await confirmOrExit()\n applyFileDiff(diff)\n console.log('API generated.')\n })\n\nprogram.parse()\n\nfunction toPath(v: string) {\n return v ? path.resolve(v) : undefined\n}\n\nfunction toPaths(v: string, acc: string[]) {\n acc = acc || []\n acc.push(path.resolve(v))\n return acc\n}\n\nasync function confirmOrExit() {\n const ok = await yesno({\n question: 'Are you sure you want to continue? [y/N]',\n defaultValue: false,\n })\n if (!ok) {\n console.log('Aborted.')\n process.exit(0)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mdgen/index.ts"],"names":[],"mappings":";;;;;AAWA,0BA2BC;AAtCD,sDAAwB;AAGxB,MAAM,YAAY,GAAG;IACnB,qFAAqF;IACrF,gEAAgE;CACjE,CAAA;AACD,MAAM,UAAU,GAAG;IACjB,8EAA8E;CAC/E,CAAA;AAEM,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,QAAsB;IACvE,IAAI,eAAe,GAAG,EAAE,CAAA;IACxB,IAAI,CAAC;QACH,eAAe,GAAG,iBAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,+BAA+B;IACjC,CAAC;IACD,MAAM,SAAS,GAAe,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEzD,oCAAoC;IACpC,IAAI,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IAClE,IAAI,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,UAAU,GAAG,SAAS,CAAC,MAAM,CAAA;IAC/B,CAAC;IACD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAA;IAC7B,CAAC;IAED,4BAA4B;IAC5B,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,CAAC,EAAE;QACtD,YAAY;QACZ,MAAM,UAAU,CAAC,QAAQ,CAAC;QAC1B,UAAU;KACX,CAAC,CAAA;IAEF,iBAAE,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;AACzD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAsB;IAC9C,MAAM,GAAG,GAAe,EAAE,CAAA;IAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACvB,MAAM,IAAI,GAAe,EAAE,CAAA;QAC3B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACpC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,KAAK;YACL,EAAE;YACF,MAAM,OAAO,CAAC,EAAE,EAAE;YAClB,EAAE;YACF,IAAI;YACJ,SAAS;YACT,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAChC,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,SAAS,KAAK,CAAC,GAAe;IAC5B,OAAO,GAAG;SACP,IAAI,CAAC,EAAE,CAAC;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACpC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAC,IAAI;IACxB,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,IAAI;IACtB,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mdgen/index.ts"],"names":[],"mappings":";;;;;AAWA,0BA2BC;AAtCD,sDAAwB;AAGxB,MAAM,YAAY,GAAG;IACnB,qFAAqF;IACrF,gEAAgE;CACjE,CAAA;AACD,MAAM,UAAU,GAAG;IACjB,8EAA8E;CAC/E,CAAA;AAEM,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,QAAsB;IACvE,IAAI,eAAe,GAAG,EAAE,CAAA;IACxB,IAAI,CAAC;QACH,eAAe,GAAG,iBAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,+BAA+B;IACjC,CAAC;IACD,MAAM,SAAS,GAAe,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEzD,oCAAoC;IACpC,IAAI,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IAClE,IAAI,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,UAAU,GAAG,SAAS,CAAC,MAAM,CAAA;IAC/B,CAAC;IACD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAA;IAC7B,CAAC;IAED,4BAA4B;IAC5B,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,CAAC,EAAE;QACtD,YAAY;QACZ,MAAM,UAAU,CAAC,QAAQ,CAAC;QAC1B,UAAU;KACX,CAAC,CAAA;IAEF,iBAAE,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;AACzD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAsB;IAC9C,MAAM,GAAG,GAAe,EAAE,CAAA;IAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACvB,MAAM,IAAI,GAAe,EAAE,CAAA;QAC3B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACpC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,KAAK;YACL,EAAE;YACF,MAAM,OAAO,CAAC,EAAE,EAAE;YAClB,EAAE;YACF,IAAI;YACJ,SAAS;YACT,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAChC,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,SAAS,KAAK,CAAC,GAAe;IAC5B,OAAO,GAAG;SACP,IAAI,CAAC,EAAE,CAAC;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACpC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAC,IAAI;IACxB,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,IAAI;IACtB,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC","sourcesContent":["import fs from 'node:fs'\nimport { type LexiconDoc } from '@atproto/lexicon'\n\nconst INSERT_START = [\n '<!-- START lex generated content. Please keep comment here to allow auto update -->',\n \"<!-- DON'T EDIT THIS SECTION! INSTEAD RE-RUN lex TO UPDATE -->\",\n]\nconst INSERT_END = [\n '<!-- END lex generated TOC please keep comment here to allow auto update -->',\n]\n\nexport async function process(outFilePath: string, lexicons: LexiconDoc[]) {\n let existingContent = ''\n try {\n existingContent = fs.readFileSync(outFilePath, 'utf8')\n } catch (e) {\n // ignore - no existing content\n }\n const fileLines: StringTree = existingContent.split('\\n')\n\n // find previously generated content\n let startIndex = fileLines.findIndex((line) => matchesStart(line))\n let endIndex = fileLines.findIndex((line) => matchesEnd(line))\n if (startIndex === -1) {\n startIndex = fileLines.length\n }\n if (endIndex === -1) {\n endIndex = fileLines.length\n }\n\n // generate & insert content\n fileLines.splice(startIndex, endIndex - startIndex + 1, [\n INSERT_START,\n await genMdLines(lexicons),\n INSERT_END,\n ])\n\n fs.writeFileSync(outFilePath, merge(fileLines), 'utf8')\n}\n\nasync function genMdLines(lexicons: LexiconDoc[]): Promise<StringTree> {\n const doc: StringTree = []\n for (const lexicon of lexicons) {\n console.log(lexicon.id)\n const desc: StringTree = []\n if (lexicon.description) {\n desc.push(lexicon.description, ``)\n }\n doc.push([\n `---`,\n ``,\n `## ${lexicon.id}`,\n '',\n desc,\n '```json',\n JSON.stringify(lexicon, null, 2),\n '```',\n ])\n }\n return doc\n}\n\ntype StringTree = (StringTree | string | undefined)[]\nfunction merge(arr: StringTree): string {\n return arr\n .flat(10)\n .filter((v) => typeof v === 'string')\n .join('\\n')\n}\n\nfunction matchesStart(line) {\n return /<!-- START lex /.test(line)\n}\n\nfunction matchesEnd(line) {\n return /<!-- END lex /.test(line)\n}\n"]}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface GeneratedFile {\n path: string\n content: string\n}\n\nexport interface GeneratedAPI {\n files: GeneratedFile[]\n}\n\nexport interface FileDiff {\n act: 'add' | 'mod' | 'del'\n path: string\n content?: string\n}\n"]}
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'node:fs'\nimport { join } from 'node:path'\nimport chalk from 'chalk'\nimport { ZodError, type ZodFormattedError } from 'zod'\nimport { type LexiconDoc, parseLexiconDoc } from '@atproto/lexicon'\nimport { type FileDiff, type GeneratedAPI } from './types'\n\nexport function readAllLexicons(paths: string[]): LexiconDoc[] {\n paths = [...paths].sort() // incoming path order may have come from locale-dependent shell globs\n const docs: LexiconDoc[] = []\n for (const path of paths) {\n if (!path.endsWith('.json') || !fs.statSync(path).isFile()) {\n continue\n }\n try {\n docs.push(readLexicon(path))\n } catch (e) {\n // skip\n }\n }\n return docs\n}\n\nexport function readLexicon(path: string): LexiconDoc {\n let str: string\n let obj: unknown\n try {\n str = fs.readFileSync(path, 'utf8')\n } catch (e) {\n console.error(`Failed to read file`, path)\n throw e\n }\n try {\n obj = JSON.parse(str)\n } catch (e) {\n console.error(`Failed to parse JSON in file`, path)\n throw e\n }\n if (\n obj &&\n typeof obj === 'object' &&\n typeof (obj as LexiconDoc).lexicon === 'number'\n ) {\n try {\n return parseLexiconDoc(obj)\n } catch (e) {\n console.error(`Invalid lexicon`, path)\n if (e instanceof ZodError) {\n printZodError(e.format())\n }\n throw e\n }\n } else {\n console.error(`Not lexicon schema`, path)\n throw new Error(`Not lexicon schema`)\n }\n}\n\nexport function genTsObj(lexicons: LexiconDoc[]): string {\n return `export const lexicons = ${JSON.stringify(lexicons, null, 2)}`\n}\n\nexport function genFileDiff(outDir: string, api: GeneratedAPI) {\n const diffs: FileDiff[] = []\n const existingFiles = readdirRecursiveSync(outDir)\n\n for (const file of api.files) {\n file.path = join(outDir, file.path)\n if (existingFiles.includes(file.path)) {\n diffs.push({ act: 'mod', path: file.path, content: file.content })\n } else {\n diffs.push({ act: 'add', path: file.path, content: file.content })\n }\n }\n for (const filepath of existingFiles) {\n if (api.files.find((f) => f.path === filepath)) {\n // do nothing\n } else {\n diffs.push({ act: 'del', path: filepath })\n }\n }\n\n return diffs\n}\n\nexport function printFileDiff(diff: FileDiff[]) {\n for (const d of diff) {\n switch (d.act) {\n case 'add':\n console.log(`${chalk.greenBright('[+ add]')} ${d.path}`)\n break\n case 'mod':\n console.log(`${chalk.yellowBright('[* mod]')} ${d.path}`)\n break\n case 'del':\n console.log(`${chalk.redBright('[- del]')} ${d.path}`)\n break\n }\n }\n}\n\nexport function applyFileDiff(diff: FileDiff[]) {\n for (const d of diff) {\n switch (d.act) {\n case 'add':\n case 'mod':\n fs.mkdirSync(join(d.path, '..'), { recursive: true }) // lazy way to make sure the parent dir exists\n fs.writeFileSync(d.path, d.content || '', 'utf8')\n break\n case 'del':\n fs.unlinkSync(d.path)\n break\n }\n }\n}\n\nfunction printZodError(node: ZodFormattedError<any>, path = ''): boolean {\n if (node._errors?.length) {\n console.log(chalk.red(`Issues at ${path}:`))\n for (const err of dedup(node._errors)) {\n console.log(chalk.red(` - ${err}`))\n }\n return true\n } else {\n for (const k in node) {\n if (k === '_errors') {\n continue\n }\n printZodError(node[k], `${path}/${k}`)\n }\n }\n return false\n}\n\nfunction readdirRecursiveSync(root: string, files: string[] = [], prefix = '') {\n const dir = join(root, prefix)\n if (!fs.existsSync(dir)) return files\n if (fs.statSync(dir).isDirectory())\n fs.readdirSync(dir).forEach(function (name) {\n readdirRecursiveSync(root, files, join(prefix, name))\n })\n else if (prefix.endsWith('.ts')) {\n files.push(join(root, prefix))\n }\n\n return files\n}\n\nfunction dedup(arr: string[]): string[] {\n return Array.from(new Set(arr))\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/lex-cli",
3
- "version": "0.9.5",
3
+ "version": "0.9.7",
4
4
  "license": "MIT",
5
5
  "description": "TypeScript codegen tool for atproto Lexicon schemas",
6
6
  "keywords": [
@@ -28,7 +28,7 @@
28
28
  "ts-morph": "^24.0.0",
29
29
  "yesno": "^0.4.0",
30
30
  "zod": "^3.23.8",
31
- "@atproto/lexicon": "^0.5.1",
31
+ "@atproto/lexicon": "^0.5.2",
32
32
  "@atproto/syntax": "^0.4.1"
33
33
  },
34
34
  "devDependencies": {
@@ -520,19 +520,45 @@ export function genRecord(
520
520
  lexicons: Lexicons,
521
521
  lexUri: string,
522
522
  ) {
523
+ const hash = getHash(lexUri)
524
+ const ifaceName: string = toTitleCase(hash)
523
525
  const def = lexicons.getDefOrThrow(lexUri, ['record'])
524
526
 
525
- //= export interface Record {...}
526
- genObject(file, imports, lexUri, def.record, 'Record', {
527
+ //= export interface {X} {...}
528
+ genObject(file, imports, lexUri, def.record, ifaceName, {
527
529
  defaultsArePresent: true,
528
530
  allowUnknownProperties: true,
529
531
  typeProperty: 'required',
530
532
  })
531
533
 
532
- //= export function isRecord(v: unknown): v is Record {...}
533
- genObjHelpers(file, lexUri, 'Record', {
534
+ //= export function is{X}(v: unknown): v is {X} {...}
535
+ genObjHelpers(file, lexUri, ifaceName, {
534
536
  requireTypeProperty: true,
535
537
  })
538
+
539
+ // For convenience, we re-export the type and the type guard under the generic
540
+ // names "Record", "isRecord" and "validateRecord".
541
+ // @NOTE This does not account for potential name clashes with a potential
542
+ // "#record" def.
543
+
544
+ //= export { {X} as Record, is{X} as isRecord }
545
+ file.addExportDeclaration({
546
+ namedExports: [
547
+ {
548
+ isTypeOnly: true,
549
+ name: ifaceName,
550
+ alias: 'Record',
551
+ },
552
+ {
553
+ name: `is${ifaceName}`,
554
+ alias: 'isRecord',
555
+ },
556
+ {
557
+ name: `validate${ifaceName}`,
558
+ alias: 'validateRecord',
559
+ },
560
+ ],
561
+ })
536
562
  }
537
563
 
538
564
  function genObjHelpers(