NLdoc Document Specification Types
This repository contains the document specification types for the NLdoc project.
Installation
Add to your .npmrc file:
@nldoc:registry=https://gitlab.com/api/v4/packages/npm/
Then run:
npm install @nldoc/nldoc-document-specification-types
Usage
import { Document } from '@nldoc/nldoc-document-specification-types';
const typedDocument: Document = await Document.parseAsync(document);
Development
Project structure
The project is structured as follows:
src/: Contains the TypeScript source files.
src/__test__/: Contains the test helpers for the TypeScript source files.
src/**/*.spec.ts: Contains the tests for the TypeScript source files.
src/properties/: Contains commonly used properties for the document specification types.
src/util/: Contains utility functions for building up the types.
src/resources.ts: Contains the Resource types as documented in the Specification.
src/descriptors.ts: Contains the Descriptor Resource types as documented in the
Specification.
dist/: Contains the compiled JavaScript files.
Writing new types
When writing new types, they would go into src/resources.ts.
These types are inside one file, because some of them are recursively dependent on others. This
prevents us from breaking up the types into separate files, as imports would break the recursive
dependencies.
See Zod's documentation for more information.
Testing
The types in this package are tested against the collection of examples (valid and invalid) that
were provided in the NLdoc document specification. These examples will be downloaded to the local
filesystem on first run of the tests.
To run the tests, run:
$ npm test
License
See LICENSE.txt for the license of this repository.