{"version":3,"file":"rollup-plugin-json.cjs.js","sources":["../src/index.js"],"sourcesContent":["import { createFilter, makeLegalIdentifier } from 'rollup-pluginutils';\n\nexport default function json(options = {}) {\n\tconst filter = createFilter(options.include, options.exclude);\n\n\treturn {\n\t\tname: 'json',\n\n\t\ttransform(json, id) {\n\t\t\tif (id.slice(-5) !== '.json') return null;\n\t\t\tif (!filter(id)) return null;\n\n\t\t\tconst data = JSON.parse(json);\n\t\t\tlet code = '';\n\n\t\t\tconst ast = {\n\t\t\t\ttype: 'Program',\n\t\t\t\tsourceType: 'module',\n\t\t\t\tstart: 0,\n\t\t\t\tend: null,\n\t\t\t\tbody: []\n\t\t\t};\n\n\t\t\tif (Object.prototype.toString.call(data) !== '[object Object]') {\n\t\t\t\tcode = `export default ${json};`;\n\n\t\t\t\tast.body.push({\n\t\t\t\t\ttype: 'ExportDefaultDeclaration',\n\t\t\t\t\tstart: 0,\n\t\t\t\t\tend: code.length,\n\t\t\t\t\tdeclaration: {\n\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\tstart: 15,\n\t\t\t\t\t\tend: code.length - 1,\n\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t\traw: 'null'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst indent = 'indent' in options ? options.indent : '\\t';\n\n\t\t\t\tconst validKeys = [];\n\t\t\t\tconst invalidKeys = [];\n\n\t\t\t\tObject.keys(data).forEach(key => {\n\t\t\t\t\tif (key === makeLegalIdentifier(key)) {\n\t\t\t\t\t\tvalidKeys.push(key);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinvalidKeys.push(key);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tlet char = 0;\n\n\t\t\t\tvalidKeys.forEach(key => {\n\t\t\t\t\tconst declarationType = options.preferConst ? 'const' : 'var';\n\t\t\t\t\tconst declaration = `export ${declarationType} ${key} = ${JSON.stringify(data[key])};`;\n\n\t\t\t\t\tconst start = char;\n\t\t\t\t\tconst end = start + declaration.length;\n\n\t\t\t\t\t// generate fake AST node while we're here\n\t\t\t\t\tast.body.push({\n\t\t\t\t\t\ttype: 'ExportNamedDeclaration',\n\t\t\t\t\t\tstart: char,\n\t\t\t\t\t\tend: char + declaration.length,\n\t\t\t\t\t\tdeclaration: {\n\t\t\t\t\t\t\ttype: 'VariableDeclaration',\n\t\t\t\t\t\t\tstart: start + 7, // 'export '.length\n\t\t\t\t\t\t\tend,\n\t\t\t\t\t\t\tdeclarations: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: 'VariableDeclarator',\n\t\t\t\t\t\t\t\t\tstart: start + 7 + declarationType.length + 1, // `export ${declarationType} `.length\n\t\t\t\t\t\t\t\t\tend: end - 1,\n\t\t\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\t\t\ttype: 'Identifier',\n\t\t\t\t\t\t\t\t\t\tstart: start + 7 + declarationType.length + 1, // `export ${declarationType} `.length\n\t\t\t\t\t\t\t\t\t\tend: start + 7 + declarationType.length + 1 + key.length, // `export ${declarationType} ${key}`.length\n\t\t\t\t\t\t\t\t\t\tname: key\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tinit: {\n\t\t\t\t\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\t\t\t\t\tstart: start +\n\t\t\t\t\t\t\t\t\t\t\t7 +\n\t\t\t\t\t\t\t\t\t\t\tdeclarationType.length +\n\t\t\t\t\t\t\t\t\t\t\t1 +\n\t\t\t\t\t\t\t\t\t\t\tkey.length +\n\t\t\t\t\t\t\t\t\t\t\t3, // `export ${declarationType} ${key} = `.length\n\t\t\t\t\t\t\t\t\t\tend: end - 1,\n\t\t\t\t\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t\t\t\t\t\traw: 'null'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tkind: declarationType\n\t\t\t\t\t\t},\n\t\t\t\t\t\tspecifiers: [],\n\t\t\t\t\t\tsource: null\n\t\t\t\t\t});\n\n\t\t\t\t\tchar = end + 1;\n\t\t\t\t\tcode += `${declaration}\\n`;\n\t\t\t\t});\n\n\t\t\t\tconst defaultExportNode = {\n\t\t\t\t\ttype: 'ExportDefaultDeclaration',\n\t\t\t\t\tstart: char,\n\t\t\t\t\tend: null,\n\t\t\t\t\tdeclaration: {\n\t\t\t\t\t\ttype: 'ObjectExpression',\n\t\t\t\t\t\tstart: char + 15,\n\t\t\t\t\t\tend: null,\n\t\t\t\t\t\tproperties: []\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tchar += 17 + indent.length; // 'export default {\\n\\t'.length'\n\n\t\t\t\tconst defaultExportRows = validKeys\n\t\t\t\t\t.map(key => {\n\t\t\t\t\t\tconst row = `${key}: ${key}`;\n\n\t\t\t\t\t\tconst start = char;\n\t\t\t\t\t\tconst end = start + row.length;\n\n\t\t\t\t\t\tdefaultExportNode.declaration.properties.push({\n\t\t\t\t\t\t\ttype: 'Property',\n\t\t\t\t\t\t\tstart,\n\t\t\t\t\t\t\tend,\n\t\t\t\t\t\t\tmethod: false,\n\t\t\t\t\t\t\tshorthand: false,\n\t\t\t\t\t\t\tcomputed: false,\n\t\t\t\t\t\t\tkey: {\n\t\t\t\t\t\t\t\ttype: 'Identifier',\n\t\t\t\t\t\t\t\tstart,\n\t\t\t\t\t\t\t\tend: start + key.length,\n\t\t\t\t\t\t\t\tname: key\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tvalue: {\n\t\t\t\t\t\t\t\ttype: 'Identifier',\n\t\t\t\t\t\t\t\tstart: start + key.length + 2,\n\t\t\t\t\t\t\t\tend,\n\t\t\t\t\t\t\t\tname: key\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tkind: 'init'\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchar += row.length + (2 + indent.length); // ',\\n\\t'.length\n\n\t\t\t\t\t\treturn row;\n\t\t\t\t\t})\n\t\t\t\t\t.concat(\n\t\t\t\t\t\tinvalidKeys.map(key => `\"${key}\": ${JSON.stringify(data[key])}`)\n\t\t\t\t\t);\n\n\t\t\t\tcode += `export default {\\n${indent}${defaultExportRows.join(`,\\n${indent}`)}\\n};`;\n\t\t\t\tast.body.push(defaultExportNode);\n\n\t\t\t\tconst end = code.length;\n\n\t\t\t\tdefaultExportNode.declaration.end = end - 1;\n\t\t\t\tdefaultExportNode.end = end;\n\t\t\t}\n\n\t\t\tast.end = code.length;\n\n\t\t\treturn { ast, code, map: { mappings: '' } };\n\t\t}\n\t};\n}\n"],"names":["const","createFilter","let","makeLegalIdentifier"],"mappings":"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"}