diff options
author | Minteck <contact@minteck.org> | 2022-04-09 18:38:29 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-04-09 18:38:29 +0200 |
commit | 457c93328f5b51b3fc0aa1600ce8eb8b45a5c2a9 (patch) | |
tree | a899daf11edb7ce6a99700e462a5740e013f5951 /node_modules/yaml/browser/dist/schema/common/map.js | |
download | snowjail-457c93328f5b51b3fc0aa1600ce8eb8b45a5c2a9.tar.gz snowjail-457c93328f5b51b3fc0aa1600ce8eb8b45a5c2a9.tar.bz2 snowjail-457c93328f5b51b3fc0aa1600ce8eb8b45a5c2a9.zip |
Snowjail v0.1
Diffstat (limited to 'node_modules/yaml/browser/dist/schema/common/map.js')
-rw-r--r-- | node_modules/yaml/browser/dist/schema/common/map.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/node_modules/yaml/browser/dist/schema/common/map.js b/node_modules/yaml/browser/dist/schema/common/map.js new file mode 100644 index 0000000..133d861 --- /dev/null +++ b/node_modules/yaml/browser/dist/schema/common/map.js @@ -0,0 +1,42 @@ +import { isMap } from '../../nodes/Node.js'; +import { createPair } from '../../nodes/Pair.js'; +import { YAMLMap } from '../../nodes/YAMLMap.js'; + +function createMap(schema, obj, ctx) { + const { keepUndefined, replacer } = ctx; + const map = new YAMLMap(schema); + const add = (key, value) => { + if (typeof replacer === 'function') + value = replacer.call(obj, key, value); + else if (Array.isArray(replacer) && !replacer.includes(key)) + return; + if (value !== undefined || keepUndefined) + map.items.push(createPair(key, value, ctx)); + }; + if (obj instanceof Map) { + for (const [key, value] of obj) + add(key, value); + } + else if (obj && typeof obj === 'object') { + for (const key of Object.keys(obj)) + add(key, obj[key]); + } + if (typeof schema.sortMapEntries === 'function') { + map.items.sort(schema.sortMapEntries); + } + return map; +} +const map = { + collection: 'map', + createNode: createMap, + default: true, + nodeClass: YAMLMap, + tag: 'tag:yaml.org,2002:map', + resolve(map, onError) { + if (!isMap(map)) + onError('Expected a mapping for this tag'); + return map; + } +}; + +export { map }; |