6.0.2 • Published 3 years ago

@marko/migrate v6.0.2

Weekly downloads
167
License
MIT
Repository
github
Last release
3 years ago

Utility to migrate Marko templates to avoid using deprecated features.

CLI

Getting Started

npx @marko/migrate ./components/my-component.marko

Options

  • --indent: The indent string to use when printing the migrated source (defaults to a String with four spaces)
  • --noSemi: If set, will format JS without semicolons when printing the migrated source.
  • --singleQuote: If set, will prefer single quotes when printing the migrated source.
  • --maxLen: The max line length to use when printing the migrated source (defaults to 80, set to -1 to disable)
  • --syntax: The syntax to use when printing the migrated source. Can either be "html" or "concise" (defaults to "html")
  • --dry-run: Runs the migration in memory only.
  • --safe: Run all safe migrations ignoring any prompts.

API

Installation

npm install @marko/migrate

Example

import fs from "fs";
import migrate from "@marko/migrate";
import { prompt } from "enquirer";

migrate({
  files: ["./components/**/*.marko"],
  prompt(options) {
    // This is used for "optional" migrations.
    // By default the cli mode uses enquirer to prompt the user via cli.
    // The programtic api does not come with this by default and can be overwritten.
    return prompt(options);
  },
  onWriteFile(file, source) {
    // A file has been modified, we can save it to disk.
    // Note you can also return a promise.
    fs.writeFileSync(file, source, "utf-8");
  },
  onRenameFile(from, to) {
    // A file has been renamed, lets move it on the disk.
    // Note you can also return a promise.
    fs.renameSync(file, fileNames[file]);
  },
  onUpdateDependents(from, to) {
    // This indicates that the dependents of the `from` file need to update
    // Their paths to point to the `to` file.
    // When running in CLI mode this will use https://github.com/marko-js/utils/tree/master/packages/dependent-path-update
  }
}).then(() => {
  // Migration has completed.
  // Output contains an object with all of the migrated component sources.
  console.log("migrated all files");

  for (const file in fileContents) {
    // Save all updated files to disk.
    fs.writeFileSync(file, fileContents[file], "utf-8");
  }

  for (const file in fileNames) {
    // Update locations of moved files on disk.
    fs.renameSync(file, fileNames[file]);
  }
});

Options

Options are the same as the CLI options.

6.0.2

3 years ago

6.0.1

3 years ago

6.0.0

3 years ago

5.3.4

4 years ago

5.3.3

4 years ago

5.3.2

4 years ago

5.3.1

4 years ago

5.3.0

4 years ago

5.2.0

5 years ago

5.1.0

5 years ago

5.0.8

5 years ago

5.0.7

5 years ago

5.0.6

5 years ago

5.0.5

5 years ago

5.0.4

5 years ago

5.0.3

5 years ago

5.0.2

5 years ago

5.0.1

5 years ago

5.0.0

5 years ago

4.1.1

5 years ago

4.1.0

5 years ago

4.0.0

5 years ago

3.0.0

5 years ago

2.0.0

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago