39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| var fs = require('fs');
 | |
| var path = require('canonical-path');
 | |
| 
 | |
| /**
 | |
|  * Load information about this project from the pubspec.yaml
 | |
|  * @return {Object} The package information
 | |
|  */
 | |
| module.exports = function packageInfo() {
 | |
|   const ngPath = '../angular-dart';
 | |
|   const angularPubspec = path.join(ngPath, 'pubspec.yaml');
 | |
|   const pubspec = fs.readFileSync(angularPubspec, 'UTF-8').split('\n');
 | |
| 
 | |
|   const info = {
 | |
|     version: _get(pubspec, 'version'),
 | |
|     repository: {
 | |
|       type: 'git', //? 'pub' @ 'https://pub.dartlang.org/packages/angular2'
 | |
|       // Not sure `url has a user visible impact on the generated cheatsheet. 
 | |
|       url: 'https://github.com/angular/angular.git', 
 | |
|     }
 | |
|   };
 | |
|   return info;
 | |
| }
 | |
| 
 | |
| // Array.prototype.find doesn't seem to be working.
 | |
| // console.error([1, 'a', 2].find((x) => x === 'a')); // --> -1
 | |
| function _find(arr, test) {
 | |
|   for (let x of arr) {
 | |
|     // console.error(`Looking at: ${x}`);
 | |
|     if (test(x)) return x;
 | |
|   }
 | |
| }
 | |
| 
 | |
| function _get(lines, tag) {
 | |
|   const line = _find(lines, (line) => line.startsWith(tag));
 | |
|   return line.match(/^\w+: (.*)/)[1] || 'unknown';
 | |
| }
 |