diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2020-05-09 13:34:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-09 08:34:47 -0400 |
commit | f184332c09c851faac50f598d29ebe4426e05464 (patch) | |
tree | 2659aba63702537fcde1bb64ddeafea1e5863f3e /std/encoding/_yaml/loader/loader_state.ts | |
parent | 2b02535028f868ea8dfc471c4921a237747ccd4a (diff) |
BREAKING(std): reorganization (#5087)
* Prepend underscores to private modules
* Remove collectUint8Arrays() It would be a misuse of Deno.iter()'s result.
* Move std/_util/async.ts to std/async
* Move std/util/sha*.ts to std/hash
Diffstat (limited to 'std/encoding/_yaml/loader/loader_state.ts')
-rw-r--r-- | std/encoding/_yaml/loader/loader_state.ts | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/std/encoding/_yaml/loader/loader_state.ts b/std/encoding/_yaml/loader/loader_state.ts new file mode 100644 index 000000000..ca50fcaf1 --- /dev/null +++ b/std/encoding/_yaml/loader/loader_state.ts @@ -0,0 +1,74 @@ +// Ported from js-yaml v3.13.1: +// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da +// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license. +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. + +import { YAMLError } from "../error.ts"; +import { Schema, SchemaDefinition, TypeMap } from "../schema.ts"; +import { State } from "../state.ts"; +import { Type } from "../type.ts"; +import { Any, ArrayObject } from "../utils.ts"; + +export interface LoaderStateOptions { + legacy?: boolean; + listener?: ((...args: Any[]) => void) | null; + /** string to be used as a file path in error/warning messages. */ + filename?: string; + /** specifies a schema to use. */ + schema?: SchemaDefinition; + /** compatibility with JSON.parse behaviour. */ + json?: boolean; + /** function to call on warning messages. */ + onWarning?(this: null, e?: YAMLError): void; +} + +export type ResultType = [] | {} | string; + +export class LoaderState extends State { + public documents: Any[] = []; + public length: number; + public lineIndent = 0; + public lineStart = 0; + public position = 0; + public line = 0; + public filename?: string; + public onWarning?: (...args: Any[]) => void; + public legacy: boolean; + public json: boolean; + public listener?: ((...args: Any[]) => void) | null; + public implicitTypes: Type[]; + public typeMap: TypeMap; + + public version?: string | null; + public checkLineBreaks?: boolean; + public tagMap?: ArrayObject; + public anchorMap?: ArrayObject; + public tag?: string | null; + public anchor?: string | null; + public kind?: string | null; + public result: ResultType | null = ""; + + constructor( + public input: string, + { + filename, + schema, + onWarning, + legacy = false, + json = false, + listener = null, + }: LoaderStateOptions + ) { + super(schema); + this.filename = filename; + this.onWarning = onWarning; + this.legacy = legacy; + this.json = json; + this.listener = listener; + + this.implicitTypes = (this.schema as Schema).compiledImplicit; + this.typeMap = (this.schema as Schema).compiledTypeMap; + + this.length = input.length; + } +} |