UNPKG

codama

Version:

A Solana framework for building standardised programs

85 lines (83 loc) 3.22 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var index_exports = {}; __export(index_exports, { createFromJson: () => createFromJson, createFromRoot: () => createFromRoot, validateCodamaVersion: () => validateCodamaVersion }); module.exports = __toCommonJS(index_exports); __reExport(index_exports, require("@codama/errors"), module.exports); __reExport(index_exports, require("@codama/nodes"), module.exports); __reExport(index_exports, require("@codama/validators"), module.exports); __reExport(index_exports, require("@codama/visitors"), module.exports); // src/codama.ts var import_errors = require("@codama/errors"); var import_errors2 = require("@codama/errors"); var import_nodes = require("@codama/nodes"); var import_visitors = require("@codama/visitors"); function createFromRoot(root) { let currentRoot = root; validateCodamaVersion(currentRoot.version); return { accept(visitor) { return (0, import_visitors.visit)(currentRoot, visitor); }, clone() { return createFromRoot({ ...currentRoot }); }, getJson() { return JSON.stringify(currentRoot); }, getRoot() { return currentRoot; }, update(visitor) { const newRoot = (0, import_visitors.visit)(currentRoot, visitor); (0, import_nodes.assertIsNode)(newRoot, "rootNode"); currentRoot = newRoot; } }; } function createFromJson(json) { return createFromRoot(JSON.parse(json)); } function validateCodamaVersion(rootVersion) { const codamaVersion = "1.3.1"; if (rootVersion === codamaVersion) return; const [rootMajor, rootMinor] = rootVersion.split(".").map(Number); const [CodamaMajor, CodamaMinor] = codamaVersion.split(".").map(Number); const isZeroMajor = rootMajor === 0 && CodamaMajor === 0; if (isZeroMajor && rootMinor === CodamaMinor) return; if (rootMajor === CodamaMajor) return; throw new import_errors2.CodamaError(import_errors.CODAMA_ERROR__VERSION_MISMATCH, { codamaVersion, rootVersion }); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { createFromJson, createFromRoot, validateCodamaVersion, ...require("@codama/errors"), ...require("@codama/nodes"), ...require("@codama/validators"), ...require("@codama/visitors") }); //# sourceMappingURL=index.node.cjs.map