@@ -6,121 +6,116 @@ const parseBlueprintPackage = require('./parse-blueprint-package');
66const saveBlueprint = require ( './save-blueprint' ) ;
77const loadSafeBlueprintFile = require ( './load-safe-blueprint-file' ) ;
88const { getBlueprintRelativeFilePath } = require ( './get-blueprint-file-path' ) ;
9- const findBlueprint = require ( './find-blueprint' ) ;
109const getBaseBlueprint = require ( './get-base-blueprint' ) ;
1110const getBlueprintFilePath = require ( './get-blueprint-file-path' ) ;
1211const resolvePackage = require ( './resolve-package' ) ;
1312const { defaultTo } = require ( './constants' ) ;
1413const chooseBlueprintUpdates = require ( './choose-blueprint-updates' ) ;
14+ const getBlueprintFromArgs = require ( './get-blueprint-from-args' ) ;
1515
1616module . exports = async function reset ( {
1717 blueprint : _blueprint ,
1818 to = defaultTo
1919} ) {
20- let cwd = process . cwd ( ) ;
20+ try {
21+ let cwd = process . cwd ( ) ;
2122
22- // A custom config location in package.json may be reset/init away,
23- // so we can no longer look it up on the fly after the run.
24- // We must rely on a lookup before the run.
25- let emberCliUpdateJsonPath = await getBlueprintFilePath ( cwd ) ;
23+ // A custom config location in package.json may be reset/init away,
24+ // so we can no longer look it up on the fly after the run.
25+ // We must rely on a lookup before the run.
26+ let emberCliUpdateJsonPath = await getBlueprintFilePath ( cwd ) ;
2627
27- let emberCliUpdateJson = await loadSafeBlueprintFile ( emberCliUpdateJsonPath ) ;
28+ let emberCliUpdateJson = await loadSafeBlueprintFile ( emberCliUpdateJsonPath ) ;
2829
29- let { blueprints } = emberCliUpdateJson ;
30+ let { blueprints } = emberCliUpdateJson ;
3031
31- if ( ! blueprints . length ) {
32- throw new Error ( 'No blueprints found.' ) ;
33- }
32+ if ( ! blueprints . length ) {
33+ throw 'no blueprints found' ;
34+ }
3435
35- let blueprint ;
36- let packageInfo ;
36+ let blueprint ;
37+ let packageInfo ;
38+
39+ if ( _blueprint ) {
40+ let {
41+ packageInfo : _packageInfo ,
42+ existingBlueprint
43+ } = await getBlueprintFromArgs ( {
44+ cwd,
45+ emberCliUpdateJson,
46+ blueprint : _blueprint ,
47+ to
48+ } ) ;
3749
38- if ( _blueprint ) {
39- let parsedPackage = await parseBlueprintPackage ( {
40- cwd,
41- blueprint : _blueprint
42- } ) ;
43- let url = parsedPackage . url ;
50+ packageInfo = _packageInfo ;
51+ blueprint = existingBlueprint ;
52+ } else {
53+ let {
54+ blueprint : _blueprint
55+ } = await chooseBlueprintUpdates ( {
56+ cwd,
57+ emberCliUpdateJson,
58+ reset : true
59+ } ) ;
4460
45- packageInfo = await resolvePackage ( {
46- name : parsedPackage . name ,
47- url,
48- range : to
49- } ) ;
61+ blueprint = _blueprint ;
5062
51- let packageName = packageInfo . name ;
52- let name = packageInfo . name ;
63+ let parsedPackage = await parseBlueprintPackage ( {
64+ cwd,
65+ blueprint : blueprint . location || blueprint . packageName
66+ } ) ;
67+ let url = parsedPackage . url ;
5368
54- let existingBlueprint = findBlueprint ( emberCliUpdateJson , packageName , name ) ;
55- if ( ! existingBlueprint ) {
56- throw new Error ( 'Blueprint not found.' ) ;
69+ packageInfo = await resolvePackage ( {
70+ name : blueprint . packageName ,
71+ url,
72+ range : to
73+ } ) ;
5774 }
5875
59- blueprint = existingBlueprint ;
60- } else {
61- let {
62- blueprint : _blueprint
63- } = await chooseBlueprintUpdates ( {
64- cwd,
65- emberCliUpdateJson,
66- reset : true
67- } ) ;
68-
69- blueprint = _blueprint ;
76+ blueprint . version = packageInfo . version ;
77+ blueprint . path = packageInfo . path ;
7078
71- let parsedPackage = await parseBlueprintPackage ( {
72- cwd,
73- blueprint : blueprint . location || blueprint . packageName
74- } ) ;
75- let url = parsedPackage . url ;
79+ let baseBlueprint ;
80+ if ( ! blueprint . isBaseBlueprint ) {
81+ baseBlueprint = await getBaseBlueprint ( {
82+ cwd,
83+ blueprints,
84+ blueprint
85+ } ) ;
86+ }
7687
77- packageInfo = await resolvePackage ( {
78- name : blueprint . packageName ,
79- url,
80- range : to
88+ let {
89+ promise,
90+ resolveConflictsProcess
91+ } = await boilerplateUpdate ( {
92+ endVersion : blueprint . version ,
93+ reset : true ,
94+ createCustomDiff : true ,
95+ customDiffOptions : ( {
96+ packageJson
97+ } ) => getStartAndEndCommands ( {
98+ packageJson,
99+ baseBlueprint,
100+ endBlueprint : blueprint
101+ } ) ,
102+ ignoredFiles : [ await getBlueprintRelativeFilePath ( cwd ) ]
81103 } ) ;
82- }
83-
84- blueprint . version = packageInfo . version ;
85- blueprint . path = packageInfo . path ;
86104
87- let baseBlueprint ;
88- if ( ! blueprint . isBaseBlueprint ) {
89- baseBlueprint = await getBaseBlueprint ( {
90- cwd,
91- blueprints,
92- blueprint
93- } ) ;
105+ return {
106+ promise : ( async ( ) => {
107+ let result = await promise ;
108+
109+ await saveBlueprint ( {
110+ emberCliUpdateJsonPath,
111+ blueprint
112+ } ) ;
113+
114+ return result ;
115+ } ) ( ) ,
116+ resolveConflictsProcess
117+ } ;
118+ } catch ( err ) {
119+ return { promise : Promise . reject ( err ) } ;
94120 }
95-
96- let {
97- promise,
98- resolveConflictsProcess
99- } = await boilerplateUpdate ( {
100- endVersion : blueprint . version ,
101- reset : true ,
102- createCustomDiff : true ,
103- customDiffOptions : ( {
104- packageJson
105- } ) => getStartAndEndCommands ( {
106- packageJson,
107- baseBlueprint,
108- endBlueprint : blueprint
109- } ) ,
110- ignoredFiles : [ await getBlueprintRelativeFilePath ( cwd ) ]
111- } ) ;
112-
113- return {
114- promise : ( async ( ) => {
115- let result = await promise ;
116-
117- await saveBlueprint ( {
118- emberCliUpdateJsonPath,
119- blueprint
120- } ) ;
121-
122- return result ;
123- } ) ( ) ,
124- resolveConflictsProcess
125- } ;
126121} ;
0 commit comments