add ci
This commit is contained in:
		
							
								
								
									
										63
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
# gitzone standard
 | 
			
		||||
image: hosttoday/ht-docker-node:npmts
 | 
			
		||||
 | 
			
		||||
stages:
 | 
			
		||||
- test
 | 
			
		||||
- release
 | 
			
		||||
- trigger
 | 
			
		||||
- pages
 | 
			
		||||
 | 
			
		||||
testLEGACY:
 | 
			
		||||
  stage: test
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci test legacy
 | 
			
		||||
  coverage: /\d+.?\d+?\%\s*coverage/
 | 
			
		||||
  tags:
 | 
			
		||||
    - docker
 | 
			
		||||
  allow_failure: true
 | 
			
		||||
 | 
			
		||||
testLTS:
 | 
			
		||||
  stage: test
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci test lts
 | 
			
		||||
  coverage: /\d+.?\d+?\%\s*coverage/
 | 
			
		||||
  tags:
 | 
			
		||||
    - docker
 | 
			
		||||
    
 | 
			
		||||
testSTABLE:
 | 
			
		||||
  stage: test
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci test stable
 | 
			
		||||
  coverage: /\d+.?\d+?\%\s*coverage/
 | 
			
		||||
  tags:
 | 
			
		||||
    - docker
 | 
			
		||||
 | 
			
		||||
release:
 | 
			
		||||
  stage: release
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci publish
 | 
			
		||||
  only:
 | 
			
		||||
    - tags
 | 
			
		||||
  tags:
 | 
			
		||||
    - docker
 | 
			
		||||
 | 
			
		||||
trigger:
 | 
			
		||||
  stage: trigger
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci trigger
 | 
			
		||||
  only:
 | 
			
		||||
    - tags
 | 
			
		||||
  tags:
 | 
			
		||||
    - docker
 | 
			
		||||
 | 
			
		||||
pages:
 | 
			
		||||
  image: hosttoday/ht-docker-node:npmpage
 | 
			
		||||
  stage: pages
 | 
			
		||||
  script:
 | 
			
		||||
    - npmci command npmpage --publish gitlab
 | 
			
		||||
  only:
 | 
			
		||||
    - tags
 | 
			
		||||
  artifacts:
 | 
			
		||||
    expire_in: 1 week
 | 
			
		||||
    paths:
 | 
			
		||||
    - public
 | 
			
		||||
							
								
								
									
										2
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							@@ -49,4 +49,4 @@ exports.getTemplateForFile = (filePathArg) => __awaiter(this, void 0, void 0, fu
 | 
			
		||||
    let filePathAbsolute = path.resolve(filePathArg);
 | 
			
		||||
    return handlebars.compile(smartfile.fs.toStringSync(filePathAbsolute));
 | 
			
		||||
});
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwwQkFBdUI7QUFDdkIseUNBQXdDO0FBQ3hDLHVDQUFzQztBQUN0Qyw2QkFBNEI7QUFHNUI7O0dBRUc7QUFDUSxRQUFBLGtCQUFrQixHQUFHLENBQUMsVUFBa0I7SUFDL0MsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlO1FBQ2xFLEdBQUcsQ0FBQyxDQUFDLElBQUksV0FBVyxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUN4QyxJQUFJLGFBQWEsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFBO1lBQ2pGLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDeEIsVUFBVSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQTtZQUMzQyxDQUFDO1lBQ0QsSUFBSSxXQUFXLEdBQUcsV0FBVyxVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUMvRCxVQUFVLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUMxRCxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsZ0JBQWdCLEdBQUcsQ0FDMUIsZ0JBQXdCLEVBQ3hCLHFCQUE2QixFQUM3QixlQUF1QjtJQUV2QixJQUFJLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzNFLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQTtJQUNsRixHQUFHLENBQUEsQ0FBQyxJQUFJLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUN4QyxJQUFJLGFBQWEsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFDdkYsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNoRCxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFBO1FBQ25DLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0FBQ0wsQ0FBQyxDQUFBLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsa0JBQWtCLEdBQUcsQ0FBTyxXQUFtQjtJQUN0RCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDaEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFBO0FBQzFFLENBQUMsQ0FBQSxDQUFBIn0=
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwwQkFBdUI7QUFDdkIseUNBQXdDO0FBQ3hDLHVDQUFzQztBQUN0Qyw2QkFBNEI7QUFHNUI7O0dBRUc7QUFDUSxRQUFBLGtCQUFrQixHQUFHLENBQUMsVUFBa0I7SUFDakQsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlO1FBQ3BFLEdBQUcsQ0FBQyxDQUFDLElBQUksV0FBVyxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUN4QyxJQUFJLGFBQWEsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFBO1lBQ2pGLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDMUIsVUFBVSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQTtZQUN6QyxDQUFDO1lBQ0QsSUFBSSxXQUFXLEdBQUcsV0FBVyxVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUMvRCxVQUFVLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUN4RCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsZ0JBQWdCLEdBQUcsQ0FDNUIsZ0JBQXdCLEVBQ3hCLHFCQUE2QixFQUM3QixlQUF1QjtJQUV2QixJQUFJLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzNFLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQTtJQUNsRixHQUFHLENBQUMsQ0FBQyxJQUFJLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUN4QyxJQUFJLGFBQWEsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFDdkYsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNoRCxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFBO1FBQ25DLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0FBQ0gsQ0FBQyxDQUFBLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsa0JBQWtCLEdBQUcsQ0FBTyxXQUFtQjtJQUN4RCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDaEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFBO0FBQ3hFLENBQUMsQ0FBQSxDQUFBIn0=
 | 
			
		||||
							
								
								
									
										52
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								ts/index.ts
									
									
									
									
									
								
							@@ -8,43 +8,43 @@ export type TTemplateStringType = 'filePath' | 'code'
 | 
			
		||||
 * registers a directory of partials to make them available within handlebars compilation
 | 
			
		||||
 */
 | 
			
		||||
export let registerPartialDir = (dirPathArg: string) => {
 | 
			
		||||
    smartfile.fs.listFileTree(dirPathArg, '**/*.hbs').then(hbsFileArrayArg => {
 | 
			
		||||
        for (let hbsFilePath of hbsFileArrayArg) {
 | 
			
		||||
            let parsedPath = path.parse(hbsFilePath)
 | 
			
		||||
            let hbsFileString = smartfile.fs.toStringSync(path.join(dirPathArg, hbsFilePath))
 | 
			
		||||
            if (parsedPath.dir === '') {
 | 
			
		||||
                parsedPath.name = '/' + parsedPath.name
 | 
			
		||||
            }
 | 
			
		||||
            let partialName = `partials${parsedPath.dir}${parsedPath.name}`
 | 
			
		||||
            handlebars.registerPartial(partialName, hbsFileString)
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
  smartfile.fs.listFileTree(dirPathArg, '**/*.hbs').then(hbsFileArrayArg => {
 | 
			
		||||
    for (let hbsFilePath of hbsFileArrayArg) {
 | 
			
		||||
      let parsedPath = path.parse(hbsFilePath)
 | 
			
		||||
      let hbsFileString = smartfile.fs.toStringSync(path.join(dirPathArg, hbsFilePath))
 | 
			
		||||
      if (parsedPath.dir === '') {
 | 
			
		||||
        parsedPath.name = '/' + parsedPath.name
 | 
			
		||||
      }
 | 
			
		||||
      let partialName = `partials${parsedPath.dir}${parsedPath.name}`
 | 
			
		||||
      handlebars.registerPartial(partialName, hbsFileString)
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * compiles a directory and outputs it 
 | 
			
		||||
 */
 | 
			
		||||
export let compileDirectory = async (
 | 
			
		||||
    originDirPathArg: string,
 | 
			
		||||
    destinationDirPathArg: string,
 | 
			
		||||
    dataFileNameArg: string
 | 
			
		||||
  originDirPathArg: string,
 | 
			
		||||
  destinationDirPathArg: string,
 | 
			
		||||
  dataFileNameArg: string
 | 
			
		||||
) => {
 | 
			
		||||
    let hbsFilePathArray = smartfile.fs.listFilesSync(originDirPathArg, /.hbs/)
 | 
			
		||||
    let data = smartfile.fs.toObjectSync(path.join(originDirPathArg, dataFileNameArg))
 | 
			
		||||
    for(let hbsFilePath of hbsFilePathArray) {
 | 
			
		||||
        let parsedPath = path.parse(hbsFilePath)
 | 
			
		||||
        let hbsFileString = smartfile.fs.toStringSync(path.join(originDirPathArg, hbsFilePath))
 | 
			
		||||
        let template = handlebars.compile(hbsFileString)
 | 
			
		||||
        let output = template(data)
 | 
			
		||||
        console.log('hi ' + output + ' hi')
 | 
			
		||||
        smartfile.memory.toFsSync(output, path.join(destinationDirPathArg, parsedPath.name + '.html'))
 | 
			
		||||
    }
 | 
			
		||||
  let hbsFilePathArray = smartfile.fs.listFilesSync(originDirPathArg, /.hbs/)
 | 
			
		||||
  let data = smartfile.fs.toObjectSync(path.join(originDirPathArg, dataFileNameArg))
 | 
			
		||||
  for (let hbsFilePath of hbsFilePathArray) {
 | 
			
		||||
    let parsedPath = path.parse(hbsFilePath)
 | 
			
		||||
    let hbsFileString = smartfile.fs.toStringSync(path.join(originDirPathArg, hbsFilePath))
 | 
			
		||||
    let template = handlebars.compile(hbsFileString)
 | 
			
		||||
    let output = template(data)
 | 
			
		||||
    console.log('hi ' + output + ' hi')
 | 
			
		||||
    smartfile.memory.toFsSync(output, path.join(destinationDirPathArg, parsedPath.name + '.html'))
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * get a template for a file on disk
 | 
			
		||||
 */
 | 
			
		||||
export let getTemplateForFile = async (filePathArg: string) => {
 | 
			
		||||
    let filePathAbsolute = path.resolve(filePathArg)
 | 
			
		||||
    return handlebars.compile(smartfile.fs.toStringSync(filePathAbsolute))
 | 
			
		||||
  let filePathAbsolute = path.resolve(filePathArg)
 | 
			
		||||
  return handlebars.compile(smartfile.fs.toStringSync(filePathAbsolute))
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								tslint.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								tslint.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
{
 | 
			
		||||
    "extends": "tslint-config-standard"
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user