-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(cli): fix type reference schemas #4701
Conversation
"js-yaml": "^4.1.0", | ||
"lodash-es": "^4.17.21", | ||
"yargs": "^17.4.1" | ||
"dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
moved our script cli to tsup and off of the old stuff
const filepath = argv.filepath; | ||
const jsonSchema = zodToJsonSchema(DefinitionFileSchema, "Fern Definition"); | ||
const jsonSchemaStr = JSON.stringify(jsonSchema); | ||
const config = (await prettier.resolveConfig(filepath)) ?? undefined; | ||
const jsonSchemaFormatted = prettier.format(jsonSchemaStr, { ...config, filepath }); | ||
await writeFile(filepath, jsonSchemaFormatted); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: I'd consider consolidating this into fewer lines to keep things a little more terse, but I get it if you like the readability as-is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i just kept the function the same as what it used to be (just copy pastad it)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will just leave as is to keep things moving
Human Summary
TypeReferenceSchema.ts
so that its easier to add to over timeAI Generated Summary
This PR introduces changes to the
TypeReferenceSchema
andVariableDeclarationSchema
in thefern-definition
andopenapi-ir-to-fern
packages.Changes
TypeReferenceSchema
is now imported from theTypeReferenceSchema.ts
file instead of theTypeReferenceWithDocsAndAvailabilitySchema.ts
file.VariableDeclarationSchema
is now defined as a union of a string and a strict object with atype
property and an extension of theWithDocsSchema.shape
.TypeReferenceSchema
is now exported as a constant and a type, with the constant being defined as the result of calling theextendTypeReferenceSchema
function with an object shape as an argument.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.TypeReferenceWithDocsAndDisplayNameAndAvailabilitySchema
is now returned by thebuildPrimitiveTypeReference
,buildBooleanTypeReference
,buildLongTypeReference
,buildStringTypeReference
,buildIntegerTypeReference
,buildFloatTypeReference
,buildDoubleTypeReference
,buildReferenceTypeReference
,buildArrayTypeReference
,buildMapTypeReference
,buildOptionalTypeReference
,buildUnknownTypeReference
,buildLiteralTypeReference
,buildEnumTypeReference
,buildObjectTypeReference
, andbuildOneOfTypeReference
functions.