@litexa/core
Version:
Litexa, a programming language for writing Alexa skills
46 lines (35 loc) • 1.25 kB
text/coffeescript
###
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
###
fs = require 'fs'
path = require 'path'
Generator = require('./generator')
class ArtifactTrackerGenerator extends Generator
@description: 'artifacts tracker'
constructor: (args) ->
super(args)
@artifactClass = args.artifactClass
# Public Interface
generate: ->
filename = 'artifacts.json'
source = path.join @_rootPath(), filename
data =
if fs.existsSync source
@logger.log "existing #{filename} found -> skipping creation"
JSON.parse fs.readFileSync source, 'utf8'
else
@logger.log "creating #{filename} -> contains deployment records and should be version
controlled"
{}
artifacts = new @artifactClass source, data
artifacts.saveGlobal 'last-generated', currentTime()
# Direct Public Side-Effect
@options.artifacts = artifacts
return Promise.resolve()
# Helper Methods
currentTime = ->
(new Date).getTime()
module.exports = ArtifactTrackerGenerator