0.1.3 • Published 3 years ago

@sarahdayan/sitemaptree v0.1.3

Weekly downloads
4
License
MIT
Repository
-
Last release
3 years ago

SitemapTree is a data structure to represent pages from a static site. It lets you retrieve any resource from the tree with constant time complexity.

Install

npm install @sarahdayan/sitemaptree
# or
yarn add @sarahdayan/sitemaptree

Usage

import { SitemapTree, Resource } from '@sarahdayan/sitemaptree'

const tree = new SitemapTree()

tree.add(new Resource('path/to/first.md'))
tree.add(new Resource('path/to/second.md'))

tree.children[0].children[0].children[0].resource.source // "path/to/first.md"

tree.fromUrl('path/to/second').children[0].resource.source // "path/to/second.md"

Windows

Paths are normalized. If you're running this package on Windows, make sure to use \\ instead of / in your paths, or path.normalize to ensure that your input paths match the ones in your Resource instances.

API

SitemapTree

Create a tree of resources.

SitemapTree.resource

Resource | null

The attached resource.

SitemapTree.parent

SitemapTree | null

The parent of the sitemap tree.

SitemapTree.children

SitemapTree[]

The children of the sitemap tree.

SitemapTree.url

string | null

The URL of the sitemap tree.

SitemapTree.urlPart

string | null

The URL part of the sitemap tree.

SitemapTree.siblings

SitemapTree[]

The siblings of the sitemap tree, including itself.

SitemapTree.allUrls

Record<string, SitemapTree>

All URLs in the sitemap tree.

SitemapTree.add(resource)

(resource: Resource): void

Add a resource to the sitemap tree.

SitemapTree.fromUrl(url)

(url: string): SitemapTree

Retrieve a sub-tree in a sitemap tree from a URL.

SitemapTree.fromResource(resource)

(resource: Resource): SitemapTree

Retrieve a sub-tree in a sitemap tree from a resource.

Resource

Create a resource from a file path.