JustProjectFile class final

A project's just.json.

{
  "schema": 1,
  "title": "Space Rocks",
  "set": "2026.10",
  "entry": {"app": "lib/main.dart", "tool": "bin/tool.dart"},
  "plugins": {"allowed": ["my_studio_tools"]}
}

Everything is optional: a project without the file gets the defaults. What this version doesn't know — a newer tool's keys, a plugin's own — is kept as it was whenever the file is written again.

Constructors

JustProjectFile({String? title, String? set, Map<String, String> entries = const {}, List<String> allowedPlugins = const [], Map<String, Object?> extra = const {}})
A project file with these values.
const

Properties

allowedPlugins → List<String>
Packages whose just commands the user allowed, beyond the official ones.
final
entries → Map<String, String>
The project's entry points by name (entry in the file): app → lib/main.dart. The products that read one know its default. Only the string values are here; any other value is kept as it was.
final
extra → Map<String, Object?>
The file's other top-level keys, as they were read: a newer tool's, or a plugin's own. Written back as they are.
final
hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
set → String?
The tool set (ToolSet) the project's tools come from; each plugin keeps its own packages' versions.
final
title → String?
The project's name as people see it — the app's title. A product's release check can look for it in a build to know whose build it is.
final

Methods

allowing(String package) → JustProjectFile
A copy that allows package's commands.
copyWith({String? title, String? set, Map<String, String>? entries, List<String>? allowedPlugins, Map<String, Object?>? extra}) → JustProjectFile
A copy with the values given replaced; what the file held besides them stays.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited
toText() → String
The file's text. The keys this version knows are left out when they say nothing (no title, no entries); what it doesn't know is written back as it was read — a null, {} or [] too.

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

parse(String text) → JustProjectFile
text as a project file.

Constants

currentSchema → const int
The newest just.json format this version reads.
knownKeys → const Set<String>
The keys this version reads; every other one is extra.