@create-node-app/core 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- type Addon = {
1
+ type TemplateOrExtension = {
2
2
  url: string;
3
3
  ignorePackage?: boolean;
4
4
  };
@@ -15,7 +15,7 @@ type CnaOptions = {
15
15
  useNpm?: boolean;
16
16
  nodeps?: boolean;
17
17
  template?: string;
18
- addons?: Addon[];
18
+ templatesOrExtensions?: TemplateOrExtension[];
19
19
  };
20
20
  type CnaOptionsTransform = (options: CnaOptions) => Promise<CnaOptions>;
21
21
  /**
@@ -32,7 +32,7 @@ type CnaOptionsTransform = (options: CnaOptions) => Promise<CnaOptions>;
32
32
  * @param options.nodeps - Generate package.json file without installing dependencies
33
33
  * @param options.template - Template to bootstrap the aplication
34
34
  * @param options.extend - Extensions to apply for the boilerplate generation
35
- * @param options.addons - Official extensions to apply
35
+ * @param options.templatesOrExtensions - Official extensions to apply
36
36
  * @param transformOptions - Function to transform the options
37
37
  */
38
38
  declare const createNodeApp: (programName: string, options: CnaOptions, transformOptions: CnaOptionsTransform) => Promise<void>;
package/dist/index.js CHANGED
@@ -216,7 +216,6 @@ var import_child_process2 = __toESM(require("child_process"));
216
216
  var import_path = __toESM(require("path"));
217
217
  var import_util = require("util");
218
218
  var import_fs = __toESM(require("fs"));
219
- var import_download = __toESM(require("download"));
220
219
  var import_debug = __toESM(require("debug"));
221
220
  var log = (0, import_debug.default)("cna:git");
222
221
  var exec = (0, import_util.promisify)(import_child_process2.default.exec);
@@ -232,75 +231,45 @@ var pull = async (cwd) => {
232
231
  await exec("git pull", { cwd });
233
232
  };
234
233
  var downloadRepository = async ({
235
- git = "",
236
- zip,
234
+ url = "",
237
235
  offline = false,
238
236
  target = "./",
239
237
  branch = "main",
240
- way = "git",
241
238
  targetId,
242
239
  cacheDir: optsCacheDir
243
240
  }) => {
244
241
  const absoluteTarget = import_path.default.isAbsolute(target) ? target : import_path.default.resolve(target);
245
- const isGithub = /^[^/]+\/[^/]+$/.test(git);
246
- const gitUrl = isGithub ? `https://github.com/${git}` : git;
247
- const zipUrl = isGithub ? `https://github.com/${git}/archive/${branch}.zip` : zip;
248
- const id = targetId || Buffer.from(`${git}@${branch}`).toString("base64");
242
+ const isGithub = /^[^/]+\/[^/]+$/.test(url);
243
+ const gitUrl = isGithub ? `https://github.com/${url}` : url;
244
+ const id = targetId || Buffer.from(`${gitUrl}@${branch}`).toString("base64");
249
245
  let cacheDir = optsCacheDir || import_path.default.join(import_os.default.homedir(), ".cache", "cna", id);
250
246
  cacheDir = import_path.default.isAbsolute(cacheDir) ? cacheDir : import_path.default.resolve(cacheDir);
251
247
  log("cache folder: %s", cacheDir);
252
- log("git url: %s", gitUrl);
253
- log("zip url: %s", zipUrl);
254
248
  const cached = import_fs.default.existsSync(cacheDir);
255
- const createByGit = async () => {
256
- log("git mode");
257
- if (!cached) {
258
- if (!gitUrl) {
259
- throw new Error(
260
- `Expect parameter opts.git when opts.way is 'git', but got ${gitUrl}`
261
- );
262
- }
263
- await clone(gitUrl, cacheDir, branch);
264
- }
265
- if (offline) {
266
- import_fs.default.cpSync(cacheDir, absoluteTarget, {
267
- force: true,
268
- filter: filterGit,
269
- recursive: true
270
- });
271
- return;
272
- }
273
- await pull(cacheDir);
274
- setTimeout(() => {
275
- import_fs.default.cpSync(cacheDir, absoluteTarget, {
276
- force: true,
277
- filter: filterGit,
278
- recursive: true
279
- });
280
- }, 400);
281
- };
282
- const createByZip = async () => {
283
- log("zip mode");
284
- if (!zipUrl) {
285
- throw new Error(
286
- `Expect parameter opts.zip when opts.way is 'zip', but got ${zipUrl}`
287
- );
288
- }
289
- await (0, import_download.default)(zipUrl, target, { extract: true });
290
- };
291
- switch (way) {
292
- case "git":
293
- return createByGit();
294
- case "zip":
295
- return createByZip();
296
- default:
297
- throw new Error(`Expect parameter opts.way is 'git' or 'zip'`);
298
- }
249
+ if (!cached) {
250
+ await clone(gitUrl, cacheDir, branch);
251
+ }
252
+ if (offline) {
253
+ import_fs.default.cpSync(cacheDir, absoluteTarget, {
254
+ force: true,
255
+ filter: filterGit,
256
+ recursive: true
257
+ });
258
+ return;
259
+ }
260
+ await pull(cacheDir);
261
+ setTimeout(() => {
262
+ import_fs.default.cpSync(cacheDir, absoluteTarget, {
263
+ force: true,
264
+ filter: filterGit,
265
+ recursive: true
266
+ });
267
+ }, 400);
299
268
  };
300
269
 
301
270
  // paths.ts
302
- var solveValuesFromAddonUrl = (addon) => {
303
- const url = new URL(addon);
271
+ var solveValuesFromTemplateOrExtensionUrl = (templateOrExtension) => {
272
+ const url = new URL(templateOrExtension);
304
273
  const origin = `${url.protocol}//${url.host}`;
305
274
  const [org, repo, , branch = "", ...subdir] = url.pathname.slice(1).split("/");
306
275
  const ignorePackage = url.searchParams.get("ignorePackage") === "true";
@@ -323,7 +292,7 @@ var solveRepositoryPath = async ({
323
292
  const target = import_path2.default.join(import_os2.default.homedir(), ".cna", targetId);
324
293
  try {
325
294
  await downloadRepository({
326
- git: url,
295
+ url,
327
296
  branch,
328
297
  target,
329
298
  targetId
@@ -332,9 +301,9 @@ var solveRepositoryPath = async ({
332
301
  }
333
302
  return { dir: target, subdir };
334
303
  };
335
- var solveAddonPath = async (addon) => {
304
+ var solveTemplateOrExtensionPath = async (templateOrExtension) => {
336
305
  try {
337
- const { url, branch, subdir, protocol, host, pathname, ignorePackage } = solveValuesFromAddonUrl(addon);
306
+ const { url, branch, subdir, protocol, host, pathname, ignorePackage } = solveValuesFromTemplateOrExtensionUrl(templateOrExtension);
338
307
  if (protocol === "file:") {
339
308
  return {
340
309
  dir: import_path2.default.resolve(host, pathname),
@@ -349,27 +318,36 @@ var solveAddonPath = async (addon) => {
349
318
  return { ...gitData, ignorePackage };
350
319
  } catch {
351
320
  return {
352
- dir: import_path2.default.resolve(__dirname, "..", "addons", addon),
321
+ dir: import_path2.default.resolve(
322
+ __dirname,
323
+ "..",
324
+ "templatesOrExtensions",
325
+ templateOrExtension
326
+ ),
353
327
  ignorePackage: void 0
354
328
  };
355
329
  }
356
330
  };
357
- var getAddonPackagePath = async (addon, name = "package", ignorePackage = false) => {
331
+ var getPackagePath = async (templateOrExtension, name = "package", ignorePackage = false) => {
358
332
  const {
359
333
  dir,
360
334
  subdir,
361
- ignorePackage: addonIgnorePackage
362
- } = await solveAddonPath(addon);
363
- if (name === "package.json" && (ignorePackage || addonIgnorePackage)) {
364
- throw new Error("package.json should be ignored for file addon");
335
+ ignorePackage: templateOrExtensionIgnorePackage
336
+ } = await solveTemplateOrExtensionPath(templateOrExtension);
337
+ if (name === "package.json" && (ignorePackage || templateOrExtensionIgnorePackage)) {
338
+ throw new Error(
339
+ "package.json should be ignored for file templateOrExtension"
340
+ );
365
341
  }
366
342
  if (subdir) {
367
343
  return import_path2.default.resolve(dir, subdir, name);
368
344
  }
369
345
  return import_path2.default.resolve(dir, name);
370
346
  };
371
- var getAddonTemplateDirPath = async (addonUrl) => {
372
- const { dir, subdir = "" } = await solveAddonPath(addonUrl);
347
+ var getTemplateDirPath = async (templateOrExtensionUrl) => {
348
+ const { dir, subdir = "" } = await solveTemplateOrExtensionPath(
349
+ templateOrExtensionUrl
350
+ );
373
351
  let templateDirPath = import_path2.default.resolve(dir, subdir);
374
352
  const templateDirPathWithTemplate = import_path2.default.resolve(templateDirPath, "template");
375
353
  return new Promise((resolve, reject) => {
@@ -404,37 +382,37 @@ var requireIfExists = (path4) => {
404
382
  }
405
383
  throw new Error(`file ${path4} not exists`);
406
384
  };
407
- var loadAddonsPackages = async ({
408
- addons = [],
385
+ var loadPackages = async ({
386
+ templatesOrExtensions = [],
409
387
  ignorePackage: globalIgnorePackage = false,
410
388
  ...config
411
389
  }) => {
412
- const setup = await addons.reduce(
413
- async (setupPromise, { url: addon, ignorePackage }) => {
390
+ const setup = await templatesOrExtensions.reduce(
391
+ async (setupPromise, { url: templateOrExtension, ignorePackage }) => {
414
392
  let packageJson = await setupPromise;
415
393
  try {
416
394
  const template = requireIfExists(
417
- await getAddonPackagePath(addon, "template.json")
395
+ await getPackagePath(templateOrExtension, "template.json")
418
396
  );
419
397
  packageJson = (0, import_lodash.default)(packageJson, template.package || {});
420
398
  } catch {
421
399
  }
422
400
  try {
423
- const addonPackageJson = requireIfExists(
424
- await getAddonPackagePath(
425
- addon,
401
+ const templateOrExtensionPackageJson = requireIfExists(
402
+ await getPackagePath(
403
+ templateOrExtension,
426
404
  "package.json",
427
405
  globalIgnorePackage || ignorePackage
428
406
  )
429
407
  );
430
- return (0, import_lodash.default)(packageJson, addonPackageJson);
408
+ return (0, import_lodash.default)(packageJson, templateOrExtensionPackageJson);
431
409
  } catch {
432
410
  }
433
411
  try {
434
- const resolveAddonPackage = requireIfExists(
435
- await getAddonPackagePath(addon)
412
+ const resolveTemplateOrExtensionPackage = requireIfExists(
413
+ await getPackagePath(templateOrExtension)
436
414
  );
437
- packageJson = resolveAddonPackage(packageJson, config);
415
+ packageJson = resolveTemplateOrExtensionPackage(packageJson, config);
438
416
  } catch {
439
417
  }
440
418
  return packageJson;
@@ -587,7 +565,7 @@ var fileLoader = ({
587
565
  };
588
566
  var loadFiles = async ({
589
567
  root,
590
- addons = [],
568
+ templatesOrExtensions = [],
591
569
  appName,
592
570
  originalDirectory,
593
571
  alias,
@@ -596,8 +574,8 @@ var loadFiles = async ({
596
574
  runCommand,
597
575
  installCommand
598
576
  }) => {
599
- for await (const { url: addonUrl } of addons) {
600
- const templateDir = await getAddonTemplateDirPath(addonUrl);
577
+ for await (const { url: templateOrExtensionUrl } of templatesOrExtensions) {
578
+ const templateDir = await getTemplateDirPath(templateOrExtensionUrl);
601
579
  if (!import_fs4.default.statSync(templateDir).isDirectory()) {
602
580
  continue;
603
581
  }
@@ -699,7 +677,7 @@ var run = async ({
699
677
  originalDirectory,
700
678
  verbose = false,
701
679
  useYarn = false,
702
- addons = [],
680
+ templatesOrExtensions = [],
703
681
  dependencies = [],
704
682
  devDependencies = [],
705
683
  alias = "",
@@ -712,15 +690,19 @@ var run = async ({
712
690
  if (useYarn) {
713
691
  isOnline = await checkIfOnline(useYarn);
714
692
  }
715
- if (import_underscore2.default.isEmpty(addons)) {
693
+ if (import_underscore2.default.isEmpty(templatesOrExtensions)) {
716
694
  console.log();
717
- console.log(import_chalk3.default.yellow("No addons specified to bootstrap application."));
695
+ console.log(
696
+ import_chalk3.default.yellow(
697
+ "No templates or extensions specified to bootstrap application."
698
+ )
699
+ );
718
700
  console.log();
719
701
  process.exit(0);
720
702
  }
721
703
  await loadFiles({
722
704
  root,
723
- addons,
705
+ templatesOrExtensions,
724
706
  appName,
725
707
  originalDirectory,
726
708
  alias,
@@ -810,7 +792,7 @@ var createApp = async ({
810
792
  name,
811
793
  verbose = false,
812
794
  useNpm = false,
813
- addons = [],
795
+ templatesOrExtensions = [],
814
796
  alias = "",
815
797
  installDependencies = true,
816
798
  ignorePackage = false,
@@ -825,8 +807,8 @@ var createApp = async ({
825
807
  console.log();
826
808
  const useYarn = useNpm ? false : shouldUseYarn();
827
809
  const command = useYarn ? "yarn" : "npm run";
828
- const { packageJson, dependencies, devDependencies } = await loadAddonsPackages({
829
- addons,
810
+ const { packageJson, dependencies, devDependencies } = await loadPackages({
811
+ templatesOrExtensions,
830
812
  appName,
831
813
  command,
832
814
  ignorePackage,
@@ -886,7 +868,7 @@ Please update to npm 3 or higher for a better, fully supported experience.
886
868
  originalDirectory,
887
869
  verbose,
888
870
  useYarn,
889
- addons,
871
+ templatesOrExtensions,
890
872
  dependencies,
891
873
  devDependencies,
892
874
  alias,
package/dist/index.mjs CHANGED
@@ -188,7 +188,6 @@ import childProcess from "child_process";
188
188
  import path from "path";
189
189
  import { promisify } from "util";
190
190
  import fs from "fs";
191
- import download from "download";
192
191
  import debug from "debug";
193
192
  var log = debug("cna:git");
194
193
  var exec = promisify(childProcess.exec);
@@ -204,75 +203,45 @@ var pull = async (cwd) => {
204
203
  await exec("git pull", { cwd });
205
204
  };
206
205
  var downloadRepository = async ({
207
- git = "",
208
- zip,
206
+ url = "",
209
207
  offline = false,
210
208
  target = "./",
211
209
  branch = "main",
212
- way = "git",
213
210
  targetId,
214
211
  cacheDir: optsCacheDir
215
212
  }) => {
216
213
  const absoluteTarget = path.isAbsolute(target) ? target : path.resolve(target);
217
- const isGithub = /^[^/]+\/[^/]+$/.test(git);
218
- const gitUrl = isGithub ? `https://github.com/${git}` : git;
219
- const zipUrl = isGithub ? `https://github.com/${git}/archive/${branch}.zip` : zip;
220
- const id = targetId || Buffer.from(`${git}@${branch}`).toString("base64");
214
+ const isGithub = /^[^/]+\/[^/]+$/.test(url);
215
+ const gitUrl = isGithub ? `https://github.com/${url}` : url;
216
+ const id = targetId || Buffer.from(`${gitUrl}@${branch}`).toString("base64");
221
217
  let cacheDir = optsCacheDir || path.join(os.homedir(), ".cache", "cna", id);
222
218
  cacheDir = path.isAbsolute(cacheDir) ? cacheDir : path.resolve(cacheDir);
223
219
  log("cache folder: %s", cacheDir);
224
- log("git url: %s", gitUrl);
225
- log("zip url: %s", zipUrl);
226
220
  const cached = fs.existsSync(cacheDir);
227
- const createByGit = async () => {
228
- log("git mode");
229
- if (!cached) {
230
- if (!gitUrl) {
231
- throw new Error(
232
- `Expect parameter opts.git when opts.way is 'git', but got ${gitUrl}`
233
- );
234
- }
235
- await clone(gitUrl, cacheDir, branch);
236
- }
237
- if (offline) {
238
- fs.cpSync(cacheDir, absoluteTarget, {
239
- force: true,
240
- filter: filterGit,
241
- recursive: true
242
- });
243
- return;
244
- }
245
- await pull(cacheDir);
246
- setTimeout(() => {
247
- fs.cpSync(cacheDir, absoluteTarget, {
248
- force: true,
249
- filter: filterGit,
250
- recursive: true
251
- });
252
- }, 400);
253
- };
254
- const createByZip = async () => {
255
- log("zip mode");
256
- if (!zipUrl) {
257
- throw new Error(
258
- `Expect parameter opts.zip when opts.way is 'zip', but got ${zipUrl}`
259
- );
260
- }
261
- await download(zipUrl, target, { extract: true });
262
- };
263
- switch (way) {
264
- case "git":
265
- return createByGit();
266
- case "zip":
267
- return createByZip();
268
- default:
269
- throw new Error(`Expect parameter opts.way is 'git' or 'zip'`);
270
- }
221
+ if (!cached) {
222
+ await clone(gitUrl, cacheDir, branch);
223
+ }
224
+ if (offline) {
225
+ fs.cpSync(cacheDir, absoluteTarget, {
226
+ force: true,
227
+ filter: filterGit,
228
+ recursive: true
229
+ });
230
+ return;
231
+ }
232
+ await pull(cacheDir);
233
+ setTimeout(() => {
234
+ fs.cpSync(cacheDir, absoluteTarget, {
235
+ force: true,
236
+ filter: filterGit,
237
+ recursive: true
238
+ });
239
+ }, 400);
271
240
  };
272
241
 
273
242
  // paths.ts
274
- var solveValuesFromAddonUrl = (addon) => {
275
- const url = new URL(addon);
243
+ var solveValuesFromTemplateOrExtensionUrl = (templateOrExtension) => {
244
+ const url = new URL(templateOrExtension);
276
245
  const origin = `${url.protocol}//${url.host}`;
277
246
  const [org, repo, , branch = "", ...subdir] = url.pathname.slice(1).split("/");
278
247
  const ignorePackage = url.searchParams.get("ignorePackage") === "true";
@@ -295,7 +264,7 @@ var solveRepositoryPath = async ({
295
264
  const target = path2.join(os2.homedir(), ".cna", targetId);
296
265
  try {
297
266
  await downloadRepository({
298
- git: url,
267
+ url,
299
268
  branch,
300
269
  target,
301
270
  targetId
@@ -304,9 +273,9 @@ var solveRepositoryPath = async ({
304
273
  }
305
274
  return { dir: target, subdir };
306
275
  };
307
- var solveAddonPath = async (addon) => {
276
+ var solveTemplateOrExtensionPath = async (templateOrExtension) => {
308
277
  try {
309
- const { url, branch, subdir, protocol, host, pathname, ignorePackage } = solveValuesFromAddonUrl(addon);
278
+ const { url, branch, subdir, protocol, host, pathname, ignorePackage } = solveValuesFromTemplateOrExtensionUrl(templateOrExtension);
310
279
  if (protocol === "file:") {
311
280
  return {
312
281
  dir: path2.resolve(host, pathname),
@@ -321,27 +290,36 @@ var solveAddonPath = async (addon) => {
321
290
  return { ...gitData, ignorePackage };
322
291
  } catch {
323
292
  return {
324
- dir: path2.resolve(__dirname, "..", "addons", addon),
293
+ dir: path2.resolve(
294
+ __dirname,
295
+ "..",
296
+ "templatesOrExtensions",
297
+ templateOrExtension
298
+ ),
325
299
  ignorePackage: void 0
326
300
  };
327
301
  }
328
302
  };
329
- var getAddonPackagePath = async (addon, name = "package", ignorePackage = false) => {
303
+ var getPackagePath = async (templateOrExtension, name = "package", ignorePackage = false) => {
330
304
  const {
331
305
  dir,
332
306
  subdir,
333
- ignorePackage: addonIgnorePackage
334
- } = await solveAddonPath(addon);
335
- if (name === "package.json" && (ignorePackage || addonIgnorePackage)) {
336
- throw new Error("package.json should be ignored for file addon");
307
+ ignorePackage: templateOrExtensionIgnorePackage
308
+ } = await solveTemplateOrExtensionPath(templateOrExtension);
309
+ if (name === "package.json" && (ignorePackage || templateOrExtensionIgnorePackage)) {
310
+ throw new Error(
311
+ "package.json should be ignored for file templateOrExtension"
312
+ );
337
313
  }
338
314
  if (subdir) {
339
315
  return path2.resolve(dir, subdir, name);
340
316
  }
341
317
  return path2.resolve(dir, name);
342
318
  };
343
- var getAddonTemplateDirPath = async (addonUrl) => {
344
- const { dir, subdir = "" } = await solveAddonPath(addonUrl);
319
+ var getTemplateDirPath = async (templateOrExtensionUrl) => {
320
+ const { dir, subdir = "" } = await solveTemplateOrExtensionPath(
321
+ templateOrExtensionUrl
322
+ );
345
323
  let templateDirPath = path2.resolve(dir, subdir);
346
324
  const templateDirPathWithTemplate = path2.resolve(templateDirPath, "template");
347
325
  return new Promise((resolve, reject) => {
@@ -376,37 +354,37 @@ var requireIfExists = (path4) => {
376
354
  }
377
355
  throw new Error(`file ${path4} not exists`);
378
356
  };
379
- var loadAddonsPackages = async ({
380
- addons = [],
357
+ var loadPackages = async ({
358
+ templatesOrExtensions = [],
381
359
  ignorePackage: globalIgnorePackage = false,
382
360
  ...config
383
361
  }) => {
384
- const setup = await addons.reduce(
385
- async (setupPromise, { url: addon, ignorePackage }) => {
362
+ const setup = await templatesOrExtensions.reduce(
363
+ async (setupPromise, { url: templateOrExtension, ignorePackage }) => {
386
364
  let packageJson = await setupPromise;
387
365
  try {
388
366
  const template = requireIfExists(
389
- await getAddonPackagePath(addon, "template.json")
367
+ await getPackagePath(templateOrExtension, "template.json")
390
368
  );
391
369
  packageJson = merge(packageJson, template.package || {});
392
370
  } catch {
393
371
  }
394
372
  try {
395
- const addonPackageJson = requireIfExists(
396
- await getAddonPackagePath(
397
- addon,
373
+ const templateOrExtensionPackageJson = requireIfExists(
374
+ await getPackagePath(
375
+ templateOrExtension,
398
376
  "package.json",
399
377
  globalIgnorePackage || ignorePackage
400
378
  )
401
379
  );
402
- return merge(packageJson, addonPackageJson);
380
+ return merge(packageJson, templateOrExtensionPackageJson);
403
381
  } catch {
404
382
  }
405
383
  try {
406
- const resolveAddonPackage = requireIfExists(
407
- await getAddonPackagePath(addon)
384
+ const resolveTemplateOrExtensionPackage = requireIfExists(
385
+ await getPackagePath(templateOrExtension)
408
386
  );
409
- packageJson = resolveAddonPackage(packageJson, config);
387
+ packageJson = resolveTemplateOrExtensionPackage(packageJson, config);
410
388
  } catch {
411
389
  }
412
390
  return packageJson;
@@ -559,7 +537,7 @@ var fileLoader = ({
559
537
  };
560
538
  var loadFiles = async ({
561
539
  root,
562
- addons = [],
540
+ templatesOrExtensions = [],
563
541
  appName,
564
542
  originalDirectory,
565
543
  alias,
@@ -568,8 +546,8 @@ var loadFiles = async ({
568
546
  runCommand,
569
547
  installCommand
570
548
  }) => {
571
- for await (const { url: addonUrl } of addons) {
572
- const templateDir = await getAddonTemplateDirPath(addonUrl);
549
+ for await (const { url: templateOrExtensionUrl } of templatesOrExtensions) {
550
+ const templateDir = await getTemplateDirPath(templateOrExtensionUrl);
573
551
  if (!fs3.statSync(templateDir).isDirectory()) {
574
552
  continue;
575
553
  }
@@ -671,7 +649,7 @@ var run = async ({
671
649
  originalDirectory,
672
650
  verbose = false,
673
651
  useYarn = false,
674
- addons = [],
652
+ templatesOrExtensions = [],
675
653
  dependencies = [],
676
654
  devDependencies = [],
677
655
  alias = "",
@@ -684,15 +662,19 @@ var run = async ({
684
662
  if (useYarn) {
685
663
  isOnline = await checkIfOnline(useYarn);
686
664
  }
687
- if (_2.isEmpty(addons)) {
665
+ if (_2.isEmpty(templatesOrExtensions)) {
688
666
  console.log();
689
- console.log(chalk3.yellow("No addons specified to bootstrap application."));
667
+ console.log(
668
+ chalk3.yellow(
669
+ "No templates or extensions specified to bootstrap application."
670
+ )
671
+ );
690
672
  console.log();
691
673
  process.exit(0);
692
674
  }
693
675
  await loadFiles({
694
676
  root,
695
- addons,
677
+ templatesOrExtensions,
696
678
  appName,
697
679
  originalDirectory,
698
680
  alias,
@@ -782,7 +764,7 @@ var createApp = async ({
782
764
  name,
783
765
  verbose = false,
784
766
  useNpm = false,
785
- addons = [],
767
+ templatesOrExtensions = [],
786
768
  alias = "",
787
769
  installDependencies = true,
788
770
  ignorePackage = false,
@@ -797,8 +779,8 @@ var createApp = async ({
797
779
  console.log();
798
780
  const useYarn = useNpm ? false : shouldUseYarn();
799
781
  const command = useYarn ? "yarn" : "npm run";
800
- const { packageJson, dependencies, devDependencies } = await loadAddonsPackages({
801
- addons,
782
+ const { packageJson, dependencies, devDependencies } = await loadPackages({
783
+ templatesOrExtensions,
802
784
  appName,
803
785
  command,
804
786
  ignorePackage,
@@ -858,7 +840,7 @@ Please update to npm 3 or higher for a better, fully supported experience.
858
840
  originalDirectory,
859
841
  verbose,
860
842
  useYarn,
861
- addons,
843
+ templatesOrExtensions,
862
844
  dependencies,
863
845
  devDependencies,
864
846
  alias,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@create-node-app/core",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",