UNPKG

@aws-amplify/cli-internal

Version:
50 lines 2.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GeoGenerator = void 0; const node_path_1 = __importDefault(require("node:path")); const promises_1 = __importDefault(require("node:fs/promises")); const ts_1 = require("../../ts"); const geo_renderer_1 = require("./geo.renderer"); class GeoGenerator { constructor(backendGenerator, outputDir, logger) { this.renderer = new geo_renderer_1.GeoRenderer(); this.maps = []; this.placeIndices = []; this.geofenceCollections = []; this.backendGenerator = backendGenerator; this.outputDir = outputDir; this.logger = logger; } addMap(props) { this.maps.push(props); } addPlaceIndex(props) { this.placeIndices.push(props); } addGeofenceCollection(props) { this.geofenceCollections.push(props); } async plan() { const geoDir = node_path_1.default.join(this.outputDir, 'amplify', 'geo'); return [ { validate: () => undefined, describe: async () => ['Generate amplify/geo/resource.ts'], execute: async () => { this.logger.info('Rendering geo/resource.ts'); const nodes = this.renderer.render(this.maps, this.placeIndices, this.geofenceCollections); const content = ts_1.TS.printNodes(nodes); await promises_1.default.mkdir(geoDir, { recursive: true }); await promises_1.default.writeFile(node_path_1.default.join(geoDir, 'resource.ts'), content, 'utf-8'); this.backendGenerator.addNamespaceImport('geo', './geo/resource'); this.backendGenerator.addPostDefineBackendStatement(`geo.defineGeo(backend)`); }, }, ]; } } exports.GeoGenerator = GeoGenerator; //# sourceMappingURL=geo.generator.js.map