@nldoc/document-spec-types
v3.0.1
Published
NLdoc's Type Definitions for Document Specification
Readme
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-typesUsage
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 testLicense
See LICENSE.txt for the license of this repository.
