UNPKG

pomljs

Version:

Prompt Orchestration Markup Language

1 lines 8.88 kB
{"version":3,"file":"index.cjs","sources":["../../.build/util/index.js"],"sourcesContent":["import { readFileSync } from './fs';\nimport path from \"path\";\nexport const deepMerge = (target, source) => {\n // Object can not be array or class instance (like children).\n const isObject = (item) => {\n return (item !== undefined &&\n item !== null &&\n typeof item === 'object' &&\n !Array.isArray(item) &&\n !('$$typeof' in item) &&\n // https://stackoverflow.com/questions/57227185/how-to-detect-if-a-variable-is-a-pure-javascript-object\n item.constructor === Object);\n };\n if (isObject(target) && isObject(source)) {\n target = { ...target }; // Copy target;\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n if (isObject(target[key])) {\n target[key] = deepMerge(target[key], source[key]);\n }\n else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n return target;\n};\nexport const readSource = (source, directory, type) => {\n // Read file content and convert to type.\n // Check whether path is absolute or relative.\n source = !path.isAbsolute(source) && directory ? path.join(directory, source) : source;\n if (type === 'buffer') {\n const buffer = readFileSync(source);\n return buffer;\n }\n else {\n const text = readFileSync(source, 'utf8');\n return parseText(text, type);\n }\n};\nexport const parseText = (object, type) => {\n if (typeof object === 'string') {\n if (type === 'buffer') {\n return Buffer.from(object);\n }\n else if (type === 'string') {\n return object;\n }\n else if (!type) {\n return guessStringType(object)[0];\n }\n else if (type === 'integer') {\n return parseInt(object);\n }\n else if (type === 'float') {\n return parseFloat(object);\n }\n else if (type === 'boolean') {\n if (object.toLowerCase() === 'true' || object === '1') {\n return true;\n }\n else if (object.toLowerCase() === 'false' || object === '0') {\n return false;\n }\n else {\n throw new Error('Invalid boolean value: ' + object);\n }\n }\n else if (type === 'array' || type === 'object') {\n return JSON.parse(object);\n }\n else if (type === 'null') {\n return null;\n }\n else if (type === 'undefined') {\n return undefined;\n }\n else {\n throw new Error('Invalid type: ' + type);\n }\n }\n else if (Buffer.isBuffer(object)) {\n if (type === 'buffer') {\n return object;\n }\n else {\n return parseText(object.toString(), type);\n }\n }\n else {\n throw new Error('Invalid object type (expect buffer or string): ' + typeof object);\n }\n};\nexport const guessStringType = (value) => {\n if (value.toLowerCase() === 'null' || value === '') {\n return [null, 'null'];\n }\n else if (value.toLowerCase() === 'undefined') {\n return [undefined, 'undefined'];\n }\n else if (value.toLowerCase() === 'true') {\n return [true, 'boolean'];\n }\n else if (value.toLowerCase() === 'false') {\n return [false, 'boolean'];\n }\n else if (!isNaN(Number(value))) {\n // https://stackoverflow.com/questions/16775547/javascript-guess-data-type-from-string\n if (parseFloat(value) === parseInt(value)) {\n return [parseInt(value), \"integer\"];\n }\n else {\n return [parseFloat(value), \"float\"];\n }\n }\n else if (/^\\d*(\\.|,)\\d*$/.test(value) || /^(\\d{0,3}(,)?)+\\.\\d*$/.test(value) || /^(\\d{0,3}(\\.)?)+,\\d*$/.test(value)) {\n return [Number(value), \"float\"];\n }\n else {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n return [parsed, 'array'];\n }\n else {\n return [parsed, 'object'];\n }\n }\n catch (e) {\n return [value, 'string'];\n }\n }\n};\n//# sourceMappingURL=index.js.map"],"names":["readFileSync"],"mappings":"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"}