SYMBOL INDEX (68 symbols across 13 files) FILE: src/adapters/normalized-adapter.test.ts class StubAdapter (line 10) | class StubAdapter implements Adapter { method constructor (line 13) | constructor(data: RawData | null) { method read (line 17) | async read(): Promise { method write (line 21) | async write(data: RawData): Promise { method data (line 25) | get data(): RawData | null { FILE: src/adapters/normalized-adapter.ts constant DEFAULT_SCHEMA_PATH (line 6) | const DEFAULT_SCHEMA_PATH = './node_modules/json-server/schema.json' type RawData (line 7) | type RawData = Record & { class NormalizedAdapter (line 11) | class NormalizedAdapter implements Adapter { method constructor (line 14) | constructor(adapter: Adapter) { method read (line 18) | async read(): Promise { method write (line 44) | async write(data: Data): Promise { FILE: src/adapters/observer.ts class Observer (line 4) | class Observer { method constructor (line 20) | constructor(adapter: Adapter) { method read (line 24) | async read() { method write (line 31) | async write(arg: T) { FILE: src/app.test.ts type Test (line 13) | type Test = { type HTTPMethods (line 19) | type HTTPMethods = 'DELETE' | 'GET' | 'HEAD' | 'PATCH' | 'POST' | 'PUT' ... FILE: src/app.ts type AppOptions (line 18) | type AppOptions = { constant RESERVED_QUERY_KEYS (line 28) | const RESERVED_QUERY_KEYS = new Set(['_sort', '_page', '_per_page', '_em... function parseListParams (line 30) | function parseListParams(req: any) { function withBody (line 68) | function withBody(action: (name: string, body: Record) ... function withIdAndBody (line 80) | function withIdAndBody( function createApp (line 94) | function createApp(db: Low, options: AppOptions = {}) { FILE: src/bin.ts function help (line 21) | function help() { function args (line 34) | function args(): { function logRoutes (line 145) | function logRoutes(data: Data) { function randomItem (line 160) | function randomItem(items: string[]): string { FILE: src/matches-where.ts type OperatorObject (line 5) | type OperatorObject = Partial> function isJSONObject (line 7) | function isJSONObject(value: unknown): value is JsonObject { function getKnownOperators (line 11) | function getKnownOperators(value: unknown): WhereOperator[] { function matchesWhere (line 24) | function matchesWhere(obj: JsonObject, where: JsonObject): boolean { FILE: src/paginate.ts type PaginationResult (line 1) | type PaginationResult = { function paginate (line 11) | function paginate(items: T[], page: number, perPage: number): Paginat... FILE: src/parse-where.ts function splitKey (line 6) | function splitKey(key: string): { path: string; op: WhereOperator | null... function setPathOp (line 31) | function setPathOp(root: JsonObject, path: string, op: WhereOperator, va... function coerceValue (line 45) | function coerceValue(value: string): string | number | boolean | null { function parseWhere (line 58) | function parseWhere(query: string): JsonObject { FILE: src/random-id.ts function randomId (line 3) | function randomId(): string { FILE: src/service.test.ts constant POSTS (line 15) | const POSTS = 'posts' constant COMMENTS (line 16) | const COMMENTS = 'comments' constant OBJECT (line 17) | const OBJECT = 'object' constant UNKNOWN_RESOURCE (line 19) | const UNKNOWN_RESOURCE = 'xxx' constant UNKNOWN_ID (line 20) | const UNKNOWN_ID = 'xxx' FILE: src/service.ts type Item (line 9) | type Item = Record type Data (line 11) | type Data = Record function isItem (line 13) | function isItem(obj: unknown): obj is Item { type PaginatedItems (line 17) | type PaginatedItems = PaginationResult function ensureArray (line 19) | function ensureArray(arg: string | string[] = []): string[] { function embed (line 23) | function embed(db: Low, name: string, item: Item, related: string)... function nullifyForeignKey (line 49) | function nullifyForeignKey(db: Low, name: string, id: string) { function deleteDependents (line 67) | function deleteDependents(db: Low, name: string, dependents: strin... class Service (line 81) | class Service { method constructor (line 84) | constructor(db: Low) { method #get (line 88) | #get(name: string): Item[] | Item | undefined { method has (line 92) | has(name: string): boolean { method findById (line 96) | findById(name: string, id: string, query: { _embed?: string[] | string... method find (line 110) | find( method create (line 145) | async create(name: string, data: Omit = {}): Promise { method patch (line 190) | async patch(name: string, body: Item = {}): Promise { method updateById (line 194) | async updateById(name: string, id: string, body: Item = {}): Promise