Replace YAML parser
This commit is contained in:
+1
-1
@@ -15,7 +15,7 @@ export type { Completion, CompletionResult } from "@codemirror/autocomplete";
|
||||
|
||||
export { styleTags, Tag, tagHighlighter, tags } from "@lezer/highlight";
|
||||
|
||||
export * as YAML from "https://deno.land/std@0.189.0/yaml/mod.ts";
|
||||
export * as YAML from "https://esm.sh/js-yaml@4.1.0";
|
||||
export * as path from "https://deno.land/std@0.189.0/path/mod.ts";
|
||||
|
||||
export type {
|
||||
|
||||
+37
-4
@@ -1,15 +1,48 @@
|
||||
import { SysCallMapping } from "../../plugos/system.ts";
|
||||
import { YAML } from "../../web/deps.ts";
|
||||
|
||||
type YamlStringifyOptions = {
|
||||
/** indentation width to use (in spaces). */
|
||||
indent?: number;
|
||||
/** when true, will not add an indentation level to array elements */
|
||||
noArrayIndent?: boolean;
|
||||
/** do not throw on invalid types (like function in the safe schema) and skip pairs and single values with such types. */
|
||||
skipInvalid?: boolean;
|
||||
/** specifies level of nesting, when to switch from block to flow style for collections. -1 means block style everwhere */
|
||||
flowLevel?: number;
|
||||
/** if true, sort keys when dumping YAML. If a function, use the function to sort the keys. (default: false) */
|
||||
sortKeys?: boolean;
|
||||
/** set max line width. (default: 80) */
|
||||
lineWidth?: number;
|
||||
/** if true, don't convert duplicate objects into references (default: false) */
|
||||
noRefs?: boolean;
|
||||
/** if true don't try to be compatible with older yaml versions. Currently: don't quote "yes", "no" and so on, as required for YAML 1.1 (default: false) */
|
||||
noCompatMode?: boolean;
|
||||
/**
|
||||
* if true flow sequences will be condensed, omitting the space between `key: value` or `a, b`. Eg. `'[a,b]'` or `{a:{b:c}}`.
|
||||
* Can be useful when using yaml for pretty URL query params as spaces are %-encoded. (default: false).
|
||||
*/
|
||||
condenseFlow?: boolean;
|
||||
/** strings will be quoted using this quoting style. If you specify single quotes, double quotes will still be used for non-printable characters. (default: `'`) */
|
||||
quotingType?: "'" | '"';
|
||||
/** if true, all non-key strings will be quoted even if they normally don't need to. (default: false) */
|
||||
forceQuotes?: boolean;
|
||||
};
|
||||
|
||||
export function yamlSyscalls(): SysCallMapping {
|
||||
return {
|
||||
"yaml.parse": (_ctx, text: string): any => {
|
||||
return YAML.parse(text);
|
||||
return YAML.load(text);
|
||||
},
|
||||
"yaml.stringify": (_ctx, obj: any): string => {
|
||||
return YAML.stringify(obj, {
|
||||
noArrayIndent: true,
|
||||
"yaml.stringify": (
|
||||
_ctx,
|
||||
obj: any,
|
||||
options: YamlStringifyOptions = {},
|
||||
): string => {
|
||||
return YAML.dump(obj, {
|
||||
quotingType: '"',
|
||||
noCompatMode: true,
|
||||
...options,
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ export function parseYamlSettings(settingsMarkdown: string): {
|
||||
}
|
||||
const yaml = match[1];
|
||||
try {
|
||||
return YAML.parse(yaml) as {
|
||||
return YAML.load(yaml) as {
|
||||
[key: string]: any;
|
||||
};
|
||||
} catch (e: any) {
|
||||
|
||||
Reference in New Issue
Block a user