@litexa/core
Version:
Litexa, a programming language for writing Alexa skills
74 lines (64 loc) • 1.83 kB
text/coffeescript
###
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
###
StructureCreator = require('./structureCreator')
###
# Directory Structure
#
# /litexa -- Contains all Generated files
#
# Sample Generated Output (-c json -b none -s javascript)
.
├── artifacts.json
├── aws-config.json
├── litexa
│ ├── assets
│ │ ├── icon-108.png
│ │ └── icon-512.png
│ ├── main.litexa
│ ├── main.test.litexa
│ ├── utils.js
│ └── utils.test.js
├── litexa.config.json
└── skill.json
#
###
class InlinedStructureCreator extends StructureCreator
commonDir = 'common'
create: ->
@ensureDirExists @litexaDirectory
sync: ->
litexaSource = @path.join commonDir, 'litexa'
commonLanguageSource = @path.join commonDir, @sourceLanguage
strategyLanguageSource = @path.join @strategy(), @sourceLanguage
dirs = [
litexaSource
commonLanguageSource
strategyLanguageSource
]
# litexa directory files
@templateFilesHandler.syncDir({
sourcePaths: dirs
destination: @litexaDirectory,
dataTransform: @dataTransform.bind(this)
filterList: [
'main.*litexa'
'util.*(js|coffee|ts)'
'.*\\.json'
'.*\\.opts'
]
})
# root directory files
@templateFilesHandler.syncDir({
sourcePaths: dirs
destination: @rootPath,
dataTransform: @dataTransform.bind(this)
filterList: [
'.*\\.md$'
'\\.gitignore$'
]
})
module.exports = InlinedStructureCreator