Drop special casing 'daml-types' (#4859)

changelog_begin
changelog_end
This commit is contained in:
Shayne Fletcher 2020-03-05 18:02:49 -05:00 committed by GitHub
parent 5171ed5313
commit 7fe94be065
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -580,14 +580,14 @@ writePackageJson packageDir sdkVersion (Scope scope) depends =
writeFileUTF8 (packageDir </> "package.json") $ unlines writeFileUTF8 (packageDir </> "package.json") $ unlines
(["{" (["{"
, " \"private\": true," , " \"private\": true,"
, " \"name\": \"" <> packageName <> "\"," , " \"name\": \"" <> name <> "\","
, " \"version\": \"" <> version <> "\"," , " \"version\": \"" <> version <> "\","
, " \"description\": \"Produced by daml2ts\"," , " \"description\": \"Produced by daml2ts\","
, " \"dependencies\": {" , " \"dependencies\": {"
, " \"@daml/types\": \"" <> version <> "\"," , " \"@daml/types\": \"" <> version <> "\","
, " \"@mojotech/json-type-validation\": \"^3.1.0\"" ++ if not $ null dependencies then ", " else ""
] ++ dependencies ++ ] ++ dependencies ++
[" }," [ " \"@mojotech/json-type-validation\": \"^3.1.0\""
, " },"
, " \"scripts\": {" , " \"scripts\": {"
, " \"build\": \"tsc --build\"," , " \"build\": \"tsc --build\","
, " \"lint\": \"eslint --ext .ts src/ --max-warnings 0\"" , " \"lint\": \"eslint --ext .ts src/ --max-warnings 0\""
@ -602,11 +602,11 @@ writePackageJson packageDir sdkVersion (Scope scope) depends =
]) ])
where where
version = versionToString sdkVersion version = versionToString sdkVersion
packageName = packageNameOfPackageDir packageDir name = packageNameOfPackageDir packageDir
dependencies = withCommas [ " \"" <> pkg <> "\": \"" <> version <> "\"" dependencies = [ " \"" <> pkg <> "\": \"" <> version <> "\","
| d <- depends | d <- depends
, let pkg = "@" ++ scope ++ "/" ++ T.unpack (undependency d) , let pkg = "@" ++ scope ++ "/" ++ T.unpack (undependency d)
] ]
-- From the path to a package like '/path/to/daml2ts/d14e08' -- From the path to a package like '/path/to/daml2ts/d14e08'
-- calculates '@daml2ts/d14e08' suitable for use as the "name" field -- calculates '@daml2ts/d14e08' suitable for use as the "name" field
@ -617,10 +617,6 @@ writePackageJson packageDir sdkVersion (Scope scope) depends =
scope = unscope $ scopeOfScopeDir (takeDirectory packageDir) scope = unscope $ scopeOfScopeDir (takeDirectory packageDir)
package = takeFileName packageDir package = takeFileName packageDir
withCommas :: [String] -> [String]
withCommas [] = []
withCommas ms = reverse (head ms' : map (++ ",") (tail ms')) where ms' = reverse ms
-- This type describes the format of a "top-level" 'package.json'. We -- This type describes the format of a "top-level" 'package.json'. We
-- expect such files to have the format -- expect such files to have the format
-- { -- {
@ -661,18 +657,9 @@ setupWorkspace optOutputDir dependencies file = do
where where
transformAndWrite :: [T.Text] -> T.Text -> PackageJson -> IO () transformAndWrite :: [T.Text] -> T.Text -> PackageJson -> IO ()
transformAndWrite ourPackages scope oldPackageJson = do transformAndWrite ourPackages scope oldPackageJson = do
let damlTypes = [T.pack "daml-types"] let keepPackages = filter (not . T.isPrefixOf scope) $ workspaces oldPackageJson
-- * Old versions of our packages should be removed; -- Old versions of our packages should be removed.
keepPackages = allPackages = ourPackages ++ keepPackages
[ T.pack x -- Our packages need to come before any other existing packages.
| x <- [T.unpack y | y <- workspaces oldPackageJson]
, isNothing $ stripPrefix (T.unpack scope) x
]
-- * Our packages need to come after 'daml-types' if it exists;
-- * Our packages need to come before any other existing packages.
allPackages =
case stripInfix damlTypes keepPackages of
Nothing -> ourPackages ++ keepPackages
Just (before, after) -> before ++ damlTypes ++ ourPackages ++ after
BSL.writeFile file $ encodePretty oldPackageJson{workspaces=allPackages} BSL.writeFile file $ encodePretty oldPackageJson{workspaces=allPackages}
putStrLn $ "'" <> file <> "' updated." putStrLn $ "'" <> file <> "' updated."